web-dev-qa-db-ja.com

Postfixのみを使用して受信メールの添付ファイルをブロックする方法は?

PostfixとDovecotを実行しているメールサーバー(CentOS 6.5)があります。

Postfixはポート25で受信メールをリッスンし、587を送信メールでリッスンしています

問題は、PDF添付ファイル付きのアウトバウンドメールがブロックされており、PDF添付ファイル付きのインバウンドメールのみがブロックされていることです。

Main.cfにこの構成行があります

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

Blocked_attachmentsファイルには以下が含まれます。

/name=[^>]*\.(pdf|Zip)/ REJECT

したがって、PDF添付ファイル付きの受信メールは正しくブロックされますが、PDF.

受信した添付ファイルのみをフィルタリングするようにpostfixに指示するにはどうすればよいですか?それとも私は何かを逃したのですか?

9
Aditya K

私はあなたの質問を書き直します:

smtpd(ポート25)と送信(ポート587)に異なる_header_checksを使用するにはどうすればよいですか?

この標準的な問題は、いくつかの条件で分割できます

  1. Smtpdまたはsubmitのいずれかでheader_checksをオフにします。
  2. Smtpdと送信で異なるheader_checksを実行したい。

1. smtpdまたはsubmitのいずれかでheader_checksをオフにします。

この例では、送信(送信メール)のheader_checksをオフにすることを想定しています。

ソリューション1:receive_override_optionsメソッド

receive_override_options と呼ばれるpostfixパラメータを使用できます。パラメーターを使用すると、グローバルheader_checkスイッチをオーバーライドできるため、フィルターは実行されません。 #main.cf header_checks = pcre:/ path/to/header_checks

#master.cf
submission inet n       -       n       -       -       smtpd
    -o receive_override_options=no_header_body_checks

警告: man 5 header_checks で定義されているすべての_header_checksとbody_checksがオフになります。オフにするパラメーターの完全な制御については、ソリューション2を参照してください。

ソリューション2:複数のクリーンアップサービスメソッド

*_header_checkscleanup サービスによって実行されたため、問題に対してmultiple-cleanup-serviceテクニックを使用できます。この設定の例は amavisd-new tutorial で確認できます。

この構成の魔法のパラメーターは cleanup_service_name です。このパラメーターを使用すると、smtpdプロセスごとに異なるクリーンアップサービスを使用できます。最初に、master.cfに追加のクリーンアップサービス(no-headerchecksと呼ばれる)を定義します。

no-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=

このクリーンアップでは、空のmime_header_checksを定義してフィルタリングを無効にします。最後のステップは、提出サービスにヘッダーなしチェックを使用するように伝えることです

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=no-headerchecks 

2. smtpdと送信で異なるheader_checksを実行したい。

この問題については、上記のように複数のクリーンアップサービスメソッドを使用できます。

まず、master.cfに追加のクリーンアップサービス(second-headerchecksと呼ばれる)を1つ定義します

second-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=pcre:/path/to/2ndheaderchecks

このクリーンアップでは、2番目のmime_header_checksを他のPCREテーブルに定義します。最後のステップは、提出サービスに2番目のヘッダーチェックを使用するように伝えることです

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=second-headerchecks

注意:

  • あなたのケースは この質問 と似ています。残念ながら Laurentiu Roescuからの回答 は、トランスポートとしてsmtpを使用する送信メールのheader_checksを有効にする場合にのみ機能します。良いニュースは、cleanupデーモンに関する彼の最初の文が2番目の解決策についてのアイデアを与えてくれることです。

  • 異なるheader_checks、body_checks、およびman 5 header_checksで定義されたその他のパラメーターが必要な場合は、複数のクリーンアップサービスメソッドを適用できます。

7
masegaloeh