web-dev-qa-db-ja.com

Postfix check_policy_service-受信メールのみをチェックし、内部および送信を無視します

Centos x64(selinuxが無効)にポリシー付きサーバーをセットアップしようとしています。これにより、さまざまなサーバーから受信するメッセージと(より重要な)さまざまなユーザーアカウントから送信するメッセージの数を制限できます。現時点では、(たとえばgoogleからの)受信メールを制限するための有効な構成があると思いますが、postfixに内部メールと送信メールに対して同じポリシーチェックを実行させることはできません。

ここに問題があります(現時点では、postfixにポリシーサービスを使用させようとしています)

Main.cfに次の行を追加しました

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031,   reject_unauth_destination
smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031

そして無効化されたポリシー(テスト用)

他のホストから(たとえばGmailから)このマシンにメールを送信すると、ポストフィックスログにポリシー付きサーバーにアクセスできないというエラーがあります

Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: connect from unknown[IP_ADDRESS]
Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: warning: connect to 127.0.0.1:10031: Connection refused
Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: warning: problem talking to server 127.0.0.1:10031: Connection refused
Sep 10 10:40:24 centosvbox1 postfix/smtpd[9378]: warning: connect to 127.0.0.1:10031: Connection refused
Sep 10 10:40:24 centosvbox1 postfix/smtpd[9378]: warning: problem talking to server 127.0.0.1:10031: Connection refused

これは、postfixがポリシー付きサーバー(期待どおりに機能する)にアクセスしようとすることを意味します

ただし、コンソール(mailxを使用)からユーザーroot(ローカルアカウント)または他の場所(gmail)にメールを送信しようとすると、そのようなルックアップは行われません-メールはポリシーにアクセスしようとせずにスライドするだけです

echo "ksfdhjksf" | mail -s "kjfhkjsfkjsfd" root

Sep 10 10:42:03 centosvbox1 postfix/cleanup[9386]: 9B606417D9: message-id=<20130910084203.9B606417D9@domain>
Sep 10 10:42:03 centosvbox1 postfix/qmgr[9342]: 9B606417D9: from=<root@domain>, size=458, nrcpt=1 (queue active)
Sep 10 10:42:03 centosvbox1 postfix/local[9388]: 9B606417D9: to=<root@domain>, orig_to=<root>, relay=local, delay=0.04, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Sep 10 10:42:03 centosvbox1 postfix/qmgr[9342]: 9B606417D9: removed

不思議に思うのは、なぜcheck_policy_serviceが機能しないのですか? (これは接尾辞の問題だと思います)

誰かがメールを送信する際にポリシー付き制限システムユーザー(たとえばwebapp)を作成する方法を知っていますか?

2
gds.jerry

ポリシーチェックは_smtpd_*_restrictions_で定義したため、この種のメールはpickup(8)サービスを使用してPostfixキューに挿入されるため、ローカルで生成されたメールが照会されることはありません。これを回避するには、_master.cf_を変更し、_content_filter_インスタンスをpickup(8)サービスに追加する必要があります(もちろん、前述のコンテンツフィルタリングインスタンスも追加する必要があります。 コンテンツフィルタリング を見てください。

FWIW、これを行う価値はないと思います。誰もメールゲートウェイでローカルメールを生成できないはずであり、中央のメールゲートウェイではないので、とにかく間違った場所で制限しています。

1
Stefan Förster