Score:3

Posftwd คือการนับอีเมลซ้ำเมื่อใช้กับ Posftix และ amavis

ธง mx

เซิร์ฟเวอร์อีเมล Postfix ของเราใช้ Amavis กับโปรแกรมกำจัดสแปมสำหรับสแกนสแปมและไวรัส เรามีวิธีการติดตั้ง postfix ส่งต่อเมลไปยัง amavis และ amavis จากนั้นจัดคิวอีเมลกลับไปที่ postfix เพื่อส่งไปยังปลายทาง ฉันได้ตั้งค่า postfwd ด้วยกฎง่าย ๆ เพื่อปฏิเสธอีเมลหลังจากเกณฑ์สำหรับผู้ส่ง แต่ Postfwd นับอีเมลซ้ำ เมื่อฉันส่งอีเมลหนึ่งฉบับผ่าน Outlook ในฐานะโปรแกรมรับส่งอีเมล Postfwd จะนับเป็นสองฉบับแทน ฉันยังใหม่กับโปรโตคอล SMTP และกำลังดิ้นรนเพื่อระบุประเด็น ถ้าใครสามารถช่วยได้ ฉันได้วางส่วนย่อยของการกำหนดค่าซึ่งฉันคิดว่ามีประโยชน์ด้านล่าง

ด้านล่างนี้เป็นผลลัพธ์สำหรับ postconf -n

append_dot_mydomain = ไม่
บิฟ = ไม่
Broken_sasl_auth_clients = ใช่
content_filter = amavis:[127.0.0.1]:10024
ปิดการใช้งาน_vrfy_command = ใช่
dovecot_destination_recipient_limit = 1
enable_original_recipient = ไม่
header_checks = regexp:/etc/postfix/header_checks
inet_interfaces = ทั้งหมด
mailbox_size_limit = 0
maximal_backoff_time = 8000 วินาที
maximal_queue_lifetime = 7 วัน
minimal_backoff_time = 1,000 วินาที
mydestination = $ชื่อโฮสต์ของฉัน
ชื่อโฮสต์ของฉัน = pXXX
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128,XXX
mynetworks_style = โฮสต์
myorigin = /etc/ชื่อโฮสต์
readme_directory = ไม่
ผู้รับ_ตัวคั่น = +
relay_domains = แฮช:/etc/postfix/relay_recipients
smtp_enforce_tls = ไม่
smtp_helo_timeout = 60 วินาที
smtp_tls_note_starttls_offer = ใช่
smtp_tls_security_level = พฤษภาคม
smtp_use_tls = ใช่
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_connection_count_limit = 30
smtpd_client_recipient_rate_limit = 300
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access hash:/etc/postfix/whitelist, cancel_rbl_client sbl.spamhaus.org
smtpd_data_restrictions = ปฏิเสธ_unauth_pipelining
smtpd_delay_reject = ใช่
smtpd_enforce_tls = ไม่
smtpd_hard_error_limit = 12
smtpd_helo_required = ใช่
smtpd_helo_restrictions = แฮช check_client_access:/etc/postfix/whitelist, permit_mynetworks,warn_if_rejectject_non_fqdn_hostname,reject_invalid_hostname
smtpd_recipient_limit = 30
smtpd_recipient_restrictions =reject_unauth_pipelining, check_policy_service inet:127.0.0.1:10040, permit_mynetworks, permit_sasl_authenticated,ject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,check_policy_service inet:127.0.0.1:10023
smtpd_relay_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/whitelist, check_sender_access hash:/etc/postfix/whitelist, permit_sasl_authenticated, cancel_non_fqdn_recipient, cancel_unknown_recipient_domain, cancel_unauth_destination, check_policy_service inet:127.0.0.1:10023
smtpd_sasl_auth_enable = ใช่
smtpd_sasl_authenticated_header = ใช่
smtpd_sasl_local_domain =
smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง
smtpd_sasl_type = นกพิราบ
smtpd_sender_restrictions = แฮช check_sender_access:/etc/postfix/sender_access, permit_sasl_authenticated, permit_mynetworks,ject_unknown_sender_domain,reject_unauth_pipelining,warn_if_reject cancel_sender_login_mismatch,warn_if_reject cancel_non_fqdn_sender,warn_if_rejectject_unlisted_sender,warn_if_rejectd_non_fqdn_sender,warn_if_rejectject_unlisted_sender,warn_if_rejectdn_rejectd
smtpd_soft_error_limit = 3
smtpd_tls_cert_file = XXX
smtpd_tls_key_file = XXX
smtpd_tls_loglevel = 1
smtpd_tls_received_header = ใช่
smtpd_tls_security_level = พฤษภาคม
smtpd_tls_session_cache_timeout = 3600 วินาที
smtpd_use_tls = ใช่
tls_random_source = dev:/dev/urandom
transport_maps = แฮช:/etc/postfix/transport
known_local_recipient_reject_code = 450
virtual_alias_maps = พร็อกซี:mysql:/etc/postfix/mysql_virtual_alias_maps.cf พร็อกซี:mysql:/etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
virtual_gid_maps = คงที่:125
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = พร็อกซี:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = พร็อกซี:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf พร็อกซี:mysql:/etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
virtual_transport = นกพิราบ
virtual_uid_maps = คงที่:150

กฎหลังโพสต์:

รหัส=20ต่อนาที; ผู้ส่ง=~/[email protected]/; action=rate(sender/20/60/REJECT เพียง 20 ข้อความต่อนาทีสำหรับ $$sender)

ใครก็ตามที่สามารถช่วยให้ความกระจ่างในเรื่องนี้ได้บ้าง?

Score:2
ธง za

แต่... คุณค้นพบเกือบทุกอย่างแล้ว!

คุณมีเพิ่มเติม smtpd บริการซึ่งมักจะตั้งค่าใน มาสเตอร์.cf แบบนี้:

smtp:10025 inet n - n - - smtpd
...

Amavis ได้รับการกำหนดค่าให้ปฏิเสธเมลกลับไปที่ 127.0.0.1:10025 (หรือพอร์ตใดก็ตามที่คุณใช้) แนวคิดคือ: คุณเรียกใช้บริการส่วนตัวพิเศษบนพอร์ตไฟร์วอลล์ที่ไม่ใช่ค่าเริ่มต้นเพื่อยอมรับเฉพาะจดหมายที่ประมวลผลแล้ว

การกำหนดค่าประเภทนี้ทำงานดังนี้:

  1. หนึ่งใน Postfix smtpd อินสแตนซ์, การแลกเปลี่ยนจดหมายหรือการส่ง, รับจดหมายจากภายนอกและ เข้าสู่ระบบเป็นครั้งแรก (และบริการนโยบายการโทร)
  2. จากนั้นตามการกำหนดค่า มันจะส่งเข้าไปใน Amavis
  3. หลังจากประมวลผลแล้ว Amavis จะปฏิเสธเมลกลับไปที่ Postfix อีกครั้ง แต่จะให้เป็นแบบพิเศษ smtpd อินสแตนซ์ซึ่งกำหนดค่าเป็น ไม่ ส่งเมลกลับไปที่ Amavis เพราะคาดว่าเมลทั้งหมดจะมาจาก Amavis
  4. เพิ่มเติมนี้ smtpd บันทึกจดหมายนั้นอีกครั้ง (และบริการนโยบายการโทร) แล้วส่งต่อตามกฎปกติ

ไม่มีวิธีใดที่จะแก้ไขการเข้าสู่ระบบสองครั้งในการตั้งค่าดังกล่าว เนื่องจากเกิดจากวิธีการแทรก Amavis ในการประมวลผลผ่าน SMTP ที่ด้อยกว่าโดยเนื้อแท้ แต่อย่างน้อยคุณก็ยังมีวิธีลดผลกระทบของการบันทึกสองครั้งนี้ คุณสามารถให้เพิ่มเติมของคุณ smtpd ตัวอย่าง คำนำหน้าบันทึกที่แตกต่างกันดังนั้นจึงเป็นการสร้างวิธีการแยกแยะว่าใครประมวลผลจดหมายในครั้งนี้ หลังจากบรรทัดที่เพิ่มเติม smtpd บริการที่กำหนดไว้ใน มาสเตอร์.cf, เพิ่มบรรทัด:

  -o syslog_name=postfix/reinject

(หรืออะไรก็ตามที่คุณจะใช้เพื่อแยกความแตกต่างจากที่อื่น smtpd อินสแตนซ์ ตัวแลกเปลี่ยนจดหมาย และการส่ง)

นอกจากนี้ คุณอาจปิดใช้งานการประมวลผลบริการนโยบายสำหรับอินสแตนซ์นี้ ดังนั้น โพสต์fwd จะไม่นับจดหมายสองครั้ง คุณต้องทำซ้ำทั้งหมดของคุณ smtpd_*_restrictions ใน มาสเตอร์.cf สำหรับบริการนี้ที่ ไม่รวม บริการนโยบายนี้:

...
  -o smtpd_recipient_restrictions=...,reject_unauth_destination
...

ไม่เคยใส่ช่องว่างใน มาสเตอร์.cf -o พารามิเตอร์!

ยุ่ง ฉันรู้ นี่เป็นเพราะการตั้งค่าทั้งหมดที่มีการปฏิเสธซ้ำนั้นยุ่งเหยิง

เป็นไปได้ว่าคุณมีพารามิเตอร์อื่นอยู่แล้ว ไม่เป็นไร พวกเขายังจำเป็นอยู่ โปรดสังเกตด้วยว่าการเปลี่ยนแปลงนี้เท่านั้น smtpd พฤติกรรมการเข้าสู่ระบบ จากนั้นจะใส่เมลลงในคิวทั่วไปที่ daemons อื่นรับและประมวลผล และเนื่องจากเราไม่ได้สร้างการกำหนดค่าการบันทึกแบบพิเศษสำหรับพวกเขา คุณจึงไม่สามารถแยกแยะได้ง่ายๆ ว่าพวกเขาประมวลผลเมลต้นฉบับหรือประมวลผลในครั้งนี้ (คำใบ้: ID คิวเมลมีประโยชน์สำหรับสิ่งนั้น) นี่เป็นเพียงการแก้ไขบางส่วน แต่ก็ยังมีประโยชน์มาก


คุณต้องออกแบบระบบเมลของคุณใหม่เพื่อไม่ให้มีเมลใดเข้าสู่ระบบซ้ำสอง ดังนั้นจดหมายแต่ละฉบับจะถูกนับหนึ่งครั้งราวกับใช้เวทมนตร์ Postfix มีวิธีการประมวลผลจดหมายโดยเฉพาะที่เรียกว่า มิลเตอร์ ("ตัวกรองอีเมล") ซึ่งขอแนะนำให้คุณใช้แทน SMTP และปฏิเสธอีกครั้ง คุณสามารถเชื่อมต่อ Amavis หรือแอปพลิเคชันอื่น ๆ ที่รองรับ milter (ซึ่งมีอยู่มากมาย) ผ่านอินเทอร์เฟซนี้ และคุณจะได้รับเส้นทางการกำหนดเส้นทางอีเมลที่สะอาดขึ้นมากภายในระบบอีเมล และยุ่งยากกับบันทึกและปัญหาอื่น ๆ น้อยลง Postfix จะปฏิเสธสแปมเมลทันที แทนที่จะรอคิว ตรวจสอบ แล้วทิ้ง อ่านคู่มือที่สมบูรณ์แบบของ Postfix เกี่ยวกับ Postfix ก่อนคิวรองรับ Milter

mx flag
ขอบคุณมากสำหรับความช่วยเหลือของคุณ สิ่งนี้ช่วยอธิบายสิ่งต่าง ๆ ได้จริงๆ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา