<ก่อนหน้านี้ | Contents | ถัดไป>
1.3. การตรวจสอบสิทธิ์ SMTP
SMTP-AUTH อนุญาตให้ไคลเอ็นต์ระบุตัวเองผ่านกลไกการพิสูจน์ตัวตน (SASL) ควรใช้ Transport Layer Security (TLS) เพื่อเข้ารหัสกระบวนการตรวจสอบสิทธิ์ เมื่อตรวจสอบความถูกต้องแล้ว เซิร์ฟเวอร์ SMTP จะอนุญาตให้ไคลเอ็นต์ส่งต่ออีเมลได้
1. กำหนดค่า Postfix สำหรับ SMTP-AUTH โดยใช้ SASL (Dovecot SASL):
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง' sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_security_options = ไม่ระบุชื่อ' sudo postconf -e 'broken_sasl_auth_clients = ใช่'
sudo postconf -e 'smtpd_sasl_auth_enable = ใช่' sudo postconf -e 'smtpd_recipient_restrictions = \
Permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
การขอ smtpd_sasl_path การกำหนดค่าเป็นพาธที่สัมพันธ์กับไดเร็กทอรีคิว Postfix
2. ถัดไป สร้างหรือรับใบรับรองดิจิทัลสำหรับ TLS ดูส่วนที่ 5 “ใบรับรอง” [หน้า. 198] สำหรับรายละเอียด ตัวอย่างนี้ยังใช้ผู้ออกใบรับรอง (CA) สำหรับข้อมูลเกี่ยวกับการสร้างใบรับรอง CA โปรดดูหัวข้อ 5.5 “ผู้ออกใบรับรอง” [p. 200].
MUA ที่เชื่อมต่อกับเซิร์ฟเวอร์อีเมลของคุณผ่าน TLS จะต้องรู้จักใบรับรองที่ใช้สำหรับ TLS ซึ่งสามารถทำได้โดยใช้ใบรับรองจาก CA เชิงพาณิชย์หรือด้วยใบรับรองที่ลงนามเองซึ่งผู้ใช้ติดตั้ง/ยอมรับด้วยตนเอง สำหรับใบรับรอง MTA ถึง MTA TLS จะไม่ผ่านการตรวจสอบหากไม่มีการตกลงล่วงหน้าจากองค์กรที่ได้รับผลกระทบ สำหรับ MTA ถึง MTA TLS ไม่มีเหตุผลใดที่จะไม่ใช้ใบรับรองที่ลงนามเอง เว้นแต่นโยบายท้องถิ่นจะกำหนด อ้างถึงส่วนที่ 5.3 “การสร้างใบรับรองที่ลงนามด้วยตนเอง” [p. 200] สำหรับรายละเอียดเพิ่มเติม
3. เมื่อคุณมีใบรับรองแล้ว ให้กำหนดค่า Postfix เพื่อให้การเข้ารหัส TLS สำหรับอีเมลขาเข้าและขาออก:
sudo postconf -e 'smtp_tls_security_level = อาจ' sudo postconf -e 'smtpd_tls_security_level = อาจ'
sudo postconf -e 'smtp_tls_note_starttls_offer = ใช่'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' sudo postconf -e 'smtlogpd_tls'
sudo postconf -e 'smtpd_tls_received_header = ใช่' sudo postconf -e 'myhostname = mail.example.com'
4. หากคุณกำลังใช้ของคุณเอง ผู้ออกใบรับรอง เพื่อลงนามในใบรับรอง ป้อน:
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
อีกครั้ง สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับใบรับรอง โปรดดูส่วนที่ 5 “ใบรับรอง” [p. 198].
หลังจากรันคำสั่งทั้งหมดแล้ว Postfix จะได้รับการกำหนดค่าสำหรับ SMTP-AUTH และสร้างใบรับรองที่ลงนามเองสำหรับการเข้ารหัส TLS
ตอนนี้ไฟล์ /etc/postfix/main.cf ควรมีลักษณะดังนี้:
# ดู /usr/share/postfix/main.cf.dist สำหรับความคิดเห็นที่สมบูรณ์ยิ่งขึ้น
#รุ่น
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = ไม่
# ต่อท้าย .domain เป็นงานของ MUA append_dot_mydomain = ไม่
# Uncomment บรรทัดถัดไปเพื่อสร้างคำเตือน "อีเมลล่าช้า"
#delay_warning_time = 4 ชม
myhostname = server1.example.com alias_maps = hash:/etc/alias alias_database = hash:/etc/aliases myorigin = /etc/mailname นามแฝง
mydestination = server1.example.com, localhost.example.com, รีเลย์โฮสต์ท้องถิ่น =
เครือข่ายของฉัน = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0
ผู้รับ_delimiter = + inet_interfaces = smtpd_sasl_local_domain ทั้งหมด = smtpd_sasl_auth_enable = ใช่
smtpd_sasl_security_options = ไม่ระบุชื่อ broken_sasl_auth_clients = ใช่ smtpd_recipient_restrictions =
Permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination smtpd_tls_auth_only = ไม่
smtp_tls_security_level = = อาจ smtpd_tls_security_level อาจ smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/private/smtpd.key smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = ใช่ smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
การกำหนดค่าเริ่มต้น postfix เสร็จสมบูรณ์ รันคำสั่งต่อไปนี้เพื่อรีสตาร์ท postfix daemon:
sudo systemctl รีสตาร์ท postfix.service
Postfix รองรับ SMTP-AUTH ตามที่กำหนดไว้ใน RFC25541. มันขึ้นอยู่กับ SASL2. อย่างไรก็ตาม ยังจำเป็นต้องตั้งค่าการตรวจสอบสิทธิ์ SASL ก่อนจึงจะสามารถใช้ SMTP-AUTH ได้