ก่อนอื่น : ฉันรู้ว่าหัวข้อนี้ได้รับการปฏิบัติแล้วในหัวข้ออื่นๆ สองสามหัวข้อ ขออภัย ไม่มีอะไรที่ฉันอ่านได้ดูเหมือนจะใช้ได้ผล ฉันจึงกำลังมองหาวิธีใหม่ในการทำเช่นนี้

ฉันได้รับอีเมลขยะสองสามครั้งต่อวันซึ่งดูเหมือนว่าจะมาจากโดเมนของฉันเอง (มากกว่านั้น: จากที่อยู่อีเมลที่รับอีเมล)

นี่คือข้อมูลบางส่วน:

แหล่งที่มาของอีเมลขยะ ( [email protected] คือที่อยู่อีเมลของฉัน vaeserveur.fr เป็นเซิร์ฟเวอร์หลัก):

Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from static.vnpt.vn (unknown [113.190.69.222])
    by vaeserveur.fr (Postfix) with ESMTP id 945F82880099
    for <[email protected]>; Tue, 10 Apr 2018 12:56:11 +0200 (CEST)
Authentication-Results: vaeserveur.fr; dkim=none reason="no signature";
    dkim-adsp=discard (insecure policy); dkim-atps=neutral
Message-ID: <[email protected]>
From: <[email protected]>
To: <[email protected]>
Subject: Olenka29
Date: 10 Apr 2018 23:33:06 +0600
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0020_01D3D0F5.0276B9FD"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Windows Live Mail 15.4.3508.1109
X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3508.1109

นี่คือสิ่งที่เกิดขึ้นกับบันทึกสำหรับอีเมลนี้:

Apr 10 12:56:10 vaeserveur postfix/smtpd[21347]: warning: hostname static.vnpt.vn does not resolve to address 113.190.69.222
Apr 10 12:56:10 vaeserveur postfix/smtpd[21347]: connect from unknown[113.190.69.222]
Apr 10 12:56:11 vaeserveur postfix/smtpd[21347]: 945F82880099: client=unknown[113.190.69.222]
Apr 10 12:56:12 vaeserveur postfix/cleanup[21354]: 945F82880099: message-id=<[email protected]>
Apr 10 12:56:12 vaeserveur opendkim[29715]: 945F82880099: [113.190.69.222] [113.190.69.222] not internal
Apr 10 12:56:12 vaeserveur opendkim[29715]: 945F82880099: not authenticated
Apr 10 12:56:12 vaeserveur postfix/qmgr[17806]: 945F82880099: from=<[email protected]>, size=1360, nrcpt=1 (queue active)
Apr 10 12:56:12 vaeserveur dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Apr 10 12:56:12 vaeserveur postfix/pipe[21356]: 945F82880099: to=<[email protected]>, relay=dovecot, delay=1.1, delays=1/0/0/0.11, dsn=2.0.0, status=sent (delivered via dovecot service)
Apr 10 12:56:12 vaeserveur postfix/qmgr[17806]: 945F82880099: removed
Apr 10 12:56:12 vaeserveur postfix/smtpd[21347]: disconnect from unknown[113.190.69.222]

หลังจากได้รับอีเมลฉบับแรก ฉันแก้ไข DNS ของฉันเพื่อให้ SPF และ DKIM "เข้มงวด" ตามที่ฉันเคยเห็นในหัวข้ออื่น ๆ (ตัวอย่างด้วย calendridel.fr แต่สิ่งเดียวกันกับ vaeserveur.fr / ฉันมี ip4 ของฉันอยู่ บันทึก "a"):

calendridel.fr.                 IN TXT "v=spf1 a mx ip6:2001:41d0:1:e7c2::1 -all"
_domainkey.calendridel.fr.      IN TXT "t=y; o=-;"
mail._domainkey.calendridel.fr. IN TXT ("v=DKIM1; k=rsa;" "[mykey]")
_adsp._domainkey.calendridel.fr. IN TXT "dkim=discardable"
_dmarc.calendridel.fr.          IN TXT ("v=DMARC1;p=none;adkim=r;aspf=r;sp=none;rua=mailto:[email protected];ruf=mailto:[email protected];")

