postfix 2.5.5 でのSMTP/TLS @OpenSolaris
以前のエントリー「postfix 2.5.5 でのCryus-SASLでのSMTP-AUTH @OpenSolaris」でCyrus-SMTPを使ったSMTP-AUTHを実装したPostfixのビルド方法を書いたけど、更にそれにSMTP/TLSを実装する方法を書いてみる。
このSMTP/TLSなる技術は、本来ならSMTPの他ホストへのリレーにユーザー認証を取りいれ、更にその認証からメール送信までの経路をSSLで暗号化するということでセキュリティーを向上させようという趣旨である。とはいっても、実際通常の使い方をする分には通信経路の暗号化は必須ではない。
自宅サーバーでメールサーバーを運用していると、自宅サーバーから送信したメールが問答無用でスパムメール扱いされる事が多いのは本当に腹立たしい。
これを自宅のISPのSMTPにリレーしてもらうには「Outbound Port25 Blocking」なる技術もあるにはあるけど、私のように自宅ISPにSMTPリレーしてもらえない状況の人もいる。(WilcomADSLでオプション扱いのメール契約していないなど。)
という場合、外部のSMTPを使う事になるわけやけど、一番てっとりばやくスパム扱いされにくく安心出来そうなSMTPと言えばGmailが妥当なところであろう。
しかし、GmailはタダのSMTP-AUTHではなくTLSでのAUTHを要求してくるので、これに対応する事で、GmailのSMTPを経由してメール送信が出来る。
こんなメール乱世な御時勢を生きる、真っ当な自宅メールーサーバーなハッカー諸氏にとっても必須の技術といってもいいであろう。
ここでは、のCryus-SASLでのSMTP-AUTHを動作させた状態を前提として、それにTLSでの暗号化技術を乗せて、送信時にgmailへリレーするようにするまでを書いてみる。
postfixのインストール(太字がSMTP/TLSの部分)
opensslのヘッダファイルssl.hが/usr/sfw/include/opensslにあり、libssl.soとlibcrypto.soが/usr/sfw/libにある場合
export AUXLIBS=”-R/usr/local/lib -L/usr/local/lib -L/usr/sfw/lib -R/usr/sfw/lib -lssl -lcrypto”
make tidy
make makefiles
make
#make install
次にサーバー秘密鍵と証明書+公開鍵の作成
#cd /etc/postfix
秘密鍵の作成
#openssl genrsa -out server.key 1024
証明書+公開鍵の作成
#openssl req -new -x509 -key server.key -out server.crt
#chmod 400 server.key server.crt
続いてpostfixの設定
/etc/postfix/main.cf
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/server.key
smtpd_tls_cert_file = /etc/postfix/server.crt
#smtp送信設定
smtp_sasl_auth_enable = yes
smtp_sasl_tls_security_options = noanonymous
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_password_maps = dbm:/etc/postfix/sasl_passwd
#(hashやbtree、cdbが良い人はお好みで)
gmail認証情報ファイルの作成
/etc/postfix/sasl_passwd
に
[smtp.gmail.com]:587 Gmailアカウント@gmail.com:パスワード
と記述。
gmail認証情報ファイル検索テーブル作成
#cd /etc/postfix
#postmap dbm:sasl_passwd (hashやbtree、cdbが良い人はお好みで)
sasl_passwd.pagとsasl_passwd.dirが出力されたのを確認
#chmod600 /etc/postfix/sasl_passwd*
動作確認
220 サーバー名 ESMTP Postfix
ehlo localhost ←入力
250-サーバー名
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
STARTTLSの行があるのを確認したのち、
sendmailコマンドでどこぞにメールを送信してテストしてみる。