阻止率99%のスパム対策方式の研究報告
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[S25R 拒絶ログソーティングスクリプト]]
#contents
*阻止率99%のスパム対策方式の研究報告 [#mff03011]
CENTER:―― Selective SMTP Rejection (S25R)方式 ――
CENTER:最終更新: 2009/11/23
CENTER:公開: 2004/06/26
CENTER:著者: 浅見秀雄
CENTER:原本の所在: http://www.gabacho-net.jp/anti-spam/
CENTER:著者の連絡先: <webmaster@gabacho-net.jp>
----
目次
あらまし
+ 従来のスパム対策
+ S25Rスパム対策方式のコンセプト
+ クライアント制限の規則
++ 一般規則
++ ブラックリスト
++ ホワイトリスト
++ その他のフィルタ
+ 統計データ
+ S25Rスパム対策方式を大規模サイトで運用する方法
+ S25Rスパム対策方式をインターネット全体で運用するために
+ スパマーがS25Rスパム対策方式をすり抜ける方法
まとめ
付録A. Postfixでの設定方法
付録B. 拒絶記録抽出用スクリプト
----
*あらまし [#o811518c]
~ オープンリレー(第三者中継)を行うメールサーバが少なく...
+従来のスパム対策
従来、次のようなスパム対策が工夫されてきたが、いずれも...
++送信者ドメインの検査
~ スパマーは、苦情の返信を避けるために、偽の送信者アドレ...
++内容の検査
~ 特定の語(たとえば「make money」)を含むメッセージを拒...
++オープンリレーの禁止
~ スパマーは、多量のスパムをばらまくために、インターネッ...
~ このようなエンドユーザー用回線からスパムを受けて、その...
++クライアントのIPアドレスまたはドメイン名の検査
~ SMTPアクセスをかけてくるクライアントのIPアドレスを検査...
~ IPアドレスブロック(「223.45.67.*」のような)、または...
~ 結局、メールシステム管理者は、メール爆弾を受けた時以外...
+ S25Rスパム対策方式のコンセプト
~ 私が考案したSelective SMTP Rejection (S25R)スパム対策...
~ 正当なメールのほとんどは、ISP(インターネットサービス...
~ また、昨今のウィルスには、自前のSMTPエンジンを持って、...
~ これらのことから、メール中継サーバからのメールだけを受...
~ SMTPアクセスをかけてきたクライアントがメール中継サーバ...
~ この判別は、外からのメールの入り口であるMX(Mail eXcha...
+ クライアント制限の規則
~ SMTPアクセスをかけてきたクライアントのFQDNの特徴に基づ...
++ 一般規則
~ うまく管理されているメール中継サーバのほとんどは、逆引...
~ エンドユーザー用回線のIPアドレスにも、逆引きFQDNを持つ...
~ 私が作り上げた拒絶用の一般規則を以下に説明する。これは...
+++[ルール0] 逆引き失敗
~ 逆引き失敗の意味は、IPアドレスからFQDNを検索できないこ...
~ 逆引きが失敗するホストの大多数はエンドユーザーコンピュ...
+++[ルール1] 逆引きFQDNの最下位(左端)の名前が、数字...
例: 220-139-165-188.dynamic.hinet.net
evrtwa1-ar3-4-65-157-048.evrtwa1.dsl-verizon.net
a12a190.neo.rr.com
Postfixの正規表現: /^[^.]*[0-9][^0-9.]+[0-9].*\./
~ エンドユーザー用回線のFQDNの中には、この規則に引っかか...
正規表現の末尾にある「\.」は、ドットにマッチする。これ...
+++[ルール2] 逆引きFQDNの最下位の名前が、5個以上連続す...
例: YahooBB220030220074.bbtec.net
pcp04083532pcs.levtwn01.pa.comcast.net
Postfixの正規表現: /^[^.]*[0-9]{5}/
~ 私は末端ホスト名に最大で4個連続する数字を含むメール中...
+++[ルール3] 逆引きFQDNの上位3階層を除き、最下位または...
例: 398pkj.cm.chello.no
host.101.169.23.62.rev.coltfrance.com
Postfixの正規表現: /^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[...
~ 「smtp.246.ne.jp」(実在する)のようなFQDNを引っかけな...
~ 正規表現の末尾にある「\.[a-z]」は、トップレベルドメイ...
+++[ルール4] 逆引きFQDNの最下位の名前が数字で終わり、...
例: wbar9.chi1-4-11-085-222.dsl-verizon.net
m226.net81-66-158.noos.fr
Postfixの正規表現: /^[^.]*[0-9]\.[^.]*[0-9]-[0-9]/
~ 「mail1.1-2-3.co.jp」(ドメイン名は実在、末端ホスト名...
+++[ルール5] 逆引きFQDNが5階層以上で、下位2階層の名前...
例: m500.union01.nj.comcast.net
d5.GtokyoFL27.vectant.ne.jp
Postfixの正規表現: /^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\...
~ 「mail1.number1.co.jp」(ドメイン名は実在、末端ホスト...
+++[ルール6] 逆引きFQDNの最下位の名前が「dhcp」、「dia...
例: dhcp0339.vpm.resnet.group.upenn.edu
dialupM107.ptld.uswest.net
PPPbf708.tokyo-ip.dti.ne.jp
dsl411.rbh-brktel.pppoe.execulink.com
adsl-1415.camtel.net
xdsl-5790.lubin.dialog.net.pl
Postfixの正規表現: /^(dhcp|dialup|ppp|[achrsvx]?dsl)[^....
~ この規則だけに引っかかるFQDNはわずかに存在する。このよ...
~
付記 2007年9月に正規表現の「adsl」の部分を「[achrsvx]?ds...
~
~ メールサーバがこれらの規則によってSMTPアクセスを拒絶す...
~ 付録A.は、これらの規則を後述のブラックリストおよびホワ...
++ ブラックリスト
~ ブラックリストは、前述の一般規則をすり抜けるエンドユー...
~ 一般規則をすり抜けるFQDNの特徴には次のものがある。
+++末端ホスト名が十六進番号を含む
~ 私は「ACBBD419.ipt.aol.com」というFQDNを発見したことが...
~ IPアドレスの十六進表記を含むホスト名を一網打尽にするた...
+++末端ホスト名が、番号を表す英字を含む
~ 私は「user-0cetcbr.cable.mindspring.com」および「user-...
+++メール中継サーバであるかのようなFQDNである
~ 数字を含まないFQDNを持つホストからスパムを受けたことが...
+++ドメインを代表するメールサーバがスパムを送信する
自分のドメイン名を持つ企業やインターネットサイトが宣伝...
~
~ ISPのドメインをブラックリストに登録する時には、そのド...
~ 特定のホストを拒絶したい場合は、正規表現を「/^host\.ex...
++ ホワイトリスト
~ ホワイトリスト(許可リスト)は、一般規則またはブラック...
~ 正当なメール中継サーバに対する拒絶の記録は、メールログ...
~ 参考までに、Postfixは、クライアント制限によって拒絶し...
~ 正当なメール中継サーバからのアクセスが拒絶されるケース...
+++逆引き失敗
~ 逆引きFQDNを持たないメール中継サーバがいくらかある。
+++逆引きFQDNが複数のIPアドレスに対応している
~ 逆引きFQDNからの順引きで複数のIPアドレスが得られること...
+++ホスト名が一般規則に引っかかる
~ 一般規則に引っかかるホスト名が少しある。実例として、私...
+++エンドユーザー用回線を利用している
~ 小規模の組織、個人インターネットサイト、およびメールマ...
~ 逆引きFQDNを持つIPアドレスは「/^223-123-45-67\.example...
~ エンドユーザー用回線を利用しているメールサーバは、固定...
++その他のフィルタ
~ クライアント制限によってほとんどのスパムが引っかかるが...
+++HELOコマンドの検査
~ HELOコマンドはクライアントホストのFQDNを名乗らなければ...
~ このような不正な動作をするSMTPエンジンを作る奴は、SMTP...
~ 参考までに、PostfixでHELOコマンドの検査に基づいて拒絶...
+++送信者ドメインの検査
~ 送信者ドメインの実在をDNSで検査することは、従来から行...
~ 参考までに、Postfixは、送信者ドメインの検査に基づいて...
+++内容の検査
~ メールヘッダおよびメッセージ本文を検査してスパムにあり...
~ 参考までに、Postfixでメールヘッダおよび本文の検査に基...
+ 統計データ
~ 2004年4月の1ヶ月間に私のメールサーバへ来た、スパムとウ...
~ クライアント制限の一般規則のルール2から6による阻止率の...
~ クライアント制限および併用したほかの対策によって阻止で...
~ 一方、この期間中に正当なメッセージに対する拒絶を何度か...
~ 2004年4月末時点で、私のブラックリストの項目数は17個、...
~
表1. 私のメールサーバでの不正メール阻止率の統計(2004年4...
|拒絶条件|適合率|阻止率増分|阻止率累計|
|[ルール0]逆引き失敗|38.4%|38.4%|38.4%|
|[ルール1]逆引きFQDNの最下位(左端)の名前が、数字以外...
|[ルール2]逆引きFQDNの最下位の名前が、5個以上連続する数...
|[ルール3]逆引きFQDNの上位3階層を除き、最下位または下位...
|[ルール4]逆引きFQDNの最下位の名前が数字で終わり、かつ...
|[ルール5]逆引きFQDNが5階層以上で、下位2階層の名前がと...
|[ルール6]逆引きFQDNの最下位の名前が「dhcp」、「dialup...
|ブラックリストに登録されている|2.6%|0.5%|98.7%|
|HELOコマンドが宛先サーバのIPアドレスまたは受信者のドメイ...
|送信者ドメインの検索失敗|不明|0%|99.1%|
|内容の検査|不明|0%|99.1%|
付記 ホワイトリストを作る前の偽陽性判定率は、私に正当な...
+ S25Rスパム対策方式を大規模サイトで運用する方法
~ 私は、個人用メールサーバを使って、自分のリスク負担でS2...
~ メールシステム管理者がスパムに対していかに強く怒りに燃...
~ それよりも、受けなければならないメールを受信者が受けら...
~ 少しのスパムが誤って許可されてしまうリスクを許容できる...
http://www.gabacho-net.jp/anti-spam/links.html
を参照していただきたい。
+ S25Rスパム対策方式をインターネット全体で運用するために
~ もしS25Rスパム対策方式がインターネット全体で支持される...
~ また私は、すべてのドメインで次の規則を守ることを提案す...
エンドユーザー用回線のIPアドレスは、エンドユーザー用回線...
++メール中継サーバのIPアドレスは、メール中継サーバの名前...
++ユーザーがエンドユーザー用回線を使って自分のメール中継...
++ユーザーがエンドユーザー用回線を使って自分のメールサー...
+ スパマーがS25Rスパム対策方式をすり抜ける方法
~ スパマーがS25Rスパム対策方式をすり抜けるには、以下の方...
++ISPのメール中継サーバを経由してスパムを送信する
~ ISPのメール中継サーバを経由するスパムは、このスパム対...
++正当なメール中継サーバを装う
~ スパム送信コンピュータが応答コード「450」に対して、正...
++スパマーを庇護するISPを利用する
~ スパマーを庇護しようとするISPが、正当なメール中継サー...
++自分自身のドメイン名を持つ
~ もしスパマーがDNSを管理できるなら、自分自身のドメイン...
~
まとめ
~ スパマーへの怒りを主張することは、スパムを減らすために...
~ S25Rスパム対策方式は、少しの副作用のリスクをコントロー...
~ 私は、このアイデアについて何らの独占権も主張しない。そ...
~ 読者諸氏のコメントと協力を期待する。
付録A. Postfixでの設定方法
~ Postfixでクライアントを制限するための設定方法を紹介す...
~ ホワイトリスト項目の実例は、ホワイトリスト情報のページ
http://www.gabacho-net.jp/white-list.html
からいくつかピックアップしている。
~ ブラックリスト項目の実例は、私が自分のメールサーバに登...
~ ブラックリストと一般規則に記載されているFQDNの実例は、...
/etc/postfix/main.cfファイルに追加する行
smtpd_client_restrictions =
permit_mynetworks,
check_client_access regexp:/etc/postfix/white_list,
check_client_access regexp:/etc/postfix/rejections
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_hostname,
check_helo_access regexp:/etc/postfix/helo_restrictions
smtpd_sender_restrictions =
permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain
付記 以前はクライアント制限設定ファイルを一つにしていた...
/etc/postfix/white_listファイルの中身
# S25R client permission specifications for Postfix
# Contributed by ASAMI Hideo (Japan), Jun 2004; Jul 2007
# Refer to: http://www.gabacho-net.jp/en/anti-spam/
#
# To use this file, add following lines into the /etc/po...
#
# smtpd_client_restrictions =
# permit_mynetworks,
# check_client_access regexp:/etc/postfix/white_list
# check_client_access regexp:/etc/postfix/rejections
#
# where "white_list" is the name of this file.
#
# *** WHITE LIST ***
#
# When you find a legitimate mail relay server which is ...
# rejection specification written in the /etc/postfix/re...
# down here a permission specification taking a leaf fro...
# examples.
#
#/^223-123-45-67\.example\.net$/ OK
#/^223\.123\.45\.67$/ OK
#
# Practical examples:
#
# mail-gx0-f21.google.com, etc.
/\.google\.com$/ OK
#
# mc1-s3.bay6.hotmail.com, etc.
/\.hotmail\.com$/ OK
#
# h04-a1.data-hotel.net, etc.
/\.data-hotel\.net$/ OK
#
# web10902.mail.bbt.yahoo.co.jp
/\.yahoo\.co\.jp$/ OK
#
# web35509.mail.mud.yahoo.com
/\.yahoo\.com$/ OK
#
# n2.59-106-41-68.mixi.jp, etc.
/\.mixi\.jp$/ OK
#
# mta12.m2.home.ne.jp, etc.
/\.m2\.home\.ne\.jp$/ OK
#
# mmrts006p01c.softbank.ne.jp, etc.
/\.softbank\.ne\.jp$/ OK
#
# imt1omta04-s0.ezweb.ne.jp, etc.
/\.ezweb\.ne\.jp$/ OK
#
# bay-w1-inf5.verisign.net, benicia-w2-inf30.verisign.net
/\.verisign\.net$/ OK
/etc/postfix/rejectionsファイルの中身
# S25R client rejection specifications for Postfix
# Contributed by ASAMI Hideo (Japan), Jun 2004; Jul 2007
# Refer to: http://www.gabacho-net.jp/en/anti-spam/
#
# To use this file, add following lines into the /etc/po...
#
# smtpd_client_restrictions =
# permit_mynetworks,
# check_client_access regexp:/etc/postfix/white_list
# check_client_access regexp:/etc/postfix/rejections
#
# where "rejections" is the name of this file.
#
# *** BLACK LIST ***
#
# When you find a UCE sender's FQDN which is not rejecte...
# protection rules specified below, insert here a denial...
# a leaf from the following practical examples. You shou...
# name or a substring together with the domain name if p...
# avoid rejecting legitimate mail relay servers in the s...
#
# pr86.internetdsl.tpnet.pl
# fq217.neoplus.adsl.tpnet.pl
# pa148.braniewo.sdi.tpnet.pl
/\.(internetdsl|adsl|sdi)\.tpnet\.pl$/ 450 doma...
#
# user-0cetcbr.cable.mindspring.com
# user-vc8fldi.biz.mindspring.com
/^user.+\.mindspring\.com$/ 450 doma...
#
# c9531ecc.virtua.com.br (hexadecimal used)
# c9066a60.static.spo.virtua.com.br (hexadecimal used)
/^[0-9a-f]{8}\.(.+\.)?virtua\.com\.br$/ 450 doma...
#
# catv-5984bdee.catv.broadband.hu (hexadecimal used)
/\.catv\.broadband\.hu$/ 450 doma...
#
# Edc3e.e.pppool.de
# BAA1408.baa.pppool.de
/[0-9a-f]{4}\.[a-z]+\.pppool\.de$/ 450 doma...
#
# pD9EB80CB.dip0.t-ipconnect.de (hexadecimal used)
/\.dip[0-9]+\.t-ipconnect\.de$/ 450 doma...
#
# pD9E799A1.dip.t-dialin.net (hexadecimal used)
/\.dip\.t-dialin\.net$/ 450 doma...
#
# ool-43511bdc.dyn.optonline.net (hexadecimal used)
/\.dyn\.optonline\.net$/ 450 doma...
#
# rt-dkz-1699.adsl.wanadoo.nl
# c3eea5738.cable.wanadoo.nl (hexadecimal used)
/\.(adsl|cable)\.wanadoo\.nl$/ 450 doma...
#
# ACBBD419.ipt.aol.com (hexadecimal used)
/\.ipt\.aol\.com$/ 450 doma...
#
# *** GENERIC PROTECTION ***
#
# [rule 0]
/^unknown$/ 450 reverse lookup f...
#
# [rule 1]
# ex.: evrtwa1-ar3-4-65-157-048.evrtwa1.dsl-verizon.net
# ex.: a12a190.neo.rr.com
/^[^.]*[0-9][^0-9.]+[0-9].*\./ 450 S25R...
#
# [rule 2]
# ex.: pcp04083532pcs.levtwn01.pa.comcast.net
/^[^.]*[0-9]{5}/ 450 S25R...
#
# [rule 3]
# ex.: 398pkj.cm.chello.no
# ex.: host.101.169.23.62.rev.coltfrance.com
/^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[a-z]/ 450 S25R...
#
# [rule 4]
# ex.: wbar9.chi1-4-11-085-222.dsl-verizon.net
/^[^.]*[0-9]\.[^.]*[0-9]-[0-9]/ 450 S25R...
#
# [rule 5]
# ex.: d5.GtokyoFL27.vectant.ne.jp
/^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\./ 450 S25R...
#
# [rule 6]
# ex.: dhcp0339.vpm.resnet.group.upenn.edu
# ex.: dialupM107.ptld.uswest.net
# ex.: PPPbf708.tokyo-ip.dti.ne.jp
# ex.: dsl411.rbh-brktel.pppoe.execulink.com
# ex.: adsl-1415.camtel.net
# ex.: xdsl-5790.lubin.dialog.net.pl
/^(dhcp|dialup|ppp|[achrsvx]?dsl)[^.]*[0-9]/ 450 S25R...
付記 以前の拒否メッセージは、ブラックリストには「domain ...
/etc/postfix/helo_restrictionsファイルのサンプル # Illeg...
# Provided that your mail server's IP address is 223.12....
# acceptable domain name is "example.com", specify as fo...
#
#/^223\.12\.34\.56$/ REJECT
#/^(.+\.)?example\.com$/ REJECT
付録B. 拒絶記録抽出用シェルスクリプト
~ Postfixのメールログから拒絶の記録を抽出するシェルスク...
付記 再試行アクセスが連続して並ぶように拒絶記録をソーテ...
http://www.gabacho-net.jp/anti-spam/log-sorting-script.html
に掲載している。
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "Mail rejection log"
echo
cat /var/log/maillog.4 /var/log/maillog.3 /var/log/maill...
/var/log/maillog.1 /var/log/maillog | \
grep 'reject:' | \
gawk '
BEGIN {
count=0
}
{
printf "%s %2d %s %s\n", $1, $2, $3, substr($0, match(...
++count
}
END {
print "\ncount =", count
}
'
終了行:
[[S25R 拒絶ログソーティングスクリプト]]
#contents
*阻止率99%のスパム対策方式の研究報告 [#mff03011]
CENTER:―― Selective SMTP Rejection (S25R)方式 ――
CENTER:最終更新: 2009/11/23
CENTER:公開: 2004/06/26
CENTER:著者: 浅見秀雄
CENTER:原本の所在: http://www.gabacho-net.jp/anti-spam/
CENTER:著者の連絡先: <webmaster@gabacho-net.jp>
----
目次
あらまし
+ 従来のスパム対策
+ S25Rスパム対策方式のコンセプト
+ クライアント制限の規則
++ 一般規則
++ ブラックリスト
++ ホワイトリスト
++ その他のフィルタ
+ 統計データ
+ S25Rスパム対策方式を大規模サイトで運用する方法
+ S25Rスパム対策方式をインターネット全体で運用するために
+ スパマーがS25Rスパム対策方式をすり抜ける方法
まとめ
付録A. Postfixでの設定方法
付録B. 拒絶記録抽出用スクリプト
----
*あらまし [#o811518c]
~ オープンリレー(第三者中継)を行うメールサーバが少なく...
+従来のスパム対策
従来、次のようなスパム対策が工夫されてきたが、いずれも...
++送信者ドメインの検査
~ スパマーは、苦情の返信を避けるために、偽の送信者アドレ...
++内容の検査
~ 特定の語(たとえば「make money」)を含むメッセージを拒...
++オープンリレーの禁止
~ スパマーは、多量のスパムをばらまくために、インターネッ...
~ このようなエンドユーザー用回線からスパムを受けて、その...
++クライアントのIPアドレスまたはドメイン名の検査
~ SMTPアクセスをかけてくるクライアントのIPアドレスを検査...
~ IPアドレスブロック(「223.45.67.*」のような)、または...
~ 結局、メールシステム管理者は、メール爆弾を受けた時以外...
+ S25Rスパム対策方式のコンセプト
~ 私が考案したSelective SMTP Rejection (S25R)スパム対策...
~ 正当なメールのほとんどは、ISP(インターネットサービス...
~ また、昨今のウィルスには、自前のSMTPエンジンを持って、...
~ これらのことから、メール中継サーバからのメールだけを受...
~ SMTPアクセスをかけてきたクライアントがメール中継サーバ...
~ この判別は、外からのメールの入り口であるMX(Mail eXcha...
+ クライアント制限の規則
~ SMTPアクセスをかけてきたクライアントのFQDNの特徴に基づ...
++ 一般規則
~ うまく管理されているメール中継サーバのほとんどは、逆引...
~ エンドユーザー用回線のIPアドレスにも、逆引きFQDNを持つ...
~ 私が作り上げた拒絶用の一般規則を以下に説明する。これは...
+++[ルール0] 逆引き失敗
~ 逆引き失敗の意味は、IPアドレスからFQDNを検索できないこ...
~ 逆引きが失敗するホストの大多数はエンドユーザーコンピュ...
+++[ルール1] 逆引きFQDNの最下位(左端)の名前が、数字...
例: 220-139-165-188.dynamic.hinet.net
evrtwa1-ar3-4-65-157-048.evrtwa1.dsl-verizon.net
a12a190.neo.rr.com
Postfixの正規表現: /^[^.]*[0-9][^0-9.]+[0-9].*\./
~ エンドユーザー用回線のFQDNの中には、この規則に引っかか...
正規表現の末尾にある「\.」は、ドットにマッチする。これ...
+++[ルール2] 逆引きFQDNの最下位の名前が、5個以上連続す...
例: YahooBB220030220074.bbtec.net
pcp04083532pcs.levtwn01.pa.comcast.net
Postfixの正規表現: /^[^.]*[0-9]{5}/
~ 私は末端ホスト名に最大で4個連続する数字を含むメール中...
+++[ルール3] 逆引きFQDNの上位3階層を除き、最下位または...
例: 398pkj.cm.chello.no
host.101.169.23.62.rev.coltfrance.com
Postfixの正規表現: /^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[...
~ 「smtp.246.ne.jp」(実在する)のようなFQDNを引っかけな...
~ 正規表現の末尾にある「\.[a-z]」は、トップレベルドメイ...
+++[ルール4] 逆引きFQDNの最下位の名前が数字で終わり、...
例: wbar9.chi1-4-11-085-222.dsl-verizon.net
m226.net81-66-158.noos.fr
Postfixの正規表現: /^[^.]*[0-9]\.[^.]*[0-9]-[0-9]/
~ 「mail1.1-2-3.co.jp」(ドメイン名は実在、末端ホスト名...
+++[ルール5] 逆引きFQDNが5階層以上で、下位2階層の名前...
例: m500.union01.nj.comcast.net
d5.GtokyoFL27.vectant.ne.jp
Postfixの正規表現: /^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\...
~ 「mail1.number1.co.jp」(ドメイン名は実在、末端ホスト...
+++[ルール6] 逆引きFQDNの最下位の名前が「dhcp」、「dia...
例: dhcp0339.vpm.resnet.group.upenn.edu
dialupM107.ptld.uswest.net
PPPbf708.tokyo-ip.dti.ne.jp
dsl411.rbh-brktel.pppoe.execulink.com
adsl-1415.camtel.net
xdsl-5790.lubin.dialog.net.pl
Postfixの正規表現: /^(dhcp|dialup|ppp|[achrsvx]?dsl)[^....
~ この規則だけに引っかかるFQDNはわずかに存在する。このよ...
~
付記 2007年9月に正規表現の「adsl」の部分を「[achrsvx]?ds...
~
~ メールサーバがこれらの規則によってSMTPアクセスを拒絶す...
~ 付録A.は、これらの規則を後述のブラックリストおよびホワ...
++ ブラックリスト
~ ブラックリストは、前述の一般規則をすり抜けるエンドユー...
~ 一般規則をすり抜けるFQDNの特徴には次のものがある。
+++末端ホスト名が十六進番号を含む
~ 私は「ACBBD419.ipt.aol.com」というFQDNを発見したことが...
~ IPアドレスの十六進表記を含むホスト名を一網打尽にするた...
+++末端ホスト名が、番号を表す英字を含む
~ 私は「user-0cetcbr.cable.mindspring.com」および「user-...
+++メール中継サーバであるかのようなFQDNである
~ 数字を含まないFQDNを持つホストからスパムを受けたことが...
+++ドメインを代表するメールサーバがスパムを送信する
自分のドメイン名を持つ企業やインターネットサイトが宣伝...
~
~ ISPのドメインをブラックリストに登録する時には、そのド...
~ 特定のホストを拒絶したい場合は、正規表現を「/^host\.ex...
++ ホワイトリスト
~ ホワイトリスト(許可リスト)は、一般規則またはブラック...
~ 正当なメール中継サーバに対する拒絶の記録は、メールログ...
~ 参考までに、Postfixは、クライアント制限によって拒絶し...
~ 正当なメール中継サーバからのアクセスが拒絶されるケース...
+++逆引き失敗
~ 逆引きFQDNを持たないメール中継サーバがいくらかある。
+++逆引きFQDNが複数のIPアドレスに対応している
~ 逆引きFQDNからの順引きで複数のIPアドレスが得られること...
+++ホスト名が一般規則に引っかかる
~ 一般規則に引っかかるホスト名が少しある。実例として、私...
+++エンドユーザー用回線を利用している
~ 小規模の組織、個人インターネットサイト、およびメールマ...
~ 逆引きFQDNを持つIPアドレスは「/^223-123-45-67\.example...
~ エンドユーザー用回線を利用しているメールサーバは、固定...
++その他のフィルタ
~ クライアント制限によってほとんどのスパムが引っかかるが...
+++HELOコマンドの検査
~ HELOコマンドはクライアントホストのFQDNを名乗らなければ...
~ このような不正な動作をするSMTPエンジンを作る奴は、SMTP...
~ 参考までに、PostfixでHELOコマンドの検査に基づいて拒絶...
+++送信者ドメインの検査
~ 送信者ドメインの実在をDNSで検査することは、従来から行...
~ 参考までに、Postfixは、送信者ドメインの検査に基づいて...
+++内容の検査
~ メールヘッダおよびメッセージ本文を検査してスパムにあり...
~ 参考までに、Postfixでメールヘッダおよび本文の検査に基...
+ 統計データ
~ 2004年4月の1ヶ月間に私のメールサーバへ来た、スパムとウ...
~ クライアント制限の一般規則のルール2から6による阻止率の...
~ クライアント制限および併用したほかの対策によって阻止で...
~ 一方、この期間中に正当なメッセージに対する拒絶を何度か...
~ 2004年4月末時点で、私のブラックリストの項目数は17個、...
~
表1. 私のメールサーバでの不正メール阻止率の統計(2004年4...
|拒絶条件|適合率|阻止率増分|阻止率累計|
|[ルール0]逆引き失敗|38.4%|38.4%|38.4%|
|[ルール1]逆引きFQDNの最下位(左端)の名前が、数字以外...
|[ルール2]逆引きFQDNの最下位の名前が、5個以上連続する数...
|[ルール3]逆引きFQDNの上位3階層を除き、最下位または下位...
|[ルール4]逆引きFQDNの最下位の名前が数字で終わり、かつ...
|[ルール5]逆引きFQDNが5階層以上で、下位2階層の名前がと...
|[ルール6]逆引きFQDNの最下位の名前が「dhcp」、「dialup...
|ブラックリストに登録されている|2.6%|0.5%|98.7%|
|HELOコマンドが宛先サーバのIPアドレスまたは受信者のドメイ...
|送信者ドメインの検索失敗|不明|0%|99.1%|
|内容の検査|不明|0%|99.1%|
付記 ホワイトリストを作る前の偽陽性判定率は、私に正当な...
+ S25Rスパム対策方式を大規模サイトで運用する方法
~ 私は、個人用メールサーバを使って、自分のリスク負担でS2...
~ メールシステム管理者がスパムに対していかに強く怒りに燃...
~ それよりも、受けなければならないメールを受信者が受けら...
~ 少しのスパムが誤って許可されてしまうリスクを許容できる...
http://www.gabacho-net.jp/anti-spam/links.html
を参照していただきたい。
+ S25Rスパム対策方式をインターネット全体で運用するために
~ もしS25Rスパム対策方式がインターネット全体で支持される...
~ また私は、すべてのドメインで次の規則を守ることを提案す...
エンドユーザー用回線のIPアドレスは、エンドユーザー用回線...
++メール中継サーバのIPアドレスは、メール中継サーバの名前...
++ユーザーがエンドユーザー用回線を使って自分のメール中継...
++ユーザーがエンドユーザー用回線を使って自分のメールサー...
+ スパマーがS25Rスパム対策方式をすり抜ける方法
~ スパマーがS25Rスパム対策方式をすり抜けるには、以下の方...
++ISPのメール中継サーバを経由してスパムを送信する
~ ISPのメール中継サーバを経由するスパムは、このスパム対...
++正当なメール中継サーバを装う
~ スパム送信コンピュータが応答コード「450」に対して、正...
++スパマーを庇護するISPを利用する
~ スパマーを庇護しようとするISPが、正当なメール中継サー...
++自分自身のドメイン名を持つ
~ もしスパマーがDNSを管理できるなら、自分自身のドメイン...
~
まとめ
~ スパマーへの怒りを主張することは、スパムを減らすために...
~ S25Rスパム対策方式は、少しの副作用のリスクをコントロー...
~ 私は、このアイデアについて何らの独占権も主張しない。そ...
~ 読者諸氏のコメントと協力を期待する。
付録A. Postfixでの設定方法
~ Postfixでクライアントを制限するための設定方法を紹介す...
~ ホワイトリスト項目の実例は、ホワイトリスト情報のページ
http://www.gabacho-net.jp/white-list.html
からいくつかピックアップしている。
~ ブラックリスト項目の実例は、私が自分のメールサーバに登...
~ ブラックリストと一般規則に記載されているFQDNの実例は、...
/etc/postfix/main.cfファイルに追加する行
smtpd_client_restrictions =
permit_mynetworks,
check_client_access regexp:/etc/postfix/white_list,
check_client_access regexp:/etc/postfix/rejections
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_hostname,
check_helo_access regexp:/etc/postfix/helo_restrictions
smtpd_sender_restrictions =
permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain
付記 以前はクライアント制限設定ファイルを一つにしていた...
/etc/postfix/white_listファイルの中身
# S25R client permission specifications for Postfix
# Contributed by ASAMI Hideo (Japan), Jun 2004; Jul 2007
# Refer to: http://www.gabacho-net.jp/en/anti-spam/
#
# To use this file, add following lines into the /etc/po...
#
# smtpd_client_restrictions =
# permit_mynetworks,
# check_client_access regexp:/etc/postfix/white_list
# check_client_access regexp:/etc/postfix/rejections
#
# where "white_list" is the name of this file.
#
# *** WHITE LIST ***
#
# When you find a legitimate mail relay server which is ...
# rejection specification written in the /etc/postfix/re...
# down here a permission specification taking a leaf fro...
# examples.
#
#/^223-123-45-67\.example\.net$/ OK
#/^223\.123\.45\.67$/ OK
#
# Practical examples:
#
# mail-gx0-f21.google.com, etc.
/\.google\.com$/ OK
#
# mc1-s3.bay6.hotmail.com, etc.
/\.hotmail\.com$/ OK
#
# h04-a1.data-hotel.net, etc.
/\.data-hotel\.net$/ OK
#
# web10902.mail.bbt.yahoo.co.jp
/\.yahoo\.co\.jp$/ OK
#
# web35509.mail.mud.yahoo.com
/\.yahoo\.com$/ OK
#
# n2.59-106-41-68.mixi.jp, etc.
/\.mixi\.jp$/ OK
#
# mta12.m2.home.ne.jp, etc.
/\.m2\.home\.ne\.jp$/ OK
#
# mmrts006p01c.softbank.ne.jp, etc.
/\.softbank\.ne\.jp$/ OK
#
# imt1omta04-s0.ezweb.ne.jp, etc.
/\.ezweb\.ne\.jp$/ OK
#
# bay-w1-inf5.verisign.net, benicia-w2-inf30.verisign.net
/\.verisign\.net$/ OK
/etc/postfix/rejectionsファイルの中身
# S25R client rejection specifications for Postfix
# Contributed by ASAMI Hideo (Japan), Jun 2004; Jul 2007
# Refer to: http://www.gabacho-net.jp/en/anti-spam/
#
# To use this file, add following lines into the /etc/po...
#
# smtpd_client_restrictions =
# permit_mynetworks,
# check_client_access regexp:/etc/postfix/white_list
# check_client_access regexp:/etc/postfix/rejections
#
# where "rejections" is the name of this file.
#
# *** BLACK LIST ***
#
# When you find a UCE sender's FQDN which is not rejecte...
# protection rules specified below, insert here a denial...
# a leaf from the following practical examples. You shou...
# name or a substring together with the domain name if p...
# avoid rejecting legitimate mail relay servers in the s...
#
# pr86.internetdsl.tpnet.pl
# fq217.neoplus.adsl.tpnet.pl
# pa148.braniewo.sdi.tpnet.pl
/\.(internetdsl|adsl|sdi)\.tpnet\.pl$/ 450 doma...
#
# user-0cetcbr.cable.mindspring.com
# user-vc8fldi.biz.mindspring.com
/^user.+\.mindspring\.com$/ 450 doma...
#
# c9531ecc.virtua.com.br (hexadecimal used)
# c9066a60.static.spo.virtua.com.br (hexadecimal used)
/^[0-9a-f]{8}\.(.+\.)?virtua\.com\.br$/ 450 doma...
#
# catv-5984bdee.catv.broadband.hu (hexadecimal used)
/\.catv\.broadband\.hu$/ 450 doma...
#
# Edc3e.e.pppool.de
# BAA1408.baa.pppool.de
/[0-9a-f]{4}\.[a-z]+\.pppool\.de$/ 450 doma...
#
# pD9EB80CB.dip0.t-ipconnect.de (hexadecimal used)
/\.dip[0-9]+\.t-ipconnect\.de$/ 450 doma...
#
# pD9E799A1.dip.t-dialin.net (hexadecimal used)
/\.dip\.t-dialin\.net$/ 450 doma...
#
# ool-43511bdc.dyn.optonline.net (hexadecimal used)
/\.dyn\.optonline\.net$/ 450 doma...
#
# rt-dkz-1699.adsl.wanadoo.nl
# c3eea5738.cable.wanadoo.nl (hexadecimal used)
/\.(adsl|cable)\.wanadoo\.nl$/ 450 doma...
#
# ACBBD419.ipt.aol.com (hexadecimal used)
/\.ipt\.aol\.com$/ 450 doma...
#
# *** GENERIC PROTECTION ***
#
# [rule 0]
/^unknown$/ 450 reverse lookup f...
#
# [rule 1]
# ex.: evrtwa1-ar3-4-65-157-048.evrtwa1.dsl-verizon.net
# ex.: a12a190.neo.rr.com
/^[^.]*[0-9][^0-9.]+[0-9].*\./ 450 S25R...
#
# [rule 2]
# ex.: pcp04083532pcs.levtwn01.pa.comcast.net
/^[^.]*[0-9]{5}/ 450 S25R...
#
# [rule 3]
# ex.: 398pkj.cm.chello.no
# ex.: host.101.169.23.62.rev.coltfrance.com
/^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[a-z]/ 450 S25R...
#
# [rule 4]
# ex.: wbar9.chi1-4-11-085-222.dsl-verizon.net
/^[^.]*[0-9]\.[^.]*[0-9]-[0-9]/ 450 S25R...
#
# [rule 5]
# ex.: d5.GtokyoFL27.vectant.ne.jp
/^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\./ 450 S25R...
#
# [rule 6]
# ex.: dhcp0339.vpm.resnet.group.upenn.edu
# ex.: dialupM107.ptld.uswest.net
# ex.: PPPbf708.tokyo-ip.dti.ne.jp
# ex.: dsl411.rbh-brktel.pppoe.execulink.com
# ex.: adsl-1415.camtel.net
# ex.: xdsl-5790.lubin.dialog.net.pl
/^(dhcp|dialup|ppp|[achrsvx]?dsl)[^.]*[0-9]/ 450 S25R...
付記 以前の拒否メッセージは、ブラックリストには「domain ...
/etc/postfix/helo_restrictionsファイルのサンプル # Illeg...
# Provided that your mail server's IP address is 223.12....
# acceptable domain name is "example.com", specify as fo...
#
#/^223\.12\.34\.56$/ REJECT
#/^(.+\.)?example\.com$/ REJECT
付録B. 拒絶記録抽出用シェルスクリプト
~ Postfixのメールログから拒絶の記録を抽出するシェルスク...
付記 再試行アクセスが連続して並ぶように拒絶記録をソーテ...
http://www.gabacho-net.jp/anti-spam/log-sorting-script.html
に掲載している。
#!/bin/sh
echo "Content-Type: text/plain"
echo
echo "Mail rejection log"
echo
cat /var/log/maillog.4 /var/log/maillog.3 /var/log/maill...
/var/log/maillog.1 /var/log/maillog | \
grep 'reject:' | \
gawk '
BEGIN {
count=0
}
{
printf "%s %2d %s %s\n", $1, $2, $3, substr($0, match(...
++count
}
END {
print "\ncount =", count
}
'
ページ名: