なかなかバーチャルユーザーでのメールサーバーがうまくいかないので、まずはLinuxユーザーでのメール送受信をしてみました。(今回は成功しています。)
構成はPostfix(とりあえずSSLなしのSMTP) + SASL2によるSMTP-Auth + OP25B対策のためISP(eo)のサーバーを経由 + Courier(IMAP,POP) よってMaildir形式です。いたって標準的な構成です。
外部に解放するポートは
送信に必須(25,587)
WANからSSLなしでメールチェックをする場合に必要(110,143)
WANからSSLありでメールチェックをする場合に必要(995,993)
です。
必要なものをインストールします。
1 2 | <code>$ su # apt-get install postfix postfix-tls libsasl2 libsasl2-modules sasl2-bin courier-pop-ssl courier-imap-ssl</code> |
courierではWebによる設定(courier-webadmin)について聞かれます。Webベースで設定できるのならそうしておきたいので私は「はい」を選択しておきましたがどちらでもかまいません。
Postfixのインストール時にサーバーのタイプを聞かれますので「インターネットサイト」を選択してください。
「メール名は?」と聞かれたら構築するメールサーバーの「@」以降を入力してください。
では、Postfixの設定ファイルを編集します。
ますは「/etc/postfix/main.cf」を。
0.基本的な変更
1 | <code>mydomain = hogehoge.com</code> |
を追記。(これは適時書き換えてください)
1 2 | <code>myorigin = mail.hogehoge.net mydestination = $myhostname, localhost.$mydomain, localhost</code> |
に変更
1.Maildir形式にする。
1 | <code>mailbox_command = procmail -a "$EXTENSION" </code> |
を
1 | <code><font color= "#0000FF" >#</font>mailbox_command = procmail -a "$EXTENSION" </code> |
としてコメントアウト
1 | <code>home_mailbox = Maildir/</code> |
を追加
2.SASL2によるSMTP-Authの有効
1 2 3 4 5 | <code>smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_sasl_authenticated,permit_auth_destination,reject smtpd_sasl_path = smtpd broken_sasl_auth_clients = yes</code> |
を追加
3.OP25B対策のためISPのSMTPを経由するように変更
1 | <code>relayhost = </code> |
を
1 | <code>relayhost = <font color= "#0000FF" >[smtpauth.eonet.ne.jp]:587</font></code> |
に。これはISPのSMTP-Authサーバーのアドレスにしてください。
1 2 3 | <code>smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/isp_auth smtp_sasl_security_options = noanonymous</code> |
を追加。
次に「/etc/postfix/master.cf」を編集
「smtp inet n – – – – smtpd」の下に
1 | <code> -o smtpd_sasl_auth_enable=yes</code> |
を追加(最初のスペースは不可欠)
1 2 3 | <code><font color= "#0000FF" >#</font>submission inet n - - - - smtpd <font color= "#0000FF" >#</font> -o smtpd_sasl_auth_enable=yes <font color= "#0000FF" >#</font> -o smtpd_client_restrictions=permit_sasl_authenticated,reject</code> |
を
1 2 3 | <code>submission inet n - - - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject</code> |
に変更(コメント解除)し、その下に
1 | <code> -o smtpd_etrn_restrictions=reject</code> |
を追加。
ISPのメールサーバーにログインするためのユーザー名とパスワードを登録します。
「/etc/postfix/isp_auth」を作成し以下のように記述して保存します。
1 | <code>[smtpauth.eonet.ne.jp]:587 ユーザー名:パスワード</code> |
そしてDB化
1 | <code># postmap /etc/postfix/isp_auth</code> |
最後にSASLにSMTPのユーザー名とパスワードを登録します。
1 | <code># saslpasswd2 -c -u `postconf -h myhostname` ユーザー名</code> |
パスワードを二回聞かれるのでSMTP認証に使いたいパスワードを設定してください。
初回時に以下のコマンドも実行してください。
1 2 3 | <code># chgrp postfix /etc/sasldb2 # chmod g+r /etc/sasldb2 # ln /etc/sasldb2 /var/spool/postfix/etc</code> |
ユーザーを削除するときは
1 | <code># saslpasswd2 -c -u `postconf -h myhostname` ユーザー名</code> |
これでLinuxユーザー名とパスワードでメール送受信ができるはずです。
POPのパスワードはLinuxユーザーのパスワードを利用し,SMTPへはSASLで設定したパスワードを利用します。
コメントを残す