ฉันได้อ่านเอกสารเกี่ยวกับเรื่องนี้และโพสต์อื่น ๆ ที่นี่อีกครั้งแล้วและนี่ก็ยังไม่ชัดเจนสำหรับฉัน ฉันได้ทดสอบสิ่งต่าง ๆ เพื่อทำความเข้าใจความแตกต่างระหว่างalias_maps
และกับvirtual_alias_maps
และฉันไม่เห็นการใช้การตั้งค่าแยกต่างหาก 2 อย่างใน postfix นี่คือสิ่งที่ฉันพบจนถึงขณะนี้(หมายเหตุ - ฉันใช้ postfix ในเซิร์ฟเวอร์เดียวกับเว็บเซิร์ฟเวอร์ของฉันเป็นไคลเอ็นต์แบบ null เพื่อส่งอีเมลเท่านั้น) :
1) / etc / aliases file:
root: me@somedomain.com
เมื่อฉันเพิ่มด้านบนลงในalias_maps
ฉันพบว่าบริการบางอย่างเช่น fail2ban สามารถเลือกได้และจะส่งอีเมลรากไปยังที่อยู่อีเมลนามแฝงที่กล่าวถึง อย่างไรก็ตามฉันสังเกตเห็นว่าบริการอื่น ๆ (เช่นmail
คำสั่ง) ไม่เคารพสิ่งนี้และพยายามส่งอีเมลโดยตรงไปที่ root@mydomain.com ซึ่งไม่มีอยู่ (ฉันคิดว่าการmyorigin
ตั้งค่าpostfix ที่เพิ่ม @ mydomain.com) . เพื่อแก้ไขปัญหานี้ฉันจึงเพิ่มvirtual_alias_maps
2) / etc / postfix / เสมือน
root me@someotherdomain.com
เมื่อเพิ่มข้างต้นบริการทั้งหมดจะใช้อีเมลแทนเสมือนนี้ ฉันยังสังเกตเห็นว่าเมื่อฉันเพิ่มข้างต้นแม้ fail2ban เริ่มละเว้นการตั้งค่าเริ่มต้นของฉันใน/etc/aliases/
ไฟล์และเริ่มตามที่อยู่อีเมลที่กำหนดในไฟล์เสมือน
ตอนนี้ทำให้ฉันสับสนมากยิ่งขึ้น -
ทำไมเราต้อง
/etc/aliases/
มีอีเมลภายในแผนที่นามแฝงเสมือนดูเหมือนว่าจะแทนที่มัน?วัตถุประสงค์ของการมีการทำแผนที่นามแฝงแยกกัน 2 รายการนี้คืออะไรและเมื่อใดเราจะตัดสินใจใช้เมื่อใด
เหตุใด fail2ban (ซึ่งมีการกำหนดค่าให้ส่งไปยัง
root@localhost
) ก่อนตามที่อยู่อีเมลที่ระบุในalias_maps
(/ etc / aliases /) และหลังจากนั้นจึงตัดสินใจเพิกเฉยต่อว่าเมื่อvirtual_alias_maps
มีการเพิ่มเหตุใดบริการทั้งหมดจึงไม่อ่านชื่อแทนอีเมลที่กล่าวถึงใน / etc / aliases และบริการเหล่านั้นจะทำงานเฉพาะเมื่อเพิ่มชื่อแทนอีเมลในแผนที่นามแฝงเสมือน
ฉันใช้เวลาหลายชั่วโมงตั้งแต่เมื่อวานและยังไม่แน่ใจ ใครช่วยฉันล้างความสับสนของฉันได้ไหม
แก้ไข:
นี่คือบันทึกอีเมลเมื่อมีการส่งอีเมลไปยังรูทโดยใช้mail root
คำสั่ง อีเมลนามแฝงสำหรับรูทถูกกล่าวถึงใน / etc / aliases / แต่เมลไม่ทำงานจนกว่าฉันจะย้ายอีเมลแทนจากรูทนี้aliases_maps
ไปยังvirtual_aliases_maps
เข้าสู่ระบบเมื่อมีการกล่าวถึงนามแฝงอีเมลหลักใน/etc/aliases/
:
Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root>
Nov 14 16:39:27 Debian postfix/cleanup[4495]: 0F12643432: message-id=<20141114110927.0F12643432@Debian.domainname.com>
Nov 14 16:39:27 Debian postfix/qmgr[4338]: 0F12643432: from=<root@domainname.com>, size=517, nrcpt=1 (queue active)
Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<root@domainname.com>, orig_to=<root>, relay=none, delay=0.04, delays=0.03/0/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to domainname.com[128.199.147.136]:25: Connection refused)
นี่คือบันทึกหลังจากนามแฝงอีเมลสำหรับรูทถูกย้ายจาก/etc/aliases/
ไปยัง/etc/postfix/virtual
ตำแหน่งที่การส่งอีเมลสำเร็จหลังจากการเปลี่ยนแปลง:
Nov 14 16:44:58 Debian postfix/pickup[4545]: ADD9A43436: uid=0 from=<root>
Nov 14 16:44:58 Debian postfix/cleanup[4563]: ADD9A43436: message-id=<20141114111458.ADD9A43436@Debian.domainname.com>
Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<root@domainname.com>, size=453, nrcpt=1 (queue active)
Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<admin@somesite.com>, orig_to=<root>, relay=somesite.com[108.160.157.120]:25, delay=1.9, delays=0.03/0/0.97/0.88, dsn=2.0.0, status=sent (250 OK id=1XpEqC-0002ry-9s)
Nov 14 16:45:00 Debian postfix/qmgr[4544]: ADD9A43436: removed
I also noticed that some other services (like mail command) does not respect this
-> โปรดแสดงรายการ maillog ที่เกี่ยวข้องกับเงื่อนไขนี้