Score:0

Postfix : จะปฏิเสธเมลสำหรับผู้ใช้ระบบโลคัลได้อย่างไร

ธง in

ฉันกำลังพยายามสร้างเซิร์ฟเวอร์ Postfix/Cyrus ขนาดเล็กบนเวิร์กสเตชัน Linux เพื่อทำหน้าที่เป็นพร็อกซีระหว่างอีเมลไคลเอ็นต์ (Thunderbird) และเซิร์ฟเวอร์อีเมลของบริษัท แต่ยังจัดการอีเมลระบบในเครื่องด้วย (สิ่งที่ส่งโดย crontabs สำหรับ ตัวอย่าง).

บนเซิร์ฟเวอร์ Cyrus ฉันสร้างกล่องจดหมายซึ่งเลียนแบบที่อยู่อีเมลของบริษัทของฉัน กำหนดค่านามแฝงใน /etc/นามแฝง เพื่อส่งอีเมลท้องถิ่นปลายทาง ราก หรือ นายไปรษณีย์ ตามที่อยู่นี้ และขอขอบคุณ ขนส่ง_maps คำสั่งซึ่งมีความสำคัญเหนือสิ่งอื่นใด สั่งให้ Postfix ส่งอีเมลที่ส่งไปยังที่อยู่อีเมลนี้โดยตรงไปยังซ็อกเก็ต lmtp ของ Cyrus ส่วนนี้ทำงานได้ดีอย่างสมบูรณ์: เมลในเครื่องทั้งหมดที่ส่งไปยังผู้ใช้เหล่านั้น /etc/นามแฝง ถูกส่งไปยังกล่องจดหมาย Cyrus ในพื้นที่ของฉัน ในขณะที่อีเมลทั้งหมดสำหรับโดเมนอื่น (หรือแม้แต่โดเมนของบริษัทของฉัน) ไปที่โฮสต์รีเลย์ (เซิร์ฟเวอร์อีเมลจริงของบริษัทของฉัน) หลังจาก จาก: ส่วนหัวถูกเขียนใหม่ไปยังที่อยู่อีเมลบริษัทจริงของฉัน ขอบคุณ smtp_generic_maps (ซึ่งทำหน้าที่เฉพาะกับจดหมายขาออกเท่านั้น ไม่เหมือน sender_canonical_maps หรือ ผู้รับ_canonical_maps). นี้เกือบจะสมบูรณ์แบบ

ปัญหาที่ฉันพบคือ Postfix ยอมรับเมลทั้งหมดที่ส่งไปยังผู้ใช้ในเครื่อง แม้กระทั่งผู้ใช้ระบบ และส่งไปยังไฟล์ mbox ใน /var/spool/mailที่ฉันไม่ต้องการ

ฉันพยายามตั้งค่า local_recipient_maps เท่านั้น $alias_maps (ไม่รวม พร็อกซี:ยูนิกซ์:passwd.byname ซึ่งมีอยู่ในค่าเริ่มต้น) แต่สิ่งนี้จะไม่เปลี่ยนแปลงอะไรเลย

ฉันยังพยายามตั้งค่า mailbox_transport เพื่อส่งอีเมลเหล่านั้นไปยังซ็อกเก็ต lmtp ของ Cyrus แต่ Postfix จะส่งทุกอย่างที่ไม่อยู่ในรายการไปยัง Cyrus $alias_mapsไม่ว่าจะมีอยู่ในฐานข้อมูล Unix passwd หรือไม่ (setting mailbox_transport_maps = $alias_maps ไม่ช่วยอะไร)

ด้วยการตั้งค่านี้ ส่งอีเมลถึงผู้ใช้ที่ไม่มีอยู่จริง (หรือบัญชี Unix ที่มีอยู่ซึ่งไม่ได้มีชื่อแทน) $alias_maps) จบลงด้วยการปฏิเสธโดย Cyrus (ด้วย 550-กล่องจดหมายไม่รู้จัก) แต่ฉันต้องการให้อีเมลเหล่านั้นปฏิเสธโดย Postfix โดยตรง หลีกเลี่ยงการเดินทางไปกลับที่ไร้ประโยชน์ (IMHO) ไปยัง Cyrus

ถ้าสิ่งที่ฉันพยายามจะบรรลุนั้นเป็นไปไม่ได้จริงๆ ฉันจะยอมทำสิ่งนี้

ฉันยังพยายามตั้งค่า local_transport ไปยังซ็อกเก็ต lmtp ของ Cyrus แต่ที่แย่ไปกว่านั้น: จดหมายทั้งหมดจะถูกส่งโดยตรงไปยัง Cyrus โดยไม่มีนามแฝงใด ๆ (ดังนั้นจดหมายในเครื่องทั้งหมดจึงถูกปฏิเสธ แม้ว่าผู้ใช้ในเครื่องจะอยู่ใน $alias_maps).

ฉันรู้ว่าฉันอาจเพิกเฉยได้ ท้องถิ่น อย่างสมบูรณ์และจัดการจดหมายทั้งหมดด้วย เสมือน ตัวแทนจัดส่ง (เป็นสิ่งที่ฉันมักจะทำเมื่อฉันตั้งค่า จริง เมลเซิร์ฟเวอร์ โดยใช้โดเมนเสมือน/กล่องจดหมายเท่านั้น) แต่ฉันชอบการกำหนดค่าที่เรียบง่ายมากที่ฉันลงเอยด้วย (/etc/postfix/main.cf ขณะนี้มีเพียง 10 บรรทัดจริงหรือมากกว่านั้น) และฉันพบว่ามันน่าประหลาดใจมากที่ ท้องถิ่น ไม่สามารถสั่งให้ละเว้นฐานข้อมูลรหัสผ่าน Unix และปฏิเสธทุกสิ่งที่ไม่ได้อยู่ในรายการ $alias_maps (เว้นแต่ฉันจะเข้าใจเอกสารผิด มันคืออะไร local_recipient_maps สำหรับ).

นี่คือการกำหนดค่าของฉัน:

/etc/postfix/main.cf

ความเข้ากันได้_ระดับ = 2
myhostname = <FQDN ของเวิร์กสเตชันของฉันใน lan>
inet_interfaces = วนกลับเท่านั้น
mynetworks_style = โฮสต์
relayhost = <MX ภายในบริษัทของฉัน>
alias_maps = hash:/etc/aliases (เพื่อแยก nis:mail.aliases)
transport_maps = แฮช:$config_directory/transport_maps
smtp_generic_maps = แฮช:$config_directory/smtp_generic_maps
บิฟ = ไม่

/etc/นามแฝง

นายไปรษณีย์: ราก
รูท: <ที่อยู่อีเมลบริษัทจริงของฉัน>

/etc/postfix/transport_maps

<ที่อยู่อีเมลบริษัทจริงของฉัน> lmtp:unix:/run/cyrus/socket/lmtp

/etc/postfix/smtp_generic_maps

@<FQDN ของเวิร์กสเตชันของฉันใน lan> <ที่อยู่อีเมลบริษัทจริงของฉัน>

อย่างที่คุณเห็น ง่ายมาก

ไม่มีวิธีสั่งให้ Postfix ปฏิเสธเมลสำหรับผู้ใช้ระบบ หรือให้แม่นยำกว่านั้น ปฏิเสธเมลสำหรับผู้ใช้ที่ไม่ได้ระบุไว้อย่างชัดเจนใน $alias_maps ?

โพสต์คำตอบ

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