ค้นหาเว็บไซต์

วิธีการตั้งค่าเซิร์ฟเวอร์จดหมาย Postfix (SMTP) โดยใช้การกำหนดค่าไคลเอนต์ null - ตอนที่ 9


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

รูปภาพต่อไปนี้แสดงกระบวนการรับส่งอีเมลโดยเริ่มจากผู้ส่งจนกระทั่งข้อความไปถึงกล่องจดหมายของผู้รับ:

เพื่อให้สิ่งนี้เป็นไปได้ มีหลายสิ่งที่เกิดขึ้นเบื้องหลัง เพื่อให้ข้อความอีเมลถูกส่งจากแอปพลิเคชันไคลเอ็นต์ (เช่น Thunderbird, Outlook หรือบริการเว็บเมล เช่น Gmail หรือ Yahoo! Mail) ไปยังเซิร์ฟเวอร์อีเมล และจากที่นั่นไปยังเซิร์ฟเวอร์ปลายทางและสุดท้ายไปยังผู้รับที่ต้องการ จะต้องมีบริการ SMTP (Simple Mail Transfer Protocol) ในแต่ละเซิร์ฟเวอร์

นั่นคือเหตุผลว่าทำไมในบทความนี้ เราจะอธิบายวิธีการตั้งค่าเซิร์ฟเวอร์ SMTP ใน RHEL 7 โดยที่อีเมลที่ส่งโดยผู้ใช้ในเครื่อง (แม้กระทั่งผู้ใช้ในเครื่องรายอื่นด้วย) จะถูกส่งต่อ ไปยังเมลเซิร์ฟเวอร์กลางเพื่อให้เข้าถึงได้ง่ายขึ้น

ในข้อกำหนดของการสอบ สิ่งนี้เรียกว่าการตั้งค่า null-client

สภาพแวดล้อมการทดสอบของเราจะประกอบด้วยเมลเซิร์ฟเวอร์ต้นทางและเมลเซิร์ฟเวอร์กลางหรือโฮสต์รีเลย์


Original Mail Server: (hostname: box1.mydomain.com / IP: 192.168.0.18) 
Central Mail Server: (hostname: mail.mydomain.com / IP: 192.168.0.20)

สำหรับการจำแนกชื่อ เราจะใช้ไฟล์ /etc/hosts ที่เป็นที่รู้จักในทั้งสองกล่อง:


192.168.0.18    box1.mydomain.com       box1
192.168.0.20    mail.mydomain.com       mail

ข้อควรพิจารณาในการติดตั้ง Postfix และ Firewall/SELinux

ในการเริ่มต้น เราจะต้อง (ในเซิร์ฟเวอร์ทั้งสอง):

1. ติดตั้ง Postfix:


yum update && yum install postfix

2. เริ่มบริการและเปิดใช้งานให้ทำงานในการรีบูตครั้งต่อๆ ไป:


systemctl start postfix
systemctl enable postfix

3. อนุญาตการรับส่งอีเมลผ่านไฟร์วอลล์:


firewall-cmd --permanent --add-service=smtp
firewall-cmd --add-service=smtp

4. กำหนดค่า Postfix บน box1.mydomain.com

ไฟล์การกำหนดค่าหลักของ Postfix อยู่ใน /etc/postfix/main.cf ไฟล์นี้เป็นแหล่งเอกสารที่ดี เนื่องจากความคิดเห็นที่รวมไว้จะอธิบายวัตถุประสงค์ของการตั้งค่าของโปรแกรม

เพื่อความกระชับ ให้เราแสดงเฉพาะบรรทัดที่ต้องแก้ไข (ใช่ คุณต้องเว้น mydestination ว่างไว้ในเซิร์ฟเวอร์ต้นทาง มิฉะนั้น อีเมลจะถูกจัดเก็บไว้ในเครื่อง แทนที่จะอยู่ในเซิร์ฟเวอร์อีเมลกลางที่ คือสิ่งที่เราต้องการจริงๆ):


myhostname = box1.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
inet_interfaces = loopback-only
mydestination =
relayhost = 192.168.0.20

