本件、知らなかったのでメモ。

/etc/mail/access.db - リレーの制御
/etc/mail/accessで、リレーの許可や拒否設定をすることができます。許可する場合にはホスト名に続きRELAYを、拒否する場合にはREJECTとします。スパムの発信元を記述することで、メールを受け取らないようにすることができますので、簡単なフィルターとして役立ちます。



上記フィルタで拒否された場合には、MUA(例えばTELNET)上で下記メッセージが出ます。

RCPT TO: hoge@hogehoge.jp
550 5.7.1 hoge@hogehoge.jp... Relaying denied


同時に、/var/log/maillogにもこういうログが出ます。(接続元IPが出ている)
sendmail[xxxx]: xxxx: ruleset=check_rcpt, arg1=hoge@hogehoge.jp, relay=sv1 [192.168.0.1], reject=550 5.7.1 hoge@hogehoge.jp... Relaying denied



対策として、/etc/mail/accessを修正し、以下のコマンドを実行する。

# cd /etc/mail
# makemap -v hash access.db < access


この瞬間に有効になる。
Sendmailの再起動なども不要。
MUAから接続済みの状態でも、途中から有効になります。
こんな感じ。

550 5.7.1 hoge@hogehoge.jp... Relaying denied
(ここで上記makemap実行)
RCPT TO: hoge@hogehoge.jp
250 2.1.5 hoge@hogehoge.jp... Recipient ok




あたりまえですが、/etc/mail/accessには「”Sendmailが動いているサーバ”から見た接続元IP/ホスト名」を記述する必要があります。
これは上記/var/log/maillogにも出ていますが、具体的に調べたかったら、メール送信側サーバから

$ telnet [メールサーバIP] smtp

とした状態で、メールサーバ上で以下のコマンドを実行すればESTABLISHEDとして表示されます。

$ netstat -an|grep 25
:
:
tcp 0 0 【メールサーバIP】:25 【接続元IP】:35870 ESTABLISHED
: