postfixの送信制限について教えてください。


postfixローカルユーザ間で、特定のユーザから特定のユーザへの送信を禁止したいのです。
着信拒否のような機能ですが、これを実現するための設定がないか教えてください。

どうぞ、よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/01/17 14:39:21
  • 終了:2011/01/24 14:40:03

回答(3件)

id:h_kondo No.1

h_kondo回答回数33ベストアンサー獲得回数32011/01/17 22:53:28

ポイント27pt

メールフィルター milter-regex を導入することでご希望の機能を入手できるでしょう。

milter-regex.confには

reject "Malfrom xx to RCPT TO yy"

envfrom /user-a@example\.jp/i and envrcpt /user-b@examole\.com/i

こんな感じの定義でよいかと思います。

マニュアルはこちらを参照ください。

http://linux.die.net/man/8/milter-regex

id:snmp No.2

snmp回答回数20ベストアンサー獲得回数12011/01/17 20:13:59

ポイント27pt

postfixの機能ではありませんが、procmailというソフトウェアで

実現可能です。

ユーザのホームディレクトリ直下に.procmailrcを作成し

対象となるアドレスを削除(/dev/nullへ転送)します。


参考

Procmail によるメールの自動振り分け

id:JULY No.3

JULY回答回数966ベストアンサー獲得回数2472011/01/18 11:19:03

ポイント26pt

直接、差出人と宛先のアドレスの組み合わせで拒否する方法はありませんが、組み合わせで出来なくもないです。

topology.org human test

上記のページは、「ある宛先のメールに対して、特定の差出人を許可する」という流れなので、ちょっと違うのですが、使う仕組は同じです。

基本的な考え方は、

  • smtpd_recipient_restrictions で check_sender_access を使って、制限したい差出人アドレスを引っ掛ける。
  • check_sender_access で指定したテーブルに、制限したい差出人アドレスを記述し、その時のアクションとして、smtpd_restriction_classes で定義した名称を指定する。
  • smtpd_restriction_classes では、check_recipient_access を使って、宛先アドレスをチェックさせるための名称を用意する。
  • 宛先アドレスをチェックするためのテーブルを用意し、指定したアドレスを拒否するようにする。

という流れです。

実際には、こんな感じになります。

まず、main.cf で smtpd_recipient_restrictions をこんな感じにします。

smtpd_recipient_restrictions =
        check_sender_access hash:/etc/postfix/sender_access,
        permit_mynetworks,
        reject_unauth_destination

これで、/etc/postfix/sender_access のマップファイルを参照するようになります。このマップファイルには、

abc@example.jp    abc_check_dest

といった具合に書き、postmap で db ファイルを生成させます。この場合「abc@example.jp」が制限をかけたい差出人のアドレス、「abc_check_dest」は後述する、smtpd_restriction_classes で定義する名称です。

main.cf に戻って「abc_check_dest」を定義します。

smtpd_restriction_classes = abc_check_dest
abc_check_dest = check_recipient_access hash:/etc/postfix/abc_check_dest

ここまでで、abc@example.jp から届いたメールは、/etc/postfix/abc_check_dest のマップによるチェックを受けるようになります。

で、/etc/postfix/abc_check_dest に

xyz@example.com    reject

とすれば、abc@example.jp から xyz@example.com 宛のメールが拒否されることになります。

ただ、このやり方の最大の弱点は、差出人と宛先の任意の組み合わせで制限をかけようとすると、かけたい差出人の数だけ、「abc_check_dest」に該当するマップファイルを用意し、smtpd_restriction_classes の定義を追加する必要がある点です。対象となる差出人が数人程度であれば良いですが、数が増えると管理が煩雑になります。

その点で言えば、h_kondo さんのように、milter プログラムで制御したり、制限できる宛先が自ドメインの場合に限られますが、snmp さんのように、procmail のような MDA のレベルで制限する方が、管理しやすいと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません