前回「POP over SSL」をFreeBSDサーバーにセットアップする方法を解説しましたが、今度はSMTPの方です。
あわせてSMTP Authも導入することで、外部から特定の人だけメールを送信をすることができるようになり、利便性の向上と悪用を避けることが同時にできます。
POPとSMTPの両方が暗号化されれば、メールの内容やID・パスワード情報の漏洩を防ぎ、安全にメールのやり取りができるようになります。
(ただし、外部サーバーに送られるメールは平文のままです。暗号化されるのはクライアント=サーバー間だけです)
まず、/etc/serviceの内容を確認します。もし下記のエントリーがなければ登録します。
最近のFreeBSDであればデフォルトで入っていると思うので大丈夫です。
smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp)
smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp)
このように、SMTP over SSLでは465番ポートを使用します。
次に、portsのpostfixのインストール設定を見直します。
# cd /usr/ports/mail/postfix
# make config
「SASL2」と「TLS」にチェックが入っていない場合は、チェックを入れて再インストールします。
# make deinstall
# make clean
# make install
それからSASL2とSASLauthdをインストールします。これを入れることで、SMTP Authを実現することができます。
# cd /usr/ports/security/cyrus-sasl2/
# make install
# cd /usr/ports/security/cyrus-sasl2-saslauthd/
# make install
SASL2の設定は/usr/local/lib/sasl2/smtpd.confファイルに記載します。
このファイルは当初存在しないので、新たに作成します。
今のところは下記の設定だけ変更しておきます。
#pwcheck_method: pwcheck
pwcheck_method: saslauthd
mech_list: plain login
SSLに乗るので、SASL2でパスワードの暗号化はしなくても良いかと思います。
そして、postfixの設定ファイル/usr/local/etc/postfix/master.cfファイルを編集します。
下記の行が無ければ追加します。
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
また、同じくpostfixの設定ファイル/usr/local/etc/postfix/main.cfに下記を追加します。
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/server.crt
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/server.key
smtpd_tls_auth_only = yes
smtpd_tls_session_cache_database = btree:/usr/local/etc/postfix/smtpd_scache
「smtpd_tls_cert_file」「smtpd_tls_key_file」は、証明書と秘密鍵の場所を入れておきます。
もし秘密鍵と証明書を新たに作る場合は、、ApacheのSSL秘密鍵・証明書と同じように作成します。
これもPOP over SSLのときと同じく個人利用程度であれば、アラートは出ますが自作証明書で十分です。
一通り設定が完了したら、SASLauthdを起動します。
/etc/rc.confに下記を追加して、
saslauthd_enable="YES"
saslauthd_flags="-a pam"
起動します。
# /usr/local/etc/rc.d/saslauthd start
最後に、postfixを再起動します。
# /usr/local/etc/rc.d/postfix restart
なお、SMTP Auth over SSLについてもThunderbird等で対応しているため、サーバー側が対応すればすぐ利用可能になると思います。
Thunderbirdでは、「アカウント設定」の「送信(SMTP)サーバー」画面上で「追加」あるいは「編集」ボタンを押し、
「ユーザ名とパスワードを使用する」
「保護された接続を使用する:SSL」
のチェックをすることで設定できます。

ちなみに、自宅サーバーとかで設定したときは、外部からアクセスする前にルーター等の465番ポートを空けるのを忘れないようにしてくださいね。
また、プロバイダによってはアウトバウンド25ポート(OB25P)対応していたりするので、自宅サーバーとかだと外部にメールが送れないかもしれません。
この場合、プロバイダのメールサーバーを介するようにするなど、設定変更が必要になると思います。
コメントする