金曜日, 11月 07, 2014

拒絶ログソーティングスクリプトの新バージョンを少し修正

 拒絶ログソーティングスクリプトの新バージョンを10月27日に公開したが(こちらの記事)、全面的に変更していたegrepの式を少し修正した。

egrep 'reject: RCPT from [^ ]+ 4[0-9][0-9] ' | \

egrep 'reject: RCPT from [^]]+\]: 4[0-9][0-9] ' | \

 入力されるログ行の実例は次のとおり。

Nov  6 13:55:31 a postfix/smtpd[32141]: NOQUEUE: reject: RCPT from websmtp.sohu.com[61.135.130.240]: 450 4.7.1 Service unavailable; Client host [61.135.130.240] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?61.135.130.240; from=<***@sohu.com> to=<***@gabacho-net.jp> proto=ESMTP helo=<websmtp.sohu.com>

(「websmtp.sohu.com」と「[61.135.130.240]」の間にスペースがない)

だから、修正前の式でも問題ないのだが、もしPostfixのログフォーマットがクライアントホスト名とそのIPアドレスとの間にスペースを挟むように変更されたらと考えて(多分ないと思うが)、そうなった場合に誤動作しないようにした。
 実は、「from 」の後のスペースを探す代わりに「:」を探すようにしようと一度考えたのだが、おっと危ない。IPアドレスがIPv6の表記形式だったら誤動作してしまう。なので、「]:」を探すようにした。

0 件のコメント: