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されてることを確認したら、設定は完了。これでメール送信が必要なサービスも作れるよ。