PostfixでSMTP Authが必要なメールサーバをrelayhostにする
最近どこのISPでもOP25Bしてるから、自宅サーバからメールを出すのにSMTP Authが必須になってきた。というわけで、FreeBSD boxにPostfixをインストールして、SMTP Authしながらrelayhostでメールを転送する設定を紹介。
Postfixのインストール
まずは、portsからpostfixをインストールする。configは、SASL2とTLSを有効にする。
│ │[X] PCRE Perl Compatible Regular Expressions │ │ │ │[X] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) │ │ │ │[ ] DOVECOT Dovecot SASL authentication method │ │ │ │[ ] SASLKRB If your SASL req. Kerberos select this option │ │ │ │[ ] SASLKRB5 If your SASL req. Kerberos5 select this option │ │ │ │[ ] SASLKMIT If your SASL req. MIT Kerberos5 select this option│ │ │ │[X] TLS Enable SSL and TLS support │ │ │ │[ ] BDB Berkeley DB (choose version with WITH_BDB_VER) │ │ │ │[ ] MYSQL MySQL maps (choose version with WITH_MYSQL_VER) │ │ │ │[ ] PGSQL PostgreSQL maps (choose with DEFAULT_PGSQL_VER) │ │ │ │[ ] OPENLDAP OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)│ │ │ │[ ] CDB CDB maps lookups │ │ │ │[ ] NIS NIS maps lookups │ │ │ │[ ] VDA VDA (Virtual Delivery Agent) │ │ │ │[ ] TEST SMTP/LMTP test server and generator │ │
TLSの設定
今回接続するメールサーバは、TLSで接続する必要があるので、TLSによるサーバ認証の設定をする。まずは、接続先サーバが使ってる証明書に対して署名してるCAの証明書を取り寄せる。それから、main.cfに以下の設定を追記する。
smtp_tls_CAfile = /usr/local/etc/certs/CAfile.pem smtp_tls_security_level = verify
これで、TLS接続した際にCA証明書を使って接続先サーバの証明書を検証してくれる。
SMTP Authの設定
SMTP Authの設定は、main.cfの他にパスワードのマップファイルを使用する。まずはmain.cfから。
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/usr/local/etc/maps/sasl_passwd smtp_sasl_type = cyrus relayhost = [メールサーバのFQDN]:submission
smtp_sasl_password_mapsはこんな感じで作成する。今回はhashを指定したので、作成後はmakemap hash sasl_passwdしておく。
[接続先メールサーバのFQDN]:submission ユーザ名:パスワード
メール送信
mailコマンドでもMUAからでも、メール送信して指定のサーバ経由でrelayされてることを確認したら、設定は完了。これでメール送信が必要なサービスも作れるよ。