順序は 逆かもしれないが というのは 置いといて arg1= の 内容を 抽出 し たが ruleset も 付記して 抜き出してみよう。元になる データーは /var/log/messages から sendmail に 関するものを 抜き出して かつ 正常なものと 考えられる ものを 除外 した ものである
$ ls -l badmail_part01 -rw-r--r-- 1 nyanco users 208312 10月 26日 21:59 badmail_part01 $ wc -l badmail_part01 1182 badmail_part01
まず ruleset= arg1= が ある 場所の 例を 見てみよう この様な パターン が 見られる。例としては同じものですが
Sep 30 06:51:56 nyanta sendmail[10542]: j8TLpsnp010542: ruleset=check_rcpt, arg1=<a231.b233@msa.hinet.net>, relay=220-135-126-62.HINET-IP.hinet.net [220.135.126.62], reject=550 5.7.1... Relaying denied Oct 24 15:13:07 nyanta sendmail[2391]: j9O6BKsF002391: ruleset=check_mail, arg1=<drgsergwe@pmail.com>, relay=[219.133.247.215], reject=451 4.1.8 Domain of sender address drgsergwe@pmail.com does not resolve Oct 24 15:13:07 nyanta sendmail[2391]: j9O6BKsF002391: from=<drgsergwe@pmail.com>, size=0, class=0, nrcpts=0, proto=SMTP, daemon=MTA, relay=[219.133.247.215] Apr 8 12:05:17 nyanta sendmail[912]: k38358Ef000912: ruleset=check_rcpt, arg1=efreecall@hanmail.net, relay=[61.83.179.130], reject=550 5.7.1 efreecall@hanmail.net... Relaying denied. IP name lookup failed [61.83.179.130]
こんどは これで 見てみよう
$ grep arg1 badmail_part01 | sed -e "s/.*:\(.*\), arg1=\(.*\), relay.*/\1\2/" >type007_r_set_arg
上記の例の一部分にも あるように 今回の データーから ルール として
ruleset=check_rcpt ruleset=check_mail
2種類が取り敢えず 見る事が 出来ます では 今回 2組に 分けてみましょ う
$ wc -l type007_r_set_arg 375 type007_r_set_arg $ cat type007_r_set_arg | sort | uniq | wc -l 105 $ cat type007_r_set_arg | sort | uniq | grep check_mail | wc -l 63 $ cat type007_r_set_arg | sort | uniq | grep -v check_mail | wc -l 42 $ cat type007_r_set_arg | sort | uniq | grep check_mail >type008_ch_mail $ cat type007_r_set_arg | sort | uniq | grep -v check_mail >type009_ch_mail $ mv type009_ch_mail type009_ch_rcpt $ wc -l type008_ch_mail type009_ch_rcpt 63 type008_ch_mail 42 type009_ch_rcpt 105 合計
では 此処まで来たので リスト にしたものを 見て行きましょう
にゃんたろう 拝!
2006年10月27日 (金) 21:48:27 JST 作成