5. กำหนดค่า Postfix บน mail.mydomain.com


myhostname = mail.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8

และตั้งค่า SELinux บูลีนที่เกี่ยวข้องเป็นจริงอย่างถาวรหากยังไม่ได้ดำเนินการ:


setsebool -P allow_postfix_local_write_mail_spool on

บูลีน SELinux ข้างต้นจะอนุญาตให้ Postfix เขียนไปยังสปูลอีเมลในเซิร์ฟเวอร์กลาง

5. เริ่มบริการใหม่บนเซิร์ฟเวอร์ทั้งสองเพื่อให้การเปลี่ยนแปลงมีผล:


systemctl restart postfix

หาก Postfix เริ่มต้นไม่ถูกต้อง คุณสามารถใช้คำสั่งต่อไปนี้เพื่อแก้ไขปัญหา


systemctl –l status postfix
journalctl –xn
postconf –n

การทดสอบเซิร์ฟเวอร์จดหมาย Postfix

หากต้องการทดสอบเมลเซิร์ฟเวอร์ คุณสามารถใช้ Mail User Agent ใดก็ได้ (หรือที่รู้จักกันทั่วไปในชื่อ MUA) เช่น เมล หรือ mutt

เนื่องจาก mutt เป็นรายการโปรดส่วนตัว ฉันจะใช้มันใน box1 เพื่อส่งอีเมลถึงผู้ใช้ tecmint โดยใช้ไฟล์ที่มีอยู่ (mailbody .txt) เป็นเนื้อหาข้อความ:


mutt -s "Part 9-RHCE series" [email  < mailbody.txt

ตอนนี้ไปที่เซิร์ฟเวอร์จดหมายกลาง (mail.mydomain.com) เข้าสู่ระบบในฐานะผู้ใช้ tecmint และตรวจสอบว่าได้รับอีเมลหรือไม่:


su – tecmint
mail

หากไม่ได้รับอีเมล ให้ตรวจสอบที่เก็บพักเมลของรูทเพื่อดูคำเตือนหรือการแจ้งเตือนข้อผิดพลาด คุณอาจต้องการตรวจสอบให้แน่ใจว่าบริการ SMTP ทำงานบนเซิร์ฟเวอร์ทั้งสองเครื่อง และพอร์ตนั้น 25 เปิดอยู่ในเซิร์ฟเวอร์เมลกลางโดยใช้คำสั่ง nmap:


nmap -PN 192.168.0.20

สรุป

การตั้งค่า เมลเซิร์ฟเวอร์ และ โฮสต์รีเลย์ ดังที่แสดงในบทความนี้เป็นทักษะสำคัญที่ผู้ดูแลระบบทุกคนต้องมี และแสดงถึงรากฐานในการทำความเข้าใจและติดตั้งระบบที่ซับซ้อนมากขึ้น สถานการณ์ เช่น เมลเซิร์ฟเวอร์ที่โฮสต์โดเมนจริงสำหรับบัญชีอีเมลหลายบัญชี (แม้แต่หลายร้อยหรือหลายพันบัญชี)

(โปรดทราบว่าการตั้งค่าประเภทนี้ต้องใช้เซิร์ฟเวอร์ DNS ซึ่งอยู่นอกขอบเขตของคู่มือนี้) แต่คุณสามารถใช้บทความต่อไปนี้เพื่อตั้งค่า เซิร์ฟเวอร์ DNS:

  1. ตั้งค่าแคชเซิร์ฟเวอร์ DNS เท่านั้นใน CentOS/RHEL 07

สุดท้ายนี้ ฉันขอแนะนำให้คุณทำความคุ้นเคยกับไฟล์การกำหนดค่าของ Postfix (main.cf) และหน้าคู่มือของโปรแกรม หากมีข้อสงสัย อย่าลังเลที่จะติดต่อเราโดยใช้แบบฟอร์มด้านล่าง หรือใช้ฟอรั่ม Linuxsay.com ของเรา ซึ่งคุณจะได้รับความช่วยเหลือเกือบจะทันทีจากผู้เชี่ยวชาญ Linux จากทั่วทุกมุมโลก