ลบ / ซ่อน ip ของผู้ส่งจาก postfix หรือไม่


16

ฉันพยายามซ่อน IP ลูกค้าจากอีเมลที่ส่งจาก postfix

นี่คือตัวอย่างของสิ่งที่ฉันหมายถึง:

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 ไคลเอ็นต์ออกจากส่วนหัวได้อย่างไร

คำตอบ:


12

ใน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

ที่อยู่ IP ของฉันยังคงปรากฏอยู่ ฉันขอขอบคุณความพยายาม
Kyle

ไม่จำเป็นต้องมี postfix-pcre Regexp ทำงานในลักษณะเดียวกัน
Kyle

Alright ฉันได้ทำให้แน่ใจว่ามีการติดตั้ง pcre ในระบบ ฉันมีการเปลี่ยนแปลงไปregexp:/etc/postfix/smtp_header_checks pcre:/...ฉันได้ทำการรีสตาร์ท postfix แล้วและตรวจสอบข้อผิดพลาดใด ๆ ไม่มีข้อผิดพลาดปรากฏขึ้น อีเมลยังคงแสดง IP ของฉัน XD ขอบคุณสำหรับความพยายามไมค์
Kyle

อืม ... ฉันได้รับข้อผิดพลาด แต่ฉันพบirbs.net/internet/postfix/0404/1097.htmlฉันทดสอบ regex ด้วยpostfix.org/pcre_table.5.htmlนี้โดยใช้อาร์กิวเมนต์: postmap -q "Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])" pcre:/etc/postfix/smtp_header_checksและผลลัพธ์ก็เป็นIGNOREเช่นนั้น การทำงาน อย่างไรก็ตามมันไม่ได้ทำการเปลี่ยนแปลงในอีเมล ... ฟิลด์ด้านในmain.cfผิดหรือเปล่า?
Kyle

1
ชายอึ ฉันแค่เสียเวลาของคุณ มันเป็นความผิดของฉันในการเริ่มต้น smtp_header_checksควรจะเป็นheader_checks... มันได้ผลแล้ว ฉันขอโทษที่ฉันเสียเวลา ฉันขอขอบคุณความพยายามของคุณ ขอขอบคุณ. pcre ก็ใช้งานได้เช่นกัน ฉันอยู่บน Centos ขอบคุณอีกครั้งครับ
Kyle

3

เปิด /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


1
น่าเสียดายนี่จะเป็นการตัดReceivedส่วนหัวของจดหมายขาเข้า

0

หากต้องการลบ 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กระบวนการรับ mail และแทรกReceivedส่วนหัวกับผู้ส่งที่อยู่ IP header_checks(5)ตัวเลือกการประมวลผลโดยcleanup(8)องค์ประกอบที่ sanitizes หัวของอีเมล

มันเป็นเรื่องที่ไม่แนะนำให้ตั้งค่าดังกล่าวเป็นheader_checksตัวเลือกที่ทั่วโลกใน main.cf ของคุณเช่นนี้จะปรับเปลี่ยนส่วนหัวที่ได้รับในทุกอีเมลแม้กระทั่งผู้ที่ได้รับจากเซิร์ฟเวอร์ภายนอก แต่คุณควรกำหนดค่าไคลเอนต์ของคุณเพื่อส่งอีเมลผ่านบริการส่งเฉพาะที่พอร์ต 587 และกำหนดค่า Postfix เพื่อเขียนส่วนหัวสำหรับการส่งที่ได้รับการรับรองความถูกต้องเหล่านี้เท่านั้น

ใน/etc/postfix/master.cfเพิ่ม-oบรรทัดต่อไปนี้หลังจากsubmissionบรรทัด:

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

ใช้เวลาในการกำหนดค่าทำความสะอาดบริการuthenticated s ubmissions ฉันเลือกชื่อเพื่อให้สั้นและจัดเรียง แต่ชื่อใดก็ได้ หากต้องการทำเช่นนั้นให้ทำซ้ำบริการล้างข้อมูลในไฟล์เดียวกันแต่เปลี่ยนชื่อฟิลด์แรกและเพิ่มตัวเลือกใหม่เพื่อเลือกไฟล์ตัวกรอง:ascleanupmaster.cf

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

(การใช้pcreตารางต้องมีการติดตั้งpostfix-pcreบน Debian ซึ่งจะดูแลการอัพเดตไฟล์ dynamicmaps.cf โดยอัตโนมัติไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ เพิ่มเติม)

/etc/postfix/header_checks_submissionชิ้นสุดท้ายคือการกำหนดค่าตัวกรองที่เกิดขึ้นจริงใน คุณอาจใช้บางสิ่งเช่น:

/^Received: .*/ IGNORE

ซึ่งจะลบบรรทัดส่วนหัวที่ได้รับเต็ม แต่คุณสามารถวางfrom helo.host (reverse.host.name [192.0.2.1])ส่วนในขณะที่เก็บข้อมูลอื่น ๆ ไว้แทน:

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

หากคุณเปลี่ยนตัวmail_nameเลือกอย่าเปลี่ยนPostfixคำเพื่อให้ตรงกับการกำหนดค่าของคุณ (รูปแบบนี้มีความถูกต้องตามรหัสแหล่งที่มาของ Postfix, smtpd / smtpd.c )

ฉันทดสอบกับ postfix 3.4.7-0 + deb10u1 บน Debian buster สำหรับคำอธิบายที่ยอดเยี่ยมอีกวิธีหนึ่งในวิธีเดียวกันโปรดดูเมื่อส่งอีเมลด้วย Postfix ฉันจะซ่อน IP และชื่อผู้ส่งของผู้ใช้ในส่วนหัวที่ได้รับได้อย่างไร

ด้วยการปรับเปลี่ยนข้างต้นสิ่งต่อไปนี้จะกลายเป็นReceived: by ...:

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

-1

ใช้สิ่งนี้:

/^Received: from .*127.0.0.1**/ IGNORE

ใช้เพียงครั้งเดียว*ในปลายทั้งสอง


หรือมากกว่านั้นไหม / ^ ได้รับ: จาก. * 127 \ .0 \ .0 \ .1. * / IGNORE
แจ็คบี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.