僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
メールサーバに仕掛けたtcpdumpのログを読み込んで睨めっこ。
ログを採るときに -c オプションで数を限定する(パケット500で13本ほど採れた)。
それにしても25/tcpに限定しても、
まだ多すぎる。さらに上のプロトコルで絞ってやらないと。
まずはPostfixの smtpd_helo_restrictions でSPAMを蹴る可能性を検討する。
smtp.req.command == "EHLO"||smtp.req.command == "HELO" などとやってみる
(もちょっと短くできんものか)。
案の定、SPAMっぽいものは、名乗りからして下×だ。
デフォルトは"no"。
postfix/smtpd[2395]: NOQUEUE: reject: RCPT from $REMOTE: \ 554 5.7.1 <$AC2>: Relay access denied; from=<$AC1> to=<$AC2> \ proto=ESMTP helo=$HELO
"yes"に変えてみる。
postfix/smtpd[2298]: NOQUEUE: reject: RCPT from $REMOTE: \ 454 4.7.1 <$AC2>: Relay access denied; from=<$AC1> to=<$AC2> \ proto=SMTP helo=$HELO
Postfix に {helo,ehlo} したときの文字列をチェックさせる。
ただし、実際に跳ねるのは、現在の設定では rcpt to の後だった。
renect_invalid_hostname を入れると、"hoge..hoge" などが跳ねられた。
postfix/smtpd[2703]: NOQUEUE: reject: RCPT from \ $REMOTE : 401 4.5.2 <hoge..hoge>: Helo command rejected: \ Invalid name; from=<$AC1> to=<$AC2> proto=ESMTP \ helo=<hoge..hoge>
reject_non_fqdn_hostname を入れると、FQDNでないように見える 名前などが跳ねられた。
postfix/smtpd[2318]: NOQUEUE: reject: RCPT from \ $REMOTE: 404 4.5.2 <$NON_FQDN>: Helo command rejected: \ need fully-qualified hostname; from=<$AC1> to=<$AC2> \ proto=ESMTP helo=<$NON_FQDN>
reject_unknown_hostname を入れると、DNSで引けない名前などが跳ねられた。
postfix/smtpd[2796]: NOQUEUE: reject: RCPT from \ $REMOTE: 450 4.7.1 $UNKNOWN: Helo command rejected: \ Host not found; from=<$AC1> to=<$AC2> proto=ESMTP \ helo=<$UNKNOWN>
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。