はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> メールサーバ >> postfixのセキュリティ設定
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 / CentOS6 / CentOS7 ]
  1. ヘッダー情報の隠蔽
    postfix設定ファイルの変更
    ヘッダチェックファイルの変更
    postfixの再起動
    設定後のヘッダ内容
  2. メールのフィルタリング
    ヘッダー情報で、条件によるメール拒否
    ボディ情報で、条件によるメール拒否

■ ヘッダー情報の隠蔽

ヘッダの「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設定ファイルを変更する。

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を再起動します。

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
また、拒否された相手には以下のようなメッセージが届きます。
(*:Yahoo!メールの場合です。相手側のメールサーバがリターンデリバリしない所もあります。)
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

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.