- PR -

HELOorEHLOコマンドの内容を調べるには

1
投稿者投稿内容
octpusyo
常連さん
会議室デビュー日: 2007/08/29
投稿数: 20
投稿日時: 2008-04-27 08:30
お世話になります。

CentOS5.0、Postfix2.3.3、Postgrey1.31を使っています。
taRgreyに挑戦中です。
どうしても弾けないスパムが有って困っています。
送られてくるHELO(またはEHLO)コマンドの内容を調べる方法を
ご存知の方いらっしゃいませんでしょうか。

これまで送られてきたスパムに対して、大体送信メールサーバ名を
reject_heloに登録して弾けてきました。
しかし、メールサーバ名では弾けないスパムも出てきました。

logwatchやmaillogを漁りましたが、送られてくるHELOコマンド
の内容は見つかりませんでした。
master.cfのsmtpdのところに「-v」をつけてログを詳細化してみても
分かりませんでした。

弾いたメールのHELOコマンドは以下のように分かるので、
弾けないメールのHELOも分かるはずだと睨んでます。
------------------
NOQUEUE: reject: RCPT from unknown[125.187.32.169]: 450 4.1.8 <win@clockmail.net>:
Sender address rejected: Domain not found; from=<win@clockmail.net>
to=<contact@pigmon.ddo.jp> proto=ESMTP helo=<m19.mailyes.net>

NOQUEUE: reject: RCPT from kcc-202-178-81-110.kamakuranet.ne.jp[202.178.81.110]:
504 5.5.2 <104/.@x>: Sender address rejected: need fully-qualified address;
from=<104/.@x> to=<contact@pigmon.ddo.jp> proto=ESMTP helo=<pigmon.ddo.jp>
------------------

main.cfのtaRgrey設定は以下のような感じです。
http://pigmon.ddo.jp/main.cf.txt
よろしくお願いします。
aori
常連さん
会議室デビュー日: 2008/04/24
投稿数: 21
投稿日時: 2008-04-29 21:04
ファイアウォールで弾くのが手っ取り早いと思いますが、いかがでしょう?
ファイアウォールのスプリクトで拒否したいIPアドレスを登録できるようにして
やれば完全に弾けますが、動的IPの場合は不可です。
octpusyo
常連さん
会議室デビュー日: 2007/08/29
投稿数: 20
投稿日時: 2008-04-29 22:59
レスありがとうございます。

確かにそれが手っ取り早いのですが、後学のため、
ここで伺った次第です。
iptablesの利用は最後の切り札として取って置かせてください。

何とかしてコマンドの内容を知る方法は無いものでしょうか?
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2008-04-30 11:51
引用:

octpusyoさんの書き込み (2008-04-27 08:30) より:
master.cfのsmtpdのところに「-v」をつけてログを詳細化してみても
分かりませんでした。


これをやっているならログに載ってきます。
ただし、あくまでHELOやEHLOを相手がしゃべっていればの話ですが。

通常の順番からすれば、MTAが接続時の220を相手に返しているすぐ後ぐらいに
相手のHELO, EHLOのログが載ってくると思いますよ。
_________________
桃李不言 下自成蹊
octpusyo
常連さん
会議室デビュー日: 2007/08/29
投稿数: 20
投稿日時: 2008-05-06 16:33
anightsさん、レスありがとうございます。
う〜ん、ということは自分の目は節穴だったようです。

解決したので参考までにご報告です。
改めて整理します。(半分自分のために)
 目的:特定ドメインからのメールを弾きたい
 手段:iptablesではなく、MTAの機能を用いる

で、結局ここを参考にしました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28547&forum=10&2

そもそも、該当ドメインは動的IPっぽくなかったので、
その段階でS25Rに引っかからず、受信対象メールとして扱われてしまい、
reject_heloやtarpit値などでは制御できないことに気がつきました。
 (SoftwareDesign3月号を読んでてやっと気がつきました)

そこで、上記の投稿を参考に、permit_client_nots25rに
該当ドメインからの受信時はsleepするよう設定したところ、
弾けるようになりました。

---
 [root@hoge postfix]# cat permit_client_nots25r
 # *** GREY LIST ***
 /\.dip\.t-dialin\.net$/ WARN
 /\.dyn\.optonline\.net$/ WARN
 /^zaq.+\.zaq\.ne\.jp$/ WARN
 /^user.+\.mindspring\.com$/ WARN
 /\.(adsl|cable)\.wanadoo\.nl$/ WARN
 /\.(internetdsl|adsl|sdi)\.tpnet\.pl$/ WARN
 /\.ipt\.aol\.com$/ WARN
 /\.ppp\.u-netsurf\.ne\.jp$/ WARN
 /\.dataspain\.com$/ WARN
 /\.stocknewsalert\.net$/ WARN
 /\.mtaonline\.net$/ WARN
 /\.dsl\.iowatelecom\.net$/ WARN
 /\.va\.us$/ WARN
 /\.tiscali\.com$/ WARN
 /\.ezooom\.com$/ WARN
 /\.mediasat\.ro$/ WARN
 /\.edoca\.com$/ WARN
 #
 # *** Original ***
 /\.spam\.example1\.com$/ sleep 30
 /\.spam\.example2\.jp$/ sleep 30
 #
 # *** S25R ***
 !/(^unknown$)|(^[^\.]*[0-9][^0-9\.]+[0-9])|(^[^\.]*[0-9]{5})|(^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z])|(^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9])|(^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\.)|(^(dhcp|dialup|ppp|adsl)[^\.]*[0-9])/  OK
 #
 # *** warning ***
 /./ WARN
---

結果、reject_mxに該当ドメインを登録していたため、
弾かれるようになりました。
sleep指定した後だとreject_mxに引っかかるようになる
仕組みは、まだ完全に理解できていません…。
が、とりあえず目出度しです。

ありがとうございました!

1

スキルアップ/キャリアアップ(JOB@IT)