หากต้องการลบ 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 ฉันเลือกชื่อเพื่อให้สั้นและจัดเรียง แต่ชื่อใดก็ได้ หากต้องการทำเช่นนั้นให้ทำซ้ำบริการล้างข้อมูลในไฟล์เดียวกันแต่เปลี่ยนชื่อฟิลด์แรกและเพิ่มตัวเลือกใหม่เพื่อเลือกไฟล์ตัวกรอง:ascleanup
master.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)