web-dev-qa-db-ja.com

Postfixからクライアント送信者IPを削除/非表示にしますか?

Postfixから送信されたメールからクライアントIPを隠そうとしています。

これが私の意味の例です:

Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    by mail.[removed].com (Postfix) with ESMTP id D50C7BF185DD
    for <[removed]@gmail.com>; Thu,  2 Aug 2012 16:14:21 +0900 (JST)
Date: Thu, 02 Aug 2012 07:14:08 +0000

この行に注意してください(adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

メールからその行を削除したい。

私はこれを試してみました:

/etc/postfix/main.cf:

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

smtp_header_checks:

/^((.*) [(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])])/    IGNORE

しかし、私のIPアドレスはまだ電子メールの受信部分の中にあります。ローカルでSMTPサーバーからメールを送信すると、IPアドレスはlocalhost.localdomain [127.0.0.1]

ヘッダーからクライアントIPを削除するにはどうすればよいですか?

16
Kyle

main.cf

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

dynamicmaps.cf

# Use your real path to dict_pcre.so, below
pcre    /usr/lib/postfix/dict_pcre.so           dict_pcre_open

これを/etc/postfix/smtp_header_checks

/^Received: .*/     IGNORE
/^X-Originating-IP:/    IGNORE

次に実行します

# /etc/init.d/postfix reload
12
Mike Pennington

/etc/postfix/master.cfを開き、次を見つけます:

cleanup unix n - n - 0 cleanup

それらの行の下に追加して次のようになります:

cleanup unix n - n - 0 cleanup -o header_checks=pcre:/etc/postfix/header_checks

/ etc/postfix/header_checksを編集して、以下のコードを追加します。

/^Received:/ IGNORE

ここでpostfixを再起動します。 CentOSで言ってみましょう:

service postfix restart

3
igtztorrero

新規メール送信の受信ヘッダーから送信者IPを削除するには、_header_checks_オプションの代わりに_smtp_header_checks_キーを使用します。

_header_checks = regexp:/etc/postfix/header_checks_submission
_

_smtp_header_checks_オプションはPostfixから外部サーバーに送信されるメールにのみ適用されますが、_header_checks_オプションはクライアントからPostfixに送信される受信メールに適用されます。

コンポーネントの概要については、Postfixがメールを受信する方法http://www.postfix.org/OVERVIEW.html も参照してください。 smtpd-> cleanup->着信キュー。 smtpdプロセスはメールを受信し、送信者のIPアドレスとともにReceivedヘッダーを挿入します。 header_checks(5) オプションは、電子メールヘッダーをサニタイズする cleanup(8) コンポーネントによって処理されます。

notこのような_header_checks_オプションをmain.cfでグローバルに設定することをお勧めします。これにより、allメールの受信ヘッダーが変更されます。外部サーバーから受信したものでさえ。代わりに、ポート587の専用送信サービスを介してメールを送信するようにクライアントを構成し、これらの認証済み送信のみのヘッダーを書き換えるようにPostfixを構成する必要があります。

_/etc/postfix/master.cf_で、submission行の後に次の_-o_行を追加します。

_submission inet n       -       y       -       -       smtpd
  # Require SASL authentication
  -o smtpd_sasl_auth_enable=yes
  # Require TLS transport security, do not leak your credentials in plaintext.
  -o smtpd_tls_security_level=encrypt`
  # Disallow unauthenticated users from sending mail through this port.
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  # Use a different cleanup service (see below)
  -o cleanup_service_name=ascleanup
_

cleanupサービスを構成する時間a uthenticated s ubmissions。 ascleanupという名前を選んで、短くして揃えますが、どの名前でも機能します。これを行うには、同じ_master.cf_ファイルでcleanupサービス行を複製しますが、最初のフィールドの名前を変更し、新しいオプションを追加してフィルターファイルを選択します。

_cleanup   unix  n       -       y       -       0       cleanup
ascleanup unix  n       -       y       -       0       cleanup
  -o header_checks=pcre:/etc/postfix/header_checks_submission
_

pcreテーブルを使用するには、Debianに_postfix-pcre_をインストールする必要があります。これにより、dynamicmaps.cfファイルの更新が自動的に行われます。これを変更する必要はありません。)

最後の部分は、_/etc/postfix/header_checks_submission_の実際のフィルター構成です。あなたは潜在的に次のようなものを使うことができます:

_/^Received: .*/ IGNORE
_

これにより、Receivedヘッダー行全体が削除されますが、代わりに他の情報を保持しながらfrom helo.Host (reverse.Host.name [192.0.2.1])部分を削除することもできます。

_/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1
_

_mail_name_ オプションを変更した場合は、Postfix Wordを構成に合わせて変更してください。 (このパターンはPostfixソースコード smtpd/smtpd.c に基づいて正確です。)

私はこれをDebianバスターのpostfix 3.4.7-0 + deb10u1でテストしました。同じアプローチの別の優れた説明については、 Postfixを使用してメールを送信するときに、受信者のヘッダーで送信者のIPとユーザー名を非表示にするにはどうすればよいですか?

上記の変更により、以下は_Received: by ..._に変換されます。

_Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
        by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
        for <[email protected]>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)
_
1
Lekensteyn