Postfix บนเซิร์ฟเวอร์การพัฒนาอนุญาตให้ส่งเมลไปยังโดเมนเดียวเท่านั้น


11

เรามี postfix บนเซิร์ฟเวอร์การพัฒนาของเราและฉันต้องการให้สามารถส่งอีเมลไปยังโดเมนของเราไม่ใช่โดเมนอื่น ๆ เพื่อป้องกันผู้ใช้ภายนอกจากการรับจดหมายจากเซิร์ฟเวอร์การพัฒนาของเราโดยไม่ตั้งใจ

ฉันค้นหาเอกสารพยายามหลายสิ่งหลายอย่าง แต่ยังคงส่งไปยังโดเมนทั้งหมด ...

คำตอบ:


7

การขนส่ง (5)แผนที่ถูกใช้เพื่อกำหนดวิธีการกำหนดเส้นทางอีเมลใหม่โดย postfix

  • เพิ่มบรรทัดต่อไปนี้ใน /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    
  • เพิ่มไฟล์ใหม่ / etc / postfix / transport ด้วยเนื้อหานี้:

    .example.com   :
    example.com    :
    *              discard:
    

แทนที่example.comด้วยโดเมนที่เซิร์ฟเวอร์จดหมายของคุณยังควรส่งอีเมลไป หากคุณไม่สนใจโดเมนย่อยให้ลบบรรทัดแรก

อย่าลืมที่จะแฮชไฟล์หลังจากแก้ไขด้วยpostmap (1)และโหลด postfix ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

# postmap /etc/postfix/transport && postfix reload

7

คุณสามารถ จำกัด ผู้รับมาตรฐานsmtpd_recipient_restrictionsหรืออย่างแม่นยำมากcheck_recipient_access

เพียงแค่สร้างการเข้าถึง (5)ตาราง/etc/postfix/accessที่มีเนื้อหาดังต่อไปนี้ ( example.comเป็นโดเมนที่คุณต้องการที่จะอนุญาตให้มีการส่งจดหมายไปยัง):

example.com    OK

คุณสามารถอนุญาตได้เฉพาะที่อยู่บางแห่งเท่านั้น:

user1@example.com    OK
user2@example.com    OK

อย่าลืมที่จะแฮชไฟล์หลังจากแก้ไขด้วยpostmap (1) :

# postmap /etc/postfix/access

ตอนนี้ใส่ข้อ จำกัด ผู้รับต่อไปนี้ใน main.cf ของคุณ:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

และโหลด Postfix ใหม่:

postfix reload

หลังจากนั้นให้ทดสอบถ้าใช้งานได้


1
นั่นจะใช้ได้กับเมลที่ส่งผ่าน SMTP ไม่ใช่คำสั่ง / usr / lib / sendmail และกระบวนการโลคัลสามารถทำได้ทั้งสองอย่าง ดูเหมือนว่าอาจใช้การตั้งค่า
Jacek Konieczny

6

ดังนั้นหากมีคนสะดุดมากกว่านี้เช่นฉัน: คำตอบคือheader_checksแน่นอนและมันทำงานเช่น:

  • เพิ่มบรรทัดต่อไปนี้/etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • เพิ่มไฟล์ใหม่/etc/postfix/header_checksด้วยเนื้อหานี้:

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com
    

แทนที่allowed-domain.comด้วยโดเมนที่เซิร์ฟเวอร์จดหมายของคุณยังควรส่งอีเมลไป แทนที่redirect@example.comด้วยที่อยู่อีเมลควรเปลี่ยนเส้นทางอีเมลอื่นทั้งหมด

หากคุณต้องการอนุญาตหลายโดเมนบรรทัดแรกควรมีลักษณะดังนี้:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

แทนที่จะเปลี่ยนเส้นทางคุณสามารถวางอีเมลอื่นทั้งหมดได้ง่ายๆ แทนที่บรรทัดที่สองด้านบนด้วย:

/^To:.*@/   DISCARD No outgoing mails allowed

คำอธิบาย:

  • Postfix ต้องผ่านส่วนหัวของจดหมายแบบหนึ่งต่อหนึ่ง
  • แต่ละบรรทัดส่วนหัวได้รับการจับคู่กับheader_checksไฟล์บรรทัดต่อบรรทัด
  • หากตรงกับบรรทัดแรก ( To:มีโดเมนที่อนุญาต) จะข้ามไปที่บรรทัดส่วนหัวถัดไปและเริ่มตรวจสอบส่วนหัวอีกครั้งจากด้านบน เนื่องจากไม่มีบรรทัดอื่นที่จะตรงกันนั่นหมายความว่าจะได้รับจดหมาย
  • หากตรงกับบรรทัดที่สอง ( To:มีที่อยู่อีเมลภายนอกอื่น) จะเป็นการเปลี่ยนเส้นทางจดหมาย

ดูเหมือนว่าปัญหานี้จะได้รับการแก้ไขด้วยคำตอบนี้บางทีมันควรจะทำเครื่องหมายว่าแก้ไขได้หรือไม่? (มันใช้งานได้อย่างมีเสน่ห์สำหรับฉันอย่างน้อย)
Sverre

สิ่งที่เกี่ยวกับCc:และBcc:?
พอลโทเบียส

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