sendmail 8.11 の設定はそのままだとセキュリティ的に問題あり。
1. ident (RFC1413) をオフにしましょう。sendmail.cf の
#O Timeout.ident=5s
を
O Timeout.ident=0s
と直します。また、tcp port 113 は下記の理由からあけておいた方がよいようです。
以下
からの抜粋です。
----- ここから -----
ここでもし、sendmail が ident を要求したとき、その途中の経路上のルーター
で ident の 113 ポートへのアクセスを拒否するような packet filtering の
設定を行っている場合、 filtering で発行しているエラーの種類と sendmail
の動作しているマシンのインプリメントの組み合わせによっては、メールの送
信が行えなくなる場合がある。
ICMP の destination unreach には次のようなものがある。
・net unreachable
・host unreachable
・protocol unreachable
・port unreachable
・fragmentation needed and DF set
・source route failed
そのため、ident (113番ポート) に対する filtering の設定には次のものが
考えられる。
・ICMP host unreachable を返す
・ICMP port unreachable を返す
・何も返さない
・TCP RST を返す
・素通しする
ICMP host unreachable を返す場合、あるホストとの通信で port unreach が
発生するとそのホストとの TCP connection がすべてエラーとなって、すでに
connection が確立されていた sendmail の通信も同時に途絶えてしまう。
port unreachable を返す場合は、最近のマシンでは問題ないが、 4.3BSD
tahoe のような古い TCP/IP の実装では protocol unreach や port unreach
という概念がないため、あるホストとの通信で port unreach が発生すると、
ICMP host unreachable を返す場合と同様、そのホストとの TCP connection
がすべてエラーになってしまい、すでに connection が確立されていた
sendmail の通信も同時に途絶えてしまう。
また、無応答であると sendmail が timeout を待つので,時間がかかります。
もし、ルーターが TCP RST を返せるようになっていれば、これを設定するこ
とで以上の問題は発生しませんが、現在のところこの設定を行うこがルーター
はほとんどありません。 (少なくてもCisco ではできません。) ただし、
Firewall-1 では TCP RST を返しますので、この設定を行なえばいいでしょう。
以上のように、ident に対して packet filtering を行っていると、メールの
受信に問題をきたす場合があるので、現状では ident 要求は素通しするのが
無難かもしれません。
sendmail 以外に Ident を利用するプログラムとして www server などがあります。
たとえば、Apache httpd.conf で IdentityCheck on とした場合や
TCP_Wrappers(tcpd) の Makefile 中で AUTH = -DALWAYS_RFC931 を指定した
場合などです。これらについても同様の注意が必要のようです。
----- ここまで -----
2. 次に、expn, vrfy を使えなくしましょう。これらをオンにしておくとアカウント名
などが揺曳する可能性があります。指定は、
O PrivacyOptions=authwarnings
に noexpn,novrfy を追加して、
O PrivacyOptions=authwarnings,noexpn,novrfy
とします。