ヘッダの「Received」にサーバ情報がデフォルトでは表示されています。
設定前のメールヘッダ情報 Return-Path: <[email protected]> X-Original-To: [email protected] Delivered-To: [email protected] 以下の部分に「Received」受信情報詳細が出力されている Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by fedora.kajuhome.com (Postfix) with ESMTP id C681E344A7 for <[email protected]>; Thu, 21 Apr 2005 12:54:15 +0900 (JST) Date: Thu, 21 Apr 2005 12:54:16 +0900 From: [email protected] To: [email protected] Subject: ヘッダー情報試験 Message-Id: <[email protected]> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit |
postfix設定ファイルを変更する。
postfix設定ファイルの変更 # vi /etc/postfix/main.cf # The header_checks parameter specifies an optional table with patterns # that each logical message header is matched against, including # headers that span multiple physical lines. # # By default, these patterns also apply to MIME headers and to the # headers of attached messages. With older Postfix versions, MIME and # attached message headers were treated as body text. # # For details, see the sample-filter.cf file. # コメントを外す #header_checks = regexp:/etc/postfix/header_checks ↓ header_checks = regexp:/etc/postfix/header_checks |
ヘッダチェックファイルの設定 # vi /etc/postfix/header_checks Receivedから始まる行を削除(以下を追加) /^Received:/ IGNORE 【構成】 pattern action 「pattern」:正規表現 「action」 :IGNORE (ヘッダー行を消去) OK (メッセージを許可) REJECT (メッセージを拒否) WARN (ログに記録) DISCARD(正常に受信した様に見せるが、実際には破棄) FILTER (他のフィルタを評価) |
設定内容を有効にする為、postfixを再起動します。
postfixの再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postfix restart 【Fedora16以降 / CentOS7 の場合】 # systemctl restart postfix.service |
設定後のメールヘッダ情報 Return-Path: <[email protected]> X-Original-To: [email protected] Delivered-To: [email protected] Date: Thu, 21 Apr 2005 12:58:53 +0900 From: [email protected] To: [email protected] Subject: ヘッダー情報試験 Message-Id: <[email protected]> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit 「Received」情報が表示されなくなった。 |
以下が、ローカル情報の「Received」ヘッダ部分になり、この部分が全て通知されなくなります。 Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by fedora.kajuhome.com (Postfix) with ESMTP id B6E59280C9 for <[email protected]>; Mon, 5 Sep 2005 11:47:33 +0900 (JST) Received: from fedora.kajuhome.com (localhost.localdomain [127.0.0.1]) by localhost.localdomain (AvMailGate-2.0.2-15) id 17272-5C6A0AC7; Mon, 05 Sep 2005 11:47:33 +0900 Received: from [192.168.100.106] (xxxx.xxxx.co.jp [xxx.xxx.xxx.xxx]) ← 接続元のローカル情報(外出先) by fedora.kajuhome.com (Postfix) with ESMTP id 84CB128061 for <[email protected]>; Mon, 5 Sep 2005 11:47:33 +0900 (JST) |
フィルタリングするには、「procmail」を使用した方が良いと思いますが、postfixでも可能です。
なお、ボディ部の複数に跨った文字のフィルタリングは出来そうにありません
(個人的には、「procmail」をお勧めします。細かく、ボディ部の複数行も可能らしいです)
また、各チェックファイルを変更をしたら、必ずpostfixを再起動してください。(設定が有効になりません)
【例】件名に"未承諾広告"があった場合、メールを拒否
ヘッダチェックファイルの編集 # vi /etc/postfix/header_checks /^Received:/ IGNORE /^Subject:\ =?ISO-2022-JP?B?GyRCTCQ+NUJ6OS05cBsoQg==?=.*/ REJECT 上記の不可解な文字は「未承諾広告」という文字をISO-2022-JPのB-encodingした文字です また、日本語文字列のコンバートにはこちらの「MIME エンコード/デコード」をご利用下さい。 postfixの再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postfix restart 【Fedora16以降 / CentOS7 の場合】 # systemctl restart postfix.service |
拒否した場合は、ログ「/var/log/maillog」に以下の様に出力されます。
Apr 21 15:14:55 fedora postfix/cleanup[3724]: 52530344A7: reject: header Subject: =?ISO-2022-JP?B?GyRCTCQ+NUJ6OS05cBsoQg==?= from smtp21.mail.bbt.yahoo.co.jp[202.93.85.136]; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<s mtp21.mail.bbt.yahoo.co.jp>: Message content rejected |
Message from yahoo.co.jp. Unable to deliver message to the following address(es). ====================================================================== ※このメールは、Yahoo!メールサーバーより自動的に送信されています。 このメールには返信しないでください。 ====================================================================== 下記のメールアドレス宛のメールが、配送できませんでした。 以下にメールサーバーからのエラーメッセージを記載いたします。 = エラーメッセージ <[email protected]>: 210.160.33.75 failed after I sent the message. Remote host said: 550 Error: Message content rejected = Original message follows. = 以下、エラーとなったメール本文です Return-Path: <[email protected]> Received: from unknown (HELO ?192.168.1.141?) (xxx.xxx.xxx.xxx with poptime) by smtp21.mail.bbt.yahoo.co.jp with SMTP; 21 Apr 2005 06:14:39 -0000 X-Apparently-From: <[email protected]> Date: Thu, 21 Apr 2005 15:14:41 +0900 From: xxxxxxx <[email protected]> To: [email protected] Subject: =?ISO-2022-JP?B?GyRCTCQ+NUJ6OS05cBsoQg==?= Message-Id: <[email protected]> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.20.04 [ja] 拒否試験 __________________________________ Do You Yahoo!? Upgrade Your Life http://bb.yahoo.co.jp/ |
postfix設定ファイルへ追加 # vi /etc/postfix/main.cf # The header_checks parameter specifies an optional table with patterns # that each logical message header is matched against, including # headers that span multiple physical lines. # # By default, these patterns also apply to MIME headers and to the # headers of attached messages. With older Postfix versions, MIME and # attached message headers were treated as body text. # # For details, see the sample-filter.cf file. # header_checks = regexp:/etc/postfix/header_checks 以下の行を追加する body_checks = regexp:/etc/postfix/body_checks ボディチェックファイルの作成 # vi /etc/postfix/body_checks /name=.*\.scr/ REJECT /name=.*\.exe/ REJECT /name=.*\.pif/ REJECT 上記の場合は「scr」「exe」「pif」拡張子の添付ファイルがある場合、メールの受け取りを拒否します。 チェックファイルを編集した場合は必ずpostfixを再起動してください。設定が有効になりません postfixの再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postfix restart 【Fedora16以降 / CentOS7 の場合】 # systemctl restart postfix.service |