การเปลี่ยนแปลงเหล่านั้นไม่มีประสิทธิภาพ ดังนั้นฉันจึงแก้ไข postfix ด้วย : ฉันเพิ่มบรรทัดเหล่านั้นในpostfix/main.cf:

#Helo Restrictions
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname

#Sender Restrictions
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_unlisted_sender, permit_sasl_authenticated, check_sender_access hash:/etc/postfix/access/sender_access

#Recipient Restrictions
smtpd_recipient_restrictions = reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

ในpostfix/access/sender_accessไฟล์ ฉันพยายามเพิ่ม calendridel.fr เป็นโดเมนที่จะปฏิเสธ (แต่ การทำเช่นนี้ควรบล็อกอีเมลทุกฉบับจากโดเมนหรือไม่ หมายความว่าฉันไม่สามารถส่งอีเมลจากมันเองได้ ? ) :

#Address            #Action
calendridel.fr      REJECT

การเปลี่ยนแปลงครั้งล่าสุดนี้เป็นการเปลี่ยนแปลงล่าสุด (หลังจากอีเมลล่าสุดที่ฉันได้รับ) แต่ฉันเดาว่ามันไม่เพียงพอ

หากคุณมีเบาะแสใด ๆ หากคุณต้องการข้อมูลเพิ่มเติม : แจ้งให้เราทราบฉันจะให้คุณด้วยความยินดี (และขออภัยถ้าภาษาอังกฤษของฉันไม่ดี อย่างที่คุณเห็นฉันเป็นกบ... ฉันหมายถึง ฝรั่งเศส !)

answer

check_sender_accessวิธีการแก้ปัญหาที่ถูกต้องและเหมาะสมดี เนื่องจากเป็น a hash:อย่าลืมpostmap /etc/postfix/access/sender_accessหลังจากการเปลี่ยนแปลงใดๆ

คุณเข้าใจผิดว่าการดำเนินการนี้จะปฏิเสธอีเมลทั้งหมดจากโดเมนนี้ เฉพาะในกรณีที่ใช้จากแหล่งกำเนิดที่ไม่ได้รับอนุญาตเท่านั้น นั่นเป็นเพราะคุณมีการทดสอบที่สำคัญสองแบบก่อนcheck_sender_access:

  • permit_mynetworksสำหรับที่อยู่ IP ใด ๆ ที่ตรงกับคุณ$mynetworksและ
  • permit_sasl_authenticatedสำหรับการอนุญาตคำขอสำหรับ ( RFC 4954 ) ผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์

Sender Policy Framework ( SPF ) จะทำเช่นเดียวกันและทำงานได้ แม้ว่าคุณจะไม่สามารถเชื่อถือเซิร์ฟเวอร์ขาออกทั้งหมดให้อยู่ในนั้น$mynetworksหรือหากเซิร์ฟเวอร์เหล่านั้นแสดงรายการเป็นที่อยู่ IP ได้ยาก (เช่นinclude:spf.protection.outlook.com) โดเมนของคุณน่าจะมีบันทึก SPF แล้ว:

calendridel.fr. IN TXT "v=spf1 a mx ip6:2001:41d0:1:e7c2::1 -all"

ขณะนี้คุณไม่ได้ใช้สิ่งนี้สำหรับอีเมลขาเข้าของคุณ ดูวิธีการใช้ SPF ใน Postfix

โปรดจำไว้ว่า ทั้งหมดนี้ใช้ได้เฉพาะเมื่อโดเมนของคุณใช้สำหรับที่อยู่ผู้ส่งเอนเวโลปเท่านั้น ยังสามารถปลอมแปลงFrom:ส่วนหัวเป็นอะไรก็ได้ เช่น Spamassassin สามารถจัดการกับกรณีดังกล่าวได้ อย่างไรก็ตามโดยทั่วไปแล้วผู้ส่งเอนเวโลปและFrom:ส่วนหัวไม่ตรงกันก็ไม่ผิด หากไม่ได้ใช้บริการภายนอกใดๆ เพื่อส่งอีเมลในนามของโดเมนของคุณ คุณสามารถสร้างกฎสำหรับสิ่งนั้นได้ โชคดีที่สแปมส่วนใหญ่จะได้คะแนนเพียงพอสำหรับเหตุผลอื่นๆ แม้จะไม่มีกฎเกณฑ์ดังกล่าวก็ตาม