[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp: 1213] PostfixによるMSAの構築
- Subject: [postfix-jp: 1213] PostfixによるMSAの構築
- From: Tomoyuki Sakurai <ml-postfix-jp@xxxxxxxxxxxxxxx>
- Date: Wed, 11 May 2005 22:49:18 +0900
PostfixによるMSAの構築
----------------------
ここでは、Postfixを使ったMSAに必要な最低限の設定を解説します。すでにport
25でSMTP-Authが利用可能であることを前提にしています。使用するOSはFreeBSD、
Postfixは2.2以降です。コマンドは環境に応じて読み替えます。
MSAについては次のページを参照します。
RFC 2476 - Message Submission
http://www.faqs.org/rfcs/rfc2476.html
SMTP-Authについては次のページを参照します。
http://www.postfix.org/SASL_README.html
Postfix 2.2以降ではSMTP over TLSもサポートされています。パスワードの保護
や、サーバ/クライアント認証など、セキュリティ要件しだいでは、SASLによる
SMTP-Authの代替案として考慮します。TLSについては次のページを参照します。
http://www.postfix.org/TLS_README.html
submission対応前のmain.cfは次のようになっているものとします。必要に応じ
て読み替えてください。
mynetworks = 127.0.0.0/8
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noplaintext, noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
permit
アクセス制限の指定方法では、smtpd_recipient_restrictionsにまとめるスタイ
ルを採用しています。必要に応じて読み替えます。
submissionに必要な設定をします。
/etc/servicesにsubmissionがあることを確認します。予約されたport番号は587
です。FreeBSDでは次のようになっています。
> grep submission /etc/services
submission 587/tcp
submission 587/udp
テスト環境として、デフォルトのsmtpdのアクセス制限が適用されないようにMSA
を設定します。条件は、認証されたユーザ以外からのメッセージはすべて拒否で
す。トラブルシューティングを簡単にするためにいくつかのアクセス制限が明示
的に空になっていることに注意してください。master.cfに次のように指定しま
す。詳しくはmaster(5)を参照します。
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtp_sasl_security_options = noplaintext, noanonymous
-o broken_sasl_auth_clients = yes
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o smtpd_data_restrictions=
master.cfでは、行頭の空白が意味を持ちます。
Postfixを再起動します。OSの起動スクリプトの仕組みを利用するか、次のコマ
ンドを実行します。
# postfix reload
TCP port 587でsmtpdがlistenしていることを確認します。FreeBSDでは次のコマ
ンドを実行します。
> netstat -antL | grep 587
tcp4 0/0/100 *.587
実際にtelnetで接続してみます。
> telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.example.org.
Escape character is '^]'.
220 localhost.example.org ESMTP Postfix (2.3-20050504) Ready. NO UBE NO
UCE C=JP
quit
221 Bye
Connection closed by foreign host.
MUAなどでport 587からSMTP-Authを使って認証したユーザからのメッセージが中
継されることを確認します。それと同時に、認証されていない場合にメッセージ
が*中継されない*ことを確認します。
port 25では、受け取るべき宛先以外のメッセージを拒否するようにmain.cfを書
き換えます。
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
permit
MUAなどでport 25から認証の如何に関わらず第三者宛のメッセージが*中継され
ない*ことを確認します。
必要に応じて、これまでsmtpdで指定していたアクセス制限(もし必要であれば)
を、master.cfのsubmissionのオプションに追加してください。
トラブルシューティング
----------------------
うまくいかない場合は、次のことを確認してください。
* 移行前の設定で、SMTP-Authがあらかじめ期待した動作をすること
* port 587がF/Wなどでブロックされていないこと
* /var/log/maillogなどsyslogのログ
* debug_peer_levelとdebug_peer_listによるdebugログ
考慮すべき点
------------
パスワードによる認証をする場合は、パスワードが平文で流れることがセキュリ
ティリスクになることがあります。CRAM-MD5などで対策することもできますが、
SMTPセッション全体を暗号化するSMTP over TLSが強く推奨されます。使用する
認証方法は、ユーザに対する影響、セキュリティポリシー、プライバシーポリシー
などを十分考慮し、決定します。
RFC2476にはMSAに求められる要件が示されていますが、ここではすべてを取り上
げません。その代わりに、関連しそうな設定のいくつかを列挙します。詳しくは
postconf(5)を参照します。
strict_rfc821_envelopes
smtpd_reject_unlisted_sender
smtpd_sasl_authenticated_header
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_sender_login_mismatch
MSAに必要とされる要件でPostfixに実装されていない機能については、policy
severで実装することを検討します。詳しくは次のページを参照します。
http://www.postfix.org/SMTPD_POLICY_README.html
--
Tomoyuki Sakurai - Tomi -
mailto:ml-postfix-jp@xxxxxxxxxxxxxxx
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list
[検索ページ]
[Postfix-JP ML Home]