- - PR -
qmailの外部ネットワークからのSMTPについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-17 12:00
FedoraCore3を使用し、qmailをインストールして
メールサーバとして使用しています。 下記のようなローカルアドレスを騙って、 ローカルアドレス宛てにメールを送信されています。 (自ドメインはhoge.co.jp) -------- Return-Path: <webmaster@hoge.co.jp> Received: (qmail 27694 invoked from network); 16 Jun 2005 09:50:14 +0900 Received: from XXX.tekito.co.jp (HELO hoge.co.jp) (XXX.XXX.XXX.XXX) by ml.aaaa.co.jp with SMTP; 16 Jun 2005 09:50:14 +0900 From: webmaster@hoge.co.jp To: myname@hoge.co.jp Subject: Notice: **Last Warning** -------- 内容を確認するとウィルスメールなので、 また送信元ホストについては顧客先のクライアントPCなので、 ウィルスを除去するようにお願いすればいいのでしょうが、 サーバ側で対処する事はできないでしょうか。 また同じような事を自PCで試したところ、 ローカルアドレス宛てであれば外部ネットワークからでも Fromを偽って送信できるようです。 利用者に一斉連絡するためのアドレスなので、 外部の適当な人間に使用されると困りますし、 かといってbadmailfromで拒否設定にすると、 メールそのものが取れなくなって困ってしまいます。 例えばある送信元メールアドレス(Fromヘッダ)については、 内部ネットワークからのSMTP要求なのか 外部ネットワークからのSMTP要求なのかを確認して サーバ自体で拒否するような方法はないのでしょうか。 どなたかご教授頂けますよう、よろしくお願い致します。 | ||||||||
|
投稿日時: 2005-06-17 12:43
こんにちは。
From にしても、Return-Path の元となる envelope-from にしても、メール送信者の自己申告制なので、現状仕方の無い所ですね…。
ネットワーク情報で条件を変える方法としては、tcpserver の -x オプションを使用する手があるのですが、qmail-smtpd の badmailfrom との連携はできないように思います。 もし標準の qmail で対応するのであれば、思いつくのは 2インスタンス使い分ける方法になるでしょうか…。 ○qmailインスタンス1 ・従来の設定を引き継ぐ ・もう一つのインスタンスとの連携用に qmtpd サーバも起動する ・ただし、qmail-smtpd は、ローカルネットワーク専用の tcpserver で起動する。 ○qmailインスタンス2 ・ミニqmailを別途インストールし、受け付けたメールは qmailインスタンス1 へ、QMQPで転送する。 ・自ドメイン宛以外のメールは拒否する ・badmailfrom で特定の送信者を弾く ・qmail-smtpd は、外向けネットワーク専用の tcpserver で起動する。 なお、2つのインスタンス用に tcpserver を使い分けるにあたって、IPアドレスやポート番号を分離できない場合には、もう一工夫必要です。 一つは、 ・公開するアドレス・ポートは共通のものとして、送信元ネットワークに応じて適切な tcpserver へ通信がいくよう、iptables の NAT機能を使い宛先アドレス・ポートを変更する。 もう一つは、今思いついただけで、できるかどうか試したことはないのですが、 ・tcpserver プロセス自体を共有し、-x オプションで、送信元ネットワークに応じて PATH変数を調節する。( これにより、起動する qmail-smtpd の場所を調節する ) 以上、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-06-17 12:58 ] | ||||||||
|
投稿日時: 2005-06-17 13:30
早速のご回答ありがとうございます。
引用:------------------------------------------------------------------- ネットワーク情報で条件を変える方法としては、tcpserver の -x オプションを使用する手があるのですが、qmail-smtpd の badmailfrom との連携はできないように思います。 -------------------------------------------------------------------------- qmailの設定ファイル関連だけでは、ipアドレスレベルでの制御や 送信元ホスト名での制御はできないのですね。 引用:------------------------------------------------------------------- もし標準の qmail で対応するのであれば、思いつくのは 2インスタンス使い分ける方法になるでしょうか…。 -------------------------------------------------------------------------- 内部ネットワーク(以下NW)用のqmailと外部NW用のqmailを2つたてて、 外部NW用qmailから内部NW用qmailに転送させるときに、badmailfromではじくという事でしょうか。 1つのサーバ上でやるとなると、やはりかなり難解な手順がいるようですね。 詳細の方、ありがとうございます。 また他のメールサーバではどうされているのでしょうか? qmailだからこのような事ができてしまうのでしょうか? ゲートウェイ等のメールサーバ直前で制御されているのでしょうか。 もしメールサーバの運用をされている方で現状を教えていただけたら幸いです。 | ||||||||
|
投稿日時: 2005-06-17 15:29
こういったメールアドレスはメーリングリストのソフトを使います。 moderate機能があるものであれば審査を通らなければバラまけませんから。 ま、審査員はメールを受けるので後ろ向きかも知れませんが 受けるメールの数はグッと減りますよね。 内外を判別出来たとしても内側の人間が いらんことしないとは限りませんから。 ![]() あとは転送方法をどうやっているか分かりませんが http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17451&forum=10 このあたりを参考にして良い感じのdot-qmailを書いてみるとか。 | except condredirect hoge0@example.com grep -q '内部からって判別する正規表現' &hoge1@example.com &hoge2@example.com . . . パスは環境に合わせて下さい。 exceptしているのは1行転送処理したら終わってしまうので。 逆に条件に合わなければハードエラーになるので処理終了です。 判定処理は一回で済みますからgrep部分はperlスクリプトあたりで 書いてしまうのもありかもしれません。 本文からは判別出来ないでしょうけどヘッダに特徴があればいけるのでは? こんな処理は実際にはやってはいないのでご参考まで。 | ||||||||
|
投稿日時: 2005-06-18 00:03
確認するのが遅くなりましたが、
anights様、ご回答ありがとうございます。 ------------------------------------------------------------- こういったメールアドレスはメーリングリストのソフトを使います。 moderate機能があるものであれば審査を通らなければバラまけませんから。 ------------------------------------------------------------- 確かに利用者への配信自体は、メーリングリストのソフト(fml)を利用して、 行っています。そしてその発信元アドレスとして、webmaster等のアドレスを 使用しています。 従って、メーリングリストを使用しての一斉配信は 決められた人間しか行えません。 自分の認識違いであれば申し訳ないのですが、dot-qmailファイルは 確か宛先がそのアドレスであった場合にどこに転送するかを 表記するファイルと思っていたのですが、 設定次第で着たメールの送信元(From)を判断する事ができるという事 なのでしょうか? 他のNWの人間がメーリングリストを悪用して、 一斉配信を行う事はできないと思っています。(管理者でない限り) ただfromを詐称して、個別にメールを送りつける事はできます。 これを止めたいと思っています | ||||||||
|
投稿日時: 2005-06-18 00:10
qmailの2インスタンス化ですが、とりあえず2台サーバをたててみて、
1台は外部ネットワーク用、もう1台はローカルネットワーク用として、 設定してみました。 tcp.smtp.cdbで自PCを他ネットワークとして確認してみましたところ、 確かに拒否する事ができました。 ありがとうございます。 あとはiptablesやqmtpdを利用して1サーバ内で 処理させるという点です。 試行錯誤しながら確認してみたいと思います。 | ||||||||
|
投稿日時: 2005-06-18 21:34
まず、私が対処するならpostfixでリレーサーバを立てて (まあ、同じサーバ内でポートでリレーでもいいですけど) smtpd_sender_restrictionsを正しく設定すれば envelope fromの自ドメイン詐称は拒否出来ますし。 FROMヘッダの方はネットワークの条件と 併せてチェック出来なかった気がするので(header_checks)微妙ですが まあ、angelさんがおっしゃっているように何でもありな所ですから ほっときます。
まずは、こちらを。 http://man.qmail.jp/jman8/qmail-command.html 別にqmailに限らずdot-forwardファイルを扱うMTAでもコマンドに 渡せるのは同じですが。。。 まあ、要するにdot-qmailファイルからコマンドを呼び出した場合は 標準入力経由でメッセージそのものが渡されますので その中身を見て判別すればいいのでは?と。 Receivedヘッダに経路の特徴は出ますし。 tcpserverに与えるcdbファイルでTCPREMOTEHOSTなんかの環境変数を コントロールしてあげればネットワーク判定ももっと楽ですよ。 |
1