diff --git a/sample/black_hostname_db b/sample/black_hostname_db index 5ecd2c1..27f64a0 100644 --- a/sample/black_hostname_db +++ b/sample/black_hostname_db @@ -1,4 +1,4 @@ # sample -# spammerのホスト名 +# spammer鴻 ^mail\.spammer\.net$ ^warumono\.org$ diff --git a/sample/black_ip_db b/sample/black_ip_db index 145fa54..31aadf1 100644 --- a/sample/black_ip_db +++ b/sample/black_ip_db @@ -1,4 +1,4 @@ # sample -# spammerのIP +# spammerIP ^111\.222\.111\.222$ ^222\.111\.222\.[0-9]*$ diff --git a/sample/relay_allow_address_db b/sample/relay_allow_address_db index 30ab0c9..cd658b0 100644 --- a/sample/relay_allow_address_db +++ b/sample/relay_allow_address_db @@ -1,4 +1,4 @@ # sample -# 外部のサーバに許可する配送先アドレス(for 第三者リレーチェック) -# 検査の対象が`RCPT TO:'行そのものなので、正規表現(^$)で囲んではダメ +# 紊泣若荐怨≪(for 膃筝若с) +# 罎祉絲乗院`RCPT TO:'茵с罩h頫(^$)у蚊с myh.no-ip.org diff --git a/sample/relay_allow_host_db b/sample/relay_allow_host_db index 6dd151d..cf97701 100644 --- a/sample/relay_allow_host_db +++ b/sample/relay_allow_host_db @@ -1,4 +1,4 @@ # sample -# 全てのリレーを許可するホストのIP(for 第三者リレーチェック) +# 若荐怨鴻IP(for 膃筝若с) ^127\.0\.0\.1$ ^192\.168\.0\.[0-9]*$ diff --git a/sample/show_retry1.sh b/sample/show_retry1.sh index 4a7a65f..0eec11d 100755 --- a/sample/show_retry1.sh +++ b/sample/show_retry1.sh @@ -10,18 +10,18 @@ PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin: tmp="/tmp" #----------------------------------------------------------------- # -# 当日中の、完全に全てのアクセスを拒否されているIPの内、 -# INTERVALに設定した秒数以上間隔を空けてアクセスしてい -# る物を表示する。 +# 綵ヤ賢絎≪祉鴻IP +# INTERVAL荐絎腱遺札筝腥冴≪祉鴻 +# 茵腓冴 # # RFC2821(Simple Mail Transfer Protocol) # -# 4.5.4.1 送信戦略 +# 4.5.4.1 篆≧ # -# ある特定の宛先への送信が失敗した後、クライアントは再送を遅延させ -# なければならない(MUST)。一般にこの再送の間隔は少なくとも 30 分で -# あるべき(SHOULD)だが、配送不能の原因を SMTP クライアントが特定で -# きる場合には、より繊細で柔軟な戦略が有益だろう。 +# 劫絎吾篆<紊掩緇ゃ≪潟綮吟 +# 違(MUST)筝絨 30 +# 鴻(SHOULD)筝純 SMTP ゃ≪潟劫 +# 翫膵膣違ф荵ャ # INTERVAL=`expr 30 \* 60`; export INTERVAL # @@ -29,12 +29,12 @@ date=`date +'%b %d' | sed -e 's/ *0/ /'` # # In : May 23 10:59:35 lib100 smtp_wrapper: [25403] 450 This message was rejected according to site policy(rejected by ip_filter. IP=60.236.0.5)(SL18) # -# 当日中の、IPを含んだ(拒否|受付)メッセージを抽出[1] +# 綵ヤ賢IP(|篁)<祉若吾遵[1] cat $* |\ sed -e 's/ */ /g' |\ egrep -i "^${date} .*smtp_wrapper.*rejected by|^${date} .*smtp_wrapper.*child start" >${tmp}/show_retry1.1.$$.tmp # -# 受付メッセージから出現回数、IPを抽出&編集[2] +# 篁<祉若吾榊憜違IP遵削膩[2] cat ${tmp}/show_retry1.1.$$.tmp |\ grep -i 'child start' |\ sed -e 's/^.*IP=//;s/(.*$//' |\ @@ -43,7 +43,7 @@ uniq -c |\ grep -v '^ *1 ' |\ sort >${tmp}/show_retry1.2.$$.tmp # -# 拒否メッセージから出現回数、IPを抽出&編集[3] +# <祉若吾榊憜違IP遵削膩[3] cat ${tmp}/show_retry1.1.$$.tmp |\ grep -i 'rejected by' |\ sed -e 's/^.*IP=//;s/).*$//' |\ @@ -51,13 +51,13 @@ sort |\ uniq -c |\ sort >${tmp}/show_retry1.3.$$.tmp # -# 受付回数と拒否回数の等しい(つまり完全に拒否されている)IPを抽出[4] +# 篁違違膈(ゃ障絎)IP遵[4] join -t "," ${tmp}/show_retry1.2.$$.tmp ${tmp}/show_retry1.3.$$.tmp |\ sed -e 's/^ *//' |\ cut -d ' ' -f 2 |\ sort >${tmp}/show_retry1.4.$$.tmp # -# 拒否メッセージの間隔がINTERVAL秒以上のIP抽出&編集[5] +# <祉若吾INTERVAL腱篁ヤIP遵削膩[5] cat ${tmp}/show_retry1.1.$$.tmp |\ grep -i "smtp_wrapper.*rejected by" |\ sed -e 's/smtp_wrapper:.*IP=//;s/).*$//;s/:/ /g' |\ @@ -105,10 +105,10 @@ END{ } }' >${tmp}/show_retry1.5.$$.tmp # -# [4][5]マッチングして、全ての受付がINTERVAL秒以上の間隔で拒否されているIPを抽出[6] +# [4][5]潟違篁INTERVAL腱篁ヤфIP遵[6] join ${tmp}/show_retry1.4.$$.tmp ${tmp}/show_retry1.5.$$.tmp >${tmp}/show_retry1.6.$$.tmp # -# [6]にDNS逆引結果を付加して表示 +# [6]DNS綣腟篁茵腓 for i in `cat ${tmp}/show_retry1.6.$$.tmp` do echo -n $i " : " diff --git a/sample/show_retry2.sh b/sample/show_retry2.sh index cc31c5f..e3a0fa0 100755 --- a/sample/show_retry2.sh +++ b/sample/show_retry2.sh @@ -9,8 +9,8 @@ PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"; export PATH #----------------------------------------------------------------- # -# smtp_filter2.shに拒否されているIPの内、リトライしている物を表示 -# する。 +# smtp_filter2.shIPゃ茵腓 +# # date=`date +'%b %d' | sed -e 's/ *0/ /'` # diff --git a/sample/smtp_filter.sh b/sample/smtp_filter.sh index 639c65e..00685c5 100755 --- a/sample/smtp_filter.sh +++ b/sample/smtp_filter.sh @@ -7,17 +7,17 @@ # # Thanks to http://www.gabacho-net.jp/anti-spam/anti-spam-system.html # -# IPに対するチェック(S25R)とコンテンツに対するチェック(第三者リレー)を同時に -# 行う場合のスクリプト。`-f'オプションに指定する。`-if'オプションは指定しない。 +# IP絲障с(S25R)潟潟潟絲障с(膃筝) +# 茵翫鴻`-f'激с潟絎`-if'激с潟絎 # #============================================================ # -# 割り込み時の処理設定 +# 蚊莨若炊荐絎 # trap "spam_exit 1 \"kill by signal\"" INT HUP TERM QUIT #============================================================ # -# 実行パス設定 +# 絎茵壕┃絎 # PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" export PATH @@ -29,39 +29,39 @@ export PATH #(sleep ${timeout}; kill -15 ${PPID}) & #============================================================ # -# smtp_wrapperディレクトリ指定 +# smtp_wrapperc絎 # smtp_wrapper_dir="/usr/local/smtp_wrapper" # -# テンポラリスプールディレクトリ +# 潟鴻若c tmp="/var/tmp" # -# syslog出力時のID +# syslog阪ID sl_ident="smtp_filter" # -# 正当ホストのIPデータベース +# 罩e鴻IP若帥若 white_ip_db="${smtp_wrapper_dir}/white_ip_db" -# 正当ホストのFQDNデータベース +# 罩e鴻FQDN若帥若 white_hostname_db="${smtp_wrapper_dir}/white_hostname_db" -# 不正ホストのIPデータベース +# 筝罩c鴻IP若帥若 black_ip_db="${smtp_wrapper_dir}/black_ip_db" -# 不正ホストのFQDNデータベース +# 筝罩c鴻FQDN若帥若 black_hostname_db="${smtp_wrapper_dir}/black_hostname_db" # -# 全てのリレーを許可するホストのIPデータベース +# 若荐怨鴻IP若帥若 relay_allow_host="${smtp_wrapper_dir}/relay_allow_host_db" -# 外部のサーバに許可する配送先アドレスデータベース +# 紊泣若荐怨≪鴻若帥若 relay_allow_address="${smtp_wrapper_dir}/relay_allow_address_db" #============================================================ # -# ある種の定数 +# 腮絎 # cr=`echo -n -e '\r'`; export cr tab=`echo -n -e '\t'`; export tab pid="$$"; export pid #============================================================ # -# spamと判断時に終了させる処理 +# spamゆ腟篋 # spam_exit () { @@ -81,13 +81,13 @@ spam_exit () } #============================================================ # -# スパムチェック処理 +# 鴻с # spam_check () { if [ "X${from_ip}" = "X" ] then - spam_exit 2 "unknown ip" # *** 送信ホストのIPが判らない *** + spam_exit 2 "unknown ip" # *** 篆<鴻IPゃ *** fi # for i in `egrep -v '^#' ${black_ip_db}` @@ -96,7 +96,7 @@ spam_check () egrep "$i"` if [ "X${black_ip}" != "X" ] then - spam_exit 3 "black IP" # *** 送信ホストIPが黒IPデータベースに登録されている *** + spam_exit 3 "black IP" # *** 篆<鴻IP藥IP若帥若鴻脂蚊 *** fi done # @@ -116,7 +116,7 @@ spam_check () sed -e 's/^.* domain name pointer *//;s/\.$//'` if [ "X${white_ip}" = "X" -a "X${from_hostname}" = "X" ] then - spam_exit 4 "no dns" # *** 送信ホストのIPが逆引きできない *** + spam_exit 4 "no dns" # *** 篆<鴻IP綣с *** fi # for i in `egrep -v '^#' ${black_hostname_db}` @@ -125,7 +125,7 @@ spam_check () egrep "$i"` if [ "X${black_hostname}" != "X" ] then - spam_exit 5 "black hostname" # *** 送信ホスト名が黒ホスト名データベースに登録されている *** + spam_exit 5 "black hostname" # *** 篆<鴻藥鴻若帥若鴻脂蚊 *** fi done # @@ -146,48 +146,48 @@ spam_check () egrep '^[^\.]*[0-9][^0-9\.]+[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 6 "rule 1" # *** [ルール1] 逆引きFQDNの最下位(左端)の名前が、数字以外の文字列で分断された二つ以上の数 *** + spam_exit 6 "rule 1" # *** 鐚祉若1鐚純綣FQDN筝篏鐚綏腴鐚医篁ュ絖у篋や札筝 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]{5}'` if [ "X${spam_host}" != "X" ] then - spam_exit 7 "rule 2" # *** [ルール2] 逆引きFQDNの最下位の名前が、5個以上連続する数字を含む *** + spam_exit 7 "rule 2" # *** 鐚祉若2鐚純綣FQDN筝篏5篁ヤg医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]'` if [ "X${spam_host}" != "X" ] then - spam_exit 8 "rule 3" # *** [ルール3] 逆引きFQDNの上位3階層を除き、最下位または下位から2番目の名前が数字で始まる *** + spam_exit 8 "rule 3" # *** 鐚祉若3鐚純綣FQDN筝篏3絮ゃゃ筝篏障筝篏2医у障 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 9 "rule 4" # *** [ルール4] 逆引きFQDNの最下位の名前が数字で終わり、かつ下位から2番目の名前が、1個のハイフンで分断された二つ以上の数字列を含む *** + spam_exit 9 "rule 4" # *** 鐚祉若4鐚純綣FQDN筝篏医хや篏21ゃ潟у篋や札筝医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\.'` if [ "X${spam_host}" != "X" ] then - spam_exit 10 "rule 5" # *** [ルール5] 逆引きFQDNが5階層以上で、下位2階層の名前がともに数字で終わる *** + spam_exit 10 "rule 5" # *** 鐚祉若5鐚純綣FQDN5絮や札筝с筝篏2絮ゃ医х *** fi # spam_host=`echo ${from_hostname} |\ egrep '^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 11 "rule 6" # *** [ルール6] 逆引きFQDNの最下位の名前が「dhcp」、「dialup」、「ppp」、または「adsl」で始まり、かつ数字を含む *** + spam_exit 11 "rule 6" # *** 鐚祉若6鐚純綣FQDN筝篏dhcpdialupppp障adslу障ゆ医 *** fi fi } #============================================================ # -# 第三者リレーチェック処理 +# 膃筝若с # relay_check () { @@ -229,14 +229,14 @@ relay_check () done if [ "X${allow_rcpt}" = "X" ] then - spam_exit 12 "no relay" # *** 第三者中継拒否 *** + spam_exit 12 "no relay" # *** 膃筝筝膓 *** fi done fi } #============================================================ # -# 主処理開始 +# 筝糸紮 # from_ip="" from_hostname="" @@ -247,21 +247,21 @@ black_hostname="" # #============================================================ # -# 直接SMTP接続分のチェック +# 贋・SMTP・膓с # -# (smtp_wrapper から環境変数 SW_FROM_IP に接続元IPが渡される) +# (smtp_wrapper 医紊 SW_FROM_IP ・膓IP羝<) # from_ip=${SW_FROM_IP} # spam_check #============================================================ # -# メール本文を全文受信(スプール)する +# <若篆(鴻若) # cat >${tmp}/smtp_filter.1.$$.tmp #============================================================ # -# 第三者中継拒否 +# 膃筝筝膓 # from_ip=${SW_FROM_IP} # @@ -269,7 +269,7 @@ relay_check # #============================================================ # -# 正当なメールと判断されたものを出力する +# 罩e<若ゆ阪 # export from_ip export from_hostname @@ -301,7 +301,7 @@ END{ # #============================================================ # -# 後始末して終了 +# 緇紮腟篋 # rm -f ${tmp}/smtp_filter.*.$$.tmp exit 0 diff --git a/sample/smtp_filter1.sh b/sample/smtp_filter1.sh index c26a97b..08ba95e 100755 --- a/sample/smtp_filter1.sh +++ b/sample/smtp_filter1.sh @@ -7,16 +7,16 @@ # # Thanks to http://www.gabacho-net.jp/anti-spam/anti-spam-system.html # -# IPに対するチェック(S25R)を行う場合のスクリプト。`-if'オプションに指定する。 +# IP絲障с(S25R)茵翫鴻`-if'激с潟絎 # #============================================================ # -# 割り込み時の処理設定 +# 蚊莨若炊荐絎 # trap "spam_exit 1 \"kill by signal\"" INT HUP TERM QUIT #============================================================ # -# 実行パス設定 +# 絎茵壕┃絎 # PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" export PATH @@ -28,35 +28,35 @@ export PATH #(sleep ${timeout}; kill -15 ${PPID}) & #============================================================ # -# smtp_wrapperディレクトリ指定 +# smtp_wrapperc絎 # smtp_wrapper_dir="/usr/local/smtp_wrapper" # -# テンポラリスプールディレクトリ +# 潟鴻若c tmp="/var/tmp" # -# syslog出力時のID +# syslog阪ID sl_ident="smtp_filter1" # -# 正当ホストのIPデータベース +# 罩e鴻IP若帥若 white_ip_db="${smtp_wrapper_dir}/white_ip_db" -# 正当ホストのFQDNデータベース +# 罩e鴻FQDN若帥若 white_hostname_db="${smtp_wrapper_dir}/white_hostname_db" -# 不正ホストのIPデータベース +# 筝罩c鴻IP若帥若 black_ip_db="${smtp_wrapper_dir}/black_ip_db" -# 不正ホストのFQDNデータベース +# 筝罩c鴻FQDN若帥若 black_hostname_db="${smtp_wrapper_dir}/black_hostname_db" # #============================================================ # -# ある種の定数 +# 腮絎 # cr=`echo -n -e '\r'`; export cr tab=`echo -n -e '\t'`; export tab pid="$$"; export pid #============================================================ # -# spamと判断時に終了させる処理 +# spamゆ腟篋 # spam_exit () { @@ -70,13 +70,13 @@ spam_exit () } #============================================================ # -# スパムチェック処理 +# 鴻с # spam_check () { if [ "X${from_ip}" = "X" ] then - spam_exit 2 "unknown ip" # *** 送信ホストのIPが判らない *** + spam_exit 2 "unknown ip" # *** 篆<鴻IPゃ *** fi # for i in `egrep -v '^#' ${black_ip_db}` @@ -85,7 +85,7 @@ spam_check () egrep "$i"` if [ "X${black_ip}" != "X" ] then - spam_exit 3 "black IP" # *** 送信ホストIPが黒IPデータベースに登録されている *** + spam_exit 3 "black IP" # *** 篆<鴻IP藥IP若帥若鴻脂蚊 *** fi done # @@ -105,7 +105,7 @@ spam_check () sed -e 's/^.* domain name pointer *//;s/\.$//'` if [ "X${white_ip}" = "X" -a "X${from_hostname}" = "X" ] then - spam_exit 4 "no dns" # *** 送信ホストのIPが逆引きできない *** + spam_exit 4 "no dns" # *** 篆<鴻IP綣с *** fi # for i in `egrep -v '^#' ${black_hostname_db}` @@ -114,7 +114,7 @@ spam_check () egrep "$i"` if [ "X${black_hostname}" != "X" ] then - spam_exit 5 "black hostname" # *** 送信ホスト名が黒ホスト名データベースに登録されている *** + spam_exit 5 "black hostname" # *** 篆<鴻藥鴻若帥若鴻脂蚊 *** fi done # @@ -135,48 +135,48 @@ spam_check () egrep '^[^\.]*[0-9][^0-9\.]+[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 6 "rule 1" # *** [ルール1] 逆引きFQDNの最下位(左端)の名前が、数字以外の文字列で分断された二つ以上の数 *** + spam_exit 6 "rule 1" # *** 鐚祉若1鐚純綣FQDN筝篏鐚綏腴鐚医篁ュ絖у篋や札筝 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]{5}'` if [ "X${spam_host}" != "X" ] then - spam_exit 7 "rule 2" # *** [ルール2] 逆引きFQDNの最下位の名前が、5個以上連続する数字を含む *** + spam_exit 7 "rule 2" # *** 鐚祉若2鐚純綣FQDN筝篏5篁ヤg医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]'` if [ "X${spam_host}" != "X" ] then - spam_exit 8 "rule 3" # *** [ルール3] 逆引きFQDNの上位3階層を除き、最下位または下位から2番目の名前が数字で始まる *** + spam_exit 8 "rule 3" # *** 鐚祉若3鐚純綣FQDN筝篏3絮ゃゃ筝篏障筝篏2医у障 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 9 "rule 4" # *** [ルール4] 逆引きFQDNの最下位の名前が数字で終わり、かつ下位から2番目の名前が、1個のハイフンで分断された二つ以上の数字列を含む *** + spam_exit 9 "rule 4" # *** 鐚祉若4鐚純綣FQDN筝篏医хや篏21ゃ潟у篋や札筝医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\.'` if [ "X${spam_host}" != "X" ] then - spam_exit 10 "rule 5" # *** [ルール5] 逆引きFQDNが5階層以上で、下位2階層の名前がともに数字で終わる *** + spam_exit 10 "rule 5" # *** 鐚祉若5鐚純綣FQDN5絮や札筝с筝篏2絮ゃ医х *** fi # spam_host=`echo ${from_hostname} |\ egrep '^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 11 "rule 6" # *** [ルール6] 逆引きFQDNの最下位の名前が「dhcp」、「dialup」、「ppp」、または「adsl」で始まり、かつ数字を含む *** + spam_exit 11 "rule 6" # *** 鐚祉若6鐚純綣FQDN筝篏dhcpdialupppp障adslу障ゆ医 *** fi fi } #============================================================ # -# 主処理開始 +# 筝糸紮 # from_ip="" from_hostname="" @@ -187,16 +187,16 @@ black_hostname="" # #============================================================ # -# 直接SMTP接続分のチェック +# 贋・SMTP・膓с # -# (smtp_wrapper から環境変数 SW_FROM_IP に接続元IPが渡される) +# (smtp_wrapper 医紊 SW_FROM_IP ・膓IP羝<) # from_ip=${SW_FROM_IP} # spam_check #============================================================ # -# 後始末して終了 +# 緇紮腟篋 # rm -f ${tmp}/smtp_filter1.*.$$.tmp exit 0 diff --git a/sample/smtp_filter1_starpit.sh b/sample/smtp_filter1_starpit.sh index b9f19da..297b5d1 100755 --- a/sample/smtp_filter1_starpit.sh +++ b/sample/smtp_filter1_starpit.sh @@ -8,16 +8,16 @@ # Thanks to http://www.gabacho-net.jp/anti-spam/anti-spam-system.html # http://d.hatena.ne.jp/stealthinu/20060706/p5 # -# IPに対するチェック(S25R+tarpitting)を行う場合のスクリプト。`-if'オプションに指定する。 +# IP絲障с(S25R+tarpitting)茵翫鴻`-if'激с潟絎 # #============================================================ # -# 割り込み時の処理設定 +# 蚊莨若炊荐絎 # trap "spam_exit 1 \"kill by signal\"" INT HUP TERM QUIT #============================================================ # -# 実行パス設定 +# 絎茵壕┃絎 # PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" export PATH @@ -29,40 +29,40 @@ export PATH #(sleep ${timeout}; kill -15 ${PPID}) & #============================================================ # -# smtp_wrapperディレクトリ指定 +# smtp_wrapperc絎 # smtp_wrapper_dir="/usr/local/smtp_wrapper" # -# テンポラリスプールディレクトリ +# 潟鴻若c tmp="/var/tmp" # -# syslog出力時のID +# syslog阪ID sl_ident="smtp_filter1_starpit" # -# 正当ホストのIPデータベース +# 罩e鴻IP若帥若 white_ip_db="${smtp_wrapper_dir}/white_ip_db" -# 正当ホストのFQDNデータベース +# 罩e鴻FQDN若帥若 white_hostname_db="${smtp_wrapper_dir}/white_hostname_db" -# 不正ホストのIPデータベース +# 筝罩c鴻IP若帥若 black_ip_db="${smtp_wrapper_dir}/black_ip_db" -# 不正ホストのFQDNデータベース +# 筝罩c鴻FQDN若帥若 black_hostname_db="${smtp_wrapper_dir}/black_hostname_db" # #============================================================ # -# ある種の定数 +# 腮絎 # cr=`echo -n -e '\r'`; export cr tab=`echo -n -e '\t'`; export tab pid="$$"; export pid #============================================================ # -# S25RにひっかかるMTAに対する遅延時間 +# S25R蚊cMTA絲障綮倶 # delay="60s" #============================================================ # -# spamと判断時に終了させる処理 +# spamゆ腟篋 # spam_exit () { @@ -81,13 +81,13 @@ spam_exit () } #============================================================ # -# スパムチェック処理 +# 鴻с # spam_check () { if [ "X${from_ip}" = "X" ] then - spam_exit 2 "unknown ip" # *** 送信ホストのIPが判らない *** + spam_exit 2 "unknown ip" # *** 篆<鴻IPゃ *** fi # for i in `egrep -v '^#' ${black_ip_db}` @@ -96,7 +96,7 @@ spam_check () egrep "$i"` if [ "X${black_ip}" != "X" ] then - spam_exit 3 "black IP" # *** 送信ホストIPが黒IPデータベースに登録されている *** + spam_exit 3 "black IP" # *** 篆<鴻IP藥IP若帥若鴻脂蚊 *** fi done # @@ -116,7 +116,7 @@ spam_check () sed -e 's/^.* domain name pointer *//;s/\.$//'` if [ "X${white_ip}" = "X" -a "X${from_hostname}" = "X" ] then - spam_exit 4 "no dns" # *** 送信ホストのIPが逆引きできない *** + spam_exit 4 "no dns" # *** 篆<鴻IP綣с *** fi # for i in `egrep -v '^#' ${black_hostname_db}` @@ -125,7 +125,7 @@ spam_check () egrep "$i"` if [ "X${black_hostname}" != "X" ] then - spam_exit 5 "black hostname" # *** 送信ホスト名が黒ホスト名データベースに登録されている *** + spam_exit 5 "black hostname" # *** 篆<鴻藥鴻若帥若鴻脂蚊 *** fi done # @@ -146,48 +146,48 @@ spam_check () egrep '^[^\.]*[0-9][^0-9\.]+[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 6 "rule 1" # *** [ルール1] 逆引きFQDNの最下位(左端)の名前が、数字以外の文字列で分断された二つ以上の数 *** + spam_exit 6 "rule 1" # *** 鐚祉若1鐚純綣FQDN筝篏鐚綏腴鐚医篁ュ絖у篋や札筝 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]{5}'` if [ "X${spam_host}" != "X" ] then - spam_exit 7 "rule 2" # *** [ルール2] 逆引きFQDNの最下位の名前が、5個以上連続する数字を含む *** + spam_exit 7 "rule 2" # *** 鐚祉若2鐚純綣FQDN筝篏5篁ヤg医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]'` if [ "X${spam_host}" != "X" ] then - spam_exit 8 "rule 3" # *** [ルール3] 逆引きFQDNの上位3階層を除き、最下位または下位から2番目の名前が数字で始まる *** + spam_exit 8 "rule 3" # *** 鐚祉若3鐚純綣FQDN筝篏3絮ゃゃ筝篏障筝篏2医у障 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 9 "rule 4" # *** [ルール4] 逆引きFQDNの最下位の名前が数字で終わり、かつ下位から2番目の名前が、1個のハイフンで分断された二つ以上の数字列を含む *** + spam_exit 9 "rule 4" # *** 鐚祉若4鐚純綣FQDN筝篏医хや篏21ゃ潟у篋や札筝医 *** fi # spam_host=`echo ${from_hostname} |\ egrep '^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\.'` if [ "X${spam_host}" != "X" ] then - spam_exit 10 "rule 5" # *** [ルール5] 逆引きFQDNが5階層以上で、下位2階層の名前がともに数字で終わる *** + spam_exit 10 "rule 5" # *** 鐚祉若5鐚純綣FQDN5絮や札筝с筝篏2絮ゃ医х *** fi # spam_host=`echo ${from_hostname} |\ egrep '^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]'` if [ "X${spam_host}" != "X" ] then - spam_exit 11 "rule 6" # *** [ルール6] 逆引きFQDNの最下位の名前が「dhcp」、「dialup」、「ppp」、または「adsl」で始まり、かつ数字を含む *** + spam_exit 11 "rule 6" # *** 鐚祉若6鐚純綣FQDN筝篏dhcpdialupppp障adslу障ゆ医 *** fi fi } #============================================================ # -# 主処理開始 +# 筝糸紮 # from_ip="" from_hostname="" @@ -198,16 +198,16 @@ black_hostname="" # #============================================================ # -# 直接SMTP接続分のチェック +# 贋・SMTP・膓с # -# (smtp_wrapper から環境変数 SW_FROM_IP に接続元IPが渡される) +# (smtp_wrapper 医紊 SW_FROM_IP ・膓IP羝<) # from_ip=${SW_FROM_IP} # spam_check #============================================================ # -# 後始末して終了 +# 緇紮腟篋 # rm -f ${tmp}/smtp_filter1_starpit.*.$$.tmp exit 0 diff --git a/sample/smtp_filter2.sh b/sample/smtp_filter2.sh index ba2449e..ece7239 100755 --- a/sample/smtp_filter2.sh +++ b/sample/smtp_filter2.sh @@ -7,16 +7,16 @@ # # Thanks to http://www.gabacho-net.jp/anti-spam/anti-spam-system.html # -# コンテンツに対するチェック(第三者リレー)を行う場合のスクリプト。`-f'オプションに指定する。 +# 潟潟潟絲障с(膃筝)茵翫鴻`-f'激с潟絎 # #============================================================ # -# 割り込み時の処理設定 +# 蚊莨若炊荐絎 # trap "spam_exit 1 \"kill by signal\"" INT HUP TERM QUIT #============================================================ # -# 実行パス設定 +# 絎茵壕┃絎 # PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" export PATH @@ -28,30 +28,30 @@ export PATH #(sleep ${timeout}; kill -15 ${PPID}) & #============================================================ # -# smtp_wrapperディレクトリ指定 +# smtp_wrapperc絎 # smtp_wrapper_dir="/usr/local/smtp_wrapper" # -# テンポラリスプールディレクトリ +# 潟鴻若c tmp="/var/tmp" # -# syslog出力時のID +# syslog阪ID sl_ident="smtp_filter2" # -# 全てのリレーを許可するホストのIPデータベース +# 若荐怨鴻IP若帥若 relay_allow_host="${smtp_wrapper_dir}/relay_allow_host_db" -# 外部のサーバに許可する配送先アドレスデータベース +# 紊泣若荐怨≪鴻若帥若 relay_allow_address="${smtp_wrapper_dir}/relay_allow_address_db" #============================================================ # -# ある種の定数 +# 腮絎 # cr=`echo -n -e '\r'`; export cr tab=`echo -n -e '\t'`; export tab pid="$$"; export pid #============================================================ # -# spamと判断時に終了させる処理 +# spamゆ腟篋 # spam_exit () { @@ -71,7 +71,7 @@ spam_exit () } #============================================================ # -# 第三者リレーチェック処理 +# 膃筝若с # relay_check () { @@ -113,47 +113,69 @@ relay_check () done if [ "X${allow_rcpt}" = "X" ] then - spam_exit 12 "no relay" # *** 第三者中継拒否 *** + spam_exit 12 "no relay" # *** 膃筝筝膓 *** fi done fi } #============================================================ # -# 主処理開始 +# 筝糸紮 # from_ip="" from_hostname="" +my_ip="" +my_hostname="" +my_localhostname="" # #============================================================ # -# メール本文を全文受信(スプール)する +# <若篆(鴻若) # cat >${tmp}/smtp_filter2.1.$$.tmp #============================================================ # -# 第三者中継拒否 +# 膃筝筝膓 # from_ip=${SW_FROM_IP} from_hostname=`host ${from_ip} 2>/dev/null |\ egrep 'domain name pointer' |\ head -1 |\ sed -e 's/^.* domain name pointer *//;s/\.$//'` +my_ip=`/sbin/ifconfig eth0 |\ + egrep ' inet ' |\ + head -1 |\ + tr -s ' ' |\ + cut -d ' ' -f 3` +my_hostname=`host ${my_ip} 2>/dev/null |\ + egrep 'domain name pointer' |\ + head -1 |\ + sed -e 's/^.* domain name pointer *//;s/\.$//'` +my_localhostname=`/bin/hostname -f` # relay_check # #============================================================ # -# 正当なメールと判断されたものを出力する +# 罩e<若ゆ阪 # export from_ip export from_hostname +export my_ip +export my_hostname +export my_localhostname # awk 'BEGIN{ from_ip = ENVIRON["from_ip"] from_hostname = ENVIRON["from_hostname"] + my_ip = ENVIRON["my_ip"] + my_hostname = ENVIRON["my_hostname"] + my_localhostname = ENVIRON["my_localhostname"] pid = ENVIRON["pid"] out_sw = 0; + out_received_sw = 1; + rcpt_to = ""; + helo_host = ""; } { if (out_sw == 0){ @@ -162,23 +184,35 @@ awk 'BEGIN{ head ~ /^DATA$/){ out_sw = 1; } + if (head ~ /^RCPT *TO:/){ + split($0, array, / */); + rcpt_to = array[3] + } + if (head ~ /^HELO / || head ~ /^EHLO /){ + split($0, array, / */); + helo_host = array[2] + } } if (out_sw == 1){ print $0; - fflush() + if (out_received_sw == 1){ + printf("Received: from %s (%s[%s])\r\n\tby %s (%s[%s]) with smtp_wrapper\r\n\tfor %s; %s\r\n", helo_host, from_hostname, from_ip, my_localhostname, my_hostname, my_ip, rcpt_to, strftime("%a, %d %b %Y %H:%M:%S %z (%Z)")) + out_received_sw = 0; + } + fflush(); } } END{ if (out_sw == 0){ printf("[%d]:IP=%-s HOST=%-s REASON=NOT spam, but NO DATA\n", pid, from_ip, from_hostname) - fflush() + fflush(); } }' ${tmp}/smtp_filter2.1.$$.tmp # #============================================================ # -# 後始末して終了 +# 緇紮腟篋 # rm -f ${tmp}/smtp_filter2.*.$$.tmp exit 0 diff --git a/sample/smtp_null_filter.sh b/sample/smtp_null_filter.sh index d8dbdca..03479f1 100755 --- a/sample/smtp_null_filter.sh +++ b/sample/smtp_null_filter.sh @@ -5,8 +5,8 @@ # Sample null filter script # by "Masahiko Ito" # -# smtp_wrapperデバッグ用 -# 第三者中継チェックすらしてないので注意 +# smtp_wrapper亥 +# 膃筝筝膓сф絵 # #------------------------------------------------------------ PATH="/usr/local/smtp_wrapper:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" diff --git a/sample/white_hostname_db b/sample/white_hostname_db index 43e354f..657b015 100644 --- a/sample/white_hostname_db +++ b/sample/white_hostname_db @@ -1,6 +1,6 @@ # sample -# 小細工用(普通はいらない) +# 絨靘医轡() ^_OK_$ # -# 許可するドメイン +# 荐怨<ゃ ^foo.*\.bar\.ne\.jp$ diff --git a/sample/white_ip_db b/sample/white_ip_db index b992513..2a2297b 100644 --- a/sample/white_ip_db +++ b/sample/white_ip_db @@ -1,9 +1,9 @@ # sample -# 小細工用(普通はいらない) +# 絨靘医轡() ^_OK_$ # # localhost ^127\.0\.0\.1$ # -# 許可するIPアドレス(自ネットワークも忘れず指定しましょう) +# 荐怨IP≪(若綽絎障) ^192\.168\.0\.[0-9]*$