- - PR -
特定のIPアドレス以外のメールを拒否したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-06-24 14:02
LAN外からのメールを拒否したいユーザがあるので、該当ユーザのdot-qmailで特定のIPアドレスから発信されたメール以外は受信拒否したいのですがどうすればいいのでしょうか?
特定のメールアドレスで受信拒否する方法は見つけたのでメールアドレスをIPアドレスに変えればいいと思ったのですが、どうやらdot-qmailには送信元SMTPのIPアドレスは渡ってこないようです。 [ メッセージ編集済み 編集者: ぐう 編集日時 2005-06-24 14:13 ] |
|
投稿日時: 2005-06-25 10:00
Bernstein氏のmess822パッケージを利用して参考例を挙げると
(別に使わなくても出来ますが) 192.168.0.0/16からのみメールを受け取りたい。 dot-qmail | /bin/sh -c "/usr/local/bin/822field received | /bin/grep -q '(192.168' && exit 0 || exit 100" ←ココまで一行 ./Maildir/ メールのrecievedヘッダを抜き出してそこに含まれるIPアドレスをチェックして 存在すればexit 0し、次の行でMaildirへ配送する。 そうでなければハードエラー(exit 100)で次の行は処理せずエラーメールを相手に返す。 スクリプトを作ってそれで判定してもいいですがそこまで たいそうなものがいるとも思えませんが。 IPアドレスでの検索条件が複雑になるようであれば qmail-smtpdを呼び出す際のtcpserverに渡すcdbファイルで TCPREMOTEHOSTあたりの環境変数をハンドリングして receivedヘッダにでるホスト名を変更するっていうのも手ですが。 (tcpserver使っていればね) tcp.smtpd(抜粋) 192.168.:allow,TCPREMOTEHOST="allowhost" とやっておけば192.168.0.0/16から受けたメールには Received: from allowhost (HELO hogehoge) (192.168.0.1) なんてなるので"allowhost"を条件に判定するとかね。 まあ、特定のユーザに限らずヘッダは変更されてしまいますけど。。。 逆に特定のネットワークだけ拒否したいならgrepを-vオプションで使うか exitで返すコードを逆転させればいけるでしょう。 [ メッセージ編集済み 編集者: anights 編集日時 2005-06-26 17:25 ] |
1