- 追加された行はこの色です。
- 削除された行はこの色です。
[[阻止率99%のスパム対策方式の研究報告]]
http://mail.kuji-clinic.info/cgi-bin/s25r_s.cgi
http://mail.smb.net/cgi-bin/s25r_s.cgi
http://mail.smb.net/cgi-bin/s25r_s7.cgi
http://mail.smb.net/cgi-bin/s25r.cgi
#contents
*s25rのログ検索のためpermisssion変更 [#w2e6b7e8]
/etc/newsyslog.conf
#/var/log/maillog 640 7 * @T00 C
########## s25r log検索のため 644 へ 20120823 ##############
/var/log/maillog 644 7 * @T00 C
*拒絶ログソーティングスクリプト FreeBSD 9.0用 [#b93f1357]
オリジナルのままだとエラーするので、ちょっと改訂。
#ref(s25r_s.cgi)
【変えた所】
-何故か手元のmail server だと、charset=iso-8859-1をいれないと駄目っぽかった。
-あと、gawkをインストールしても、broken pipeになるっぽいので、gawk を awk にした。
--- s25r_orig.cgi 2012-08-23 12:55:46.000000000 +0900
+++ s25r.cgi 2012-08-23 10:44:07.000000000 +0900
@@ -1,12 +1,14 @@
#!/bin/sh
-echo "Content-Type: text/plain"
+echo "Content-type: text/plain; charset=iso-8859-1"
+#echo "Content-Type: text/plain"
echo
echo "Mail rejection log"
echo
-cat /var/log/maillog.4 /var/log/maillog.3 /var/log/maillog.2 \
- /var/log/maillog.1 /var/log/maillog | \
+cat /var/log/maillog.4 /var/log/maillog.3 /var/log/maillog.2 /var/log/maillog.1 /var/log/maillog | \
+#cat /var/log/maillog | \
grep 'reject:' | \
-gawk '
+#gawk '
+awk '
BEGIN {
count=0
}
--- s25r_s_orig.cgi 2012-08-23 12:56:33.000000000 +0900
+++ s25r_s.cgi 2012-08-23 11:16:48.000000000 +0900
@@ -1,5 +1,6 @@
#!/bin/sh
-echo "Content-Type: text/plain"
+echo "Content-type: text/plain; charset=iso-8859-1"
+#echo "Content-Type: text/plain"
echo
echo "Mail rejection log (450 Client host rejected) - sorted"
echo
@@ -14,10 +15,10 @@
#
# (3) Extract essential items.
#
-gawk '
+awk '
{
client=substr($0, match($0, /from [^]]+\]/)+5, RLENGTH-5)
- sub(/\[/, " [", client)
+ gsub(/\[/, " [", client)
sender=substr($0, match($0, /from=<[^>]*>/), RLENGTH)
rcpt=substr($0, match($0, /to=<[^>]*>/), RLENGTH)
helo=substr($0, match($0, /helo=<[^>]*>/), RLENGTH)
@@ -27,7 +28,7 @@
#
# (4) Convert month names into month numbers.
#
-gawk '
+awk '
BEGIN {
month_num["Jan"]=1
month_num["Feb"]=2
@@ -59,7 +60,7 @@
#
# (6) Insert a blank line between records with a different triplet.
#
-gawk '
+awk '
BEGIN {
prev_triplet=""
}
@@ -75,7 +76,7 @@
#
# (7) Convert retry records in a sequence into one line.
#
-gawk '
+awk '
BEGIN {
RS=""
}
@@ -91,7 +92,7 @@
#
# (9) Reconvert retry records in a sequence into multiple lines.
#
-gawk '
+awk '
{
gsub(/\036/, "\n")
print
@@ -101,7 +102,7 @@
#
# (10) Reconvert month numbers into month names.
#
-gawk '
+awk '
BEGIN {
month_name[1]="Jan"
month_name[2]="Feb"
@@ -128,7 +129,7 @@
#
# (11) Output sorted records with counting.
#
-gawk '
+awk '
BEGIN {
Suppress_single_access_records=0
RS=""
*拒絶ログソーティングスクリプト [#he3ee23b]
オリジナルは、こちら。
http://www.gabacho-net.jp/anti-spam/log-sorting-script.html
試しに実行してみると、
[Thu Aug 23 08:26:18 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
というエラー(´・ω・`)なので、
hotshot# portinstall japanese/gawk
hotshot# rehash
した。けど、何故か broken pipe の嵐になるので、gawk やめて awk に・・・w
**必要な設定 [#i5ce8efc]
HTTPデーモンの権限でメールログファイルが読めるようにアクセス権を設定。
hotshot# chmod 644 /var/log/maillog*
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] /usr/local/www/apache22/cgi-bin/s25r.cig: gawk: not found
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe
[Thu Aug 23 08:49:30 2012] [error] [client 210.255.122.209] egrep: writing output: Broken pipe