ตั้งค่า Postfix MTA และ IMAP / POP3
ในการส่งอีเมลจากเซิร์ฟเวอร์ CentOS 7 ของเราเราจะต้องมีการตั้งค่าเพื่อกำหนดค่า Mail Transfer Agent (MTA) ที่ทันสมัย Mail Transfer Agent เป็น daemon ที่รับผิดชอบในการส่งเมลขาออกสำหรับผู้ใช้ระบบหรือโดเมนอินเทอร์เน็ตขององค์กรผ่าน SMTP
เป็นที่น่าสังเกตว่าบทช่วยสอนนี้สอนเฉพาะขั้นตอนการตั้งค่า daemon สำหรับการใช้งานภายในเครื่องเท่านั้น เราไม่ลงรายละเอียดเกี่ยวกับการกำหนดค่าขั้นสูงสำหรับการตั้งค่า MTA สำหรับการดำเนินธุรกิจ นี่คือการรวมกันของทักษะต่างๆซึ่งรวมถึง แต่ไม่ จำกัด เพียง DNS การรับที่อยู่ IP ที่กำหนดเส้นทางแบบคงที่ซึ่งไม่อยู่ในบัญชีดำและการกำหนดค่าความปลอดภัยขั้นสูงและการตั้งค่าบริการ ในระยะสั้นบทช่วยสอนนี้มีขึ้นเพื่อให้คุณคุ้นเคยกับการกำหนดค่าพื้นฐาน อย่าใช้บทช่วยสอนนี้สำหรับการกำหนดค่า MTA ของโฮสต์ที่เชื่อมต่อกับอินเทอร์เน็ต
ด้วยการมุ่งเน้นที่การรักษาความปลอดภัยและความสะดวกในการบริหารจัดการร่วมกันเราจึงเลือก Postfixเป็น MTA สำหรับบทช่วยสอนนี้ เอ็มทีเริ่มต้นติดตั้งในรุ่นเก่าของ CentOS เป็นSendmailSendmailเป็น MTA ที่ยอดเยี่ยม อย่างไรก็ตามจากความเห็นที่ต่ำต้อยของผู้เขียน Postfix ได้รับความนิยมเมื่อกล่าวถึงบันทึกย่อต่อไปนี้สำหรับ MTA ด้วย CentOS เวอร์ชันล่าสุด Postfix ได้แทนที่ Sendmail เป็น MTA เริ่มต้น
Postfix เป็น MTA ที่ใช้กันอย่างแพร่หลายและได้รับการบันทึกไว้เป็นอย่างดี ได้รับการบำรุงรักษาและพัฒนาอย่างต่อเนื่อง ต้องมีการกำหนดค่าน้อยที่สุดในใจ (นี่เป็นเพียงอีเมล) และมีประสิทธิภาพด้วยทรัพยากรระบบ (อีกครั้งนี่เป็นเพียงอีเมล)
Step 1 - ติดตั้ง Postfix จาก YUM Package Manager
[root@centos]# yum -y install postfix
Step 2 - กำหนดค่าไฟล์กำหนดค่า Postfix
ไฟล์คอนฟิกูเรชัน Postfix อยู่ใน: /etc/postfix/main.cf
ในการกำหนดค่า Postfix อย่างง่ายต้องกำหนดค่าสิ่งต่อไปนี้สำหรับโฮสต์เฉพาะ: ชื่อโฮสต์โดเมนต้นทาง inet_interfaces และปลายทาง
Configure the hostname- ชื่อโฮสต์คือชื่อโดเมนแบบเต็มของโฮสต์ Postfix ใน OpenLDAP บทเราตั้งชื่อ CentOS กล่อง: CentOS บนโดเมนvmnet.local มาดูกันดีกว่าสำหรับบทนี้
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = centos.vmnet.local
Configure the domain- ตามที่ระบุไว้ข้างต้นโดเมนที่เราจะใช้ในบทช่วยสอนนี้คือvmnet.local
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = vmnet.local
Configure the origin - สำหรับการตั้งค่าเซิร์ฟเวอร์และโดเมนเดียวเราต้องยกเลิกการใส่ความคิดเห็นในส่วนต่อไปนี้และปล่อยให้ตัวแปร Postfix เริ่มต้น
# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites. If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# [email protected].
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
myorigin = $myhostname
myorigin = $mydomain
Configure the network interfaces- เราจะปล่อยให้ Postfix ฟังอยู่บนอินเทอร์เฟซเครือข่ายเดียวและโปรโตคอลและที่อยู่ IP ทั้งหมดที่เกี่ยวข้องกับอินเทอร์เฟซนั้น ทำได้โดยเพียงแค่เปิดใช้งานการตั้งค่าเริ่มต้นสำหรับ Postfix
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all
Step 3 - กำหนดค่าการรองรับ SASL สำหรับ Postfix
หากไม่มีการสนับสนุน SASL Authentication Postfix จะอนุญาตให้ส่งอีเมลจากผู้ใช้ภายในเท่านั้น หรือจะให้ข้อผิดพลาดที่ปฏิเสธการส่งต่อเมื่อผู้ใช้ส่งอีเมลจากโดเมนภายในเครื่อง
Note - SASL หรือ Simple Application Security Layer Frameworkเป็นกรอบงานที่ออกแบบมาสำหรับการพิสูจน์ตัวตนที่สนับสนุนเทคนิคที่แตกต่างกันระหว่างโปรโตคอล Application Layer ที่แตกต่างกัน แทนที่จะปล่อยกลไกการพิสูจน์ตัวตนไว้ในโปรโตคอลเลเยอร์แอปพลิเคชันนักพัฒนา SASL (และผู้บริโภค) ใช้ประโยชน์จากโปรโตคอลการตรวจสอบสิทธิ์ปัจจุบันสำหรับโปรโตคอลระดับที่สูงขึ้นซึ่งอาจไม่มีความสะดวกหรือการตรวจสอบสิทธิ์ที่ปลอดภัยมากขึ้น (เมื่อพูดถึงการเข้าถึงบริการที่ปลอดภัย) ในตัว
ติดตั้งแพ็กเกจ "cyrus-sasl *
[root@centos]# yum -y install cyrus-sasl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: repos.forethought.net
* extras: repos.dfw.quadranet.com
* updates: mirrors.tummy.com
Package cyrus-sasl-2.1.26-20.el7_2.x86_64 already installed and latest version
Nothing to do
กำหนดค่า/etc/postfix/main.cfสำหรับ SASL Auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
ตัวเลือก SASL ของฉันในmain.conf
##Configure SASL Options Entries:
smtpd_sasl_auth_enable = yes
smptd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtp_sasl_type = dovecot
smtp_sasl_path = private/auth/etc
Step 4 - กำหนดค่า FirewallD เพื่ออนุญาตบริการ SMTP ขาเข้า
[root@centos]# firewall-cmd --permanent --add-service=smtp
success
[root@centos]# firewall-cmd --reload
success
[root@centos]#
ตอนนี้เรามาตรวจสอบให้แน่ใจว่าโฮสต์ CentOS ของเราอนุญาตและตอบสนองต่อคำขอบนพอร์ต 25 (SMTP)
Nmap scan report for 172.16.223.132
Host is up (0.00035s latency).
Not shown: 993 filtered ports
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
389/tcp open ldap
443/tcp open https
MAC Address: 00:0C:29:BE:DF:5F (VMware)
อย่างที่คุณเห็น SMTP กำลังรับฟังและ daemon กำลังตอบสนองต่อคำขอจาก LAN ภายในของเรา
ติดตั้ง Dovecot IMAP และ POP3 Server
Dovecot เป็นเซิร์ฟเวอร์ IMAP และ POP3 ที่ปลอดภัยซึ่งออกแบบมาเพื่อรองรับความต้องการอีเมลขาเข้าขององค์กรขนาดเล็กไปจนถึงขนาดใหญ่ เนื่องจากการใช้งานกับ CentOS เป็นจำนวนมากเราจะใช้ Dovecot เป็นตัวอย่างในการติดตั้งและกำหนดค่าเซิร์ฟเวอร์อีเมลขาเข้าสำหรับ CentOS และ MTA SASL Provider
ตามที่ระบุไว้ก่อนหน้านี้เราจะไม่กำหนดค่าระเบียน MX สำหรับ DNS หรือสร้างกฎที่ปลอดภัยเพื่อให้บริการของเราจัดการอีเมลสำหรับโดเมน ดังนั้นการตั้งค่าบริการเหล่านี้บนโฮสต์ที่เชื่อมต่อกับอินเทอร์เน็ตอาจทำให้มีช่องว่างสำหรับช่องโหว่ด้านความปลอดภัยที่ไม่มีระเบียน SPF
Step 1 - ติดตั้ง Dovecot
[root@centos]# yum -y install dovecot
Step 2 - กำหนดค่า dovecot
แฟ้มการกำหนดค่าหลักสำหรับพิราบตั้งอยู่ที่: /etc/dovecot.conf เราจะสำรองไฟล์คอนฟิกหลักไว้ก่อน เป็นแนวทางปฏิบัติที่ดีในการสำรองไฟล์คอนฟิกูเรชันเสมอก่อนทำการแก้ไข วิธีนี้ id (เช่น) ตัวแบ่งบรรทัดจะถูกทำลายโดยโปรแกรมแก้ไขข้อความและปีของการเปลี่ยนแปลงจะหายไป การเปลี่ยนกลับเป็นเรื่องง่ายเหมือนการคัดลอกข้อมูลสำรองปัจจุบันไปยังการผลิต
เปิดใช้งานโปรโตคอลและบริการ daemon สำหรับdovecot
# Protocols we want to be serving.
protocols = imap imaps pop3 pop3s
ตอนนี้เราต้องเปิดใช้งาน dovecot daemon เพื่อฟังเมื่อเริ่มต้น -
[root@localhost]# systemctl start dovecot
[root@localhost]# systemctl enable dovecot
ตรวจสอบให้แน่ใจว่า Dovecot กำลังฟังอยู่ในพอร์ตที่ระบุสำหรับ: imap, pop3, imap ที่ปลอดภัยและ pop3 ที่ปลอดภัย
[root@localhost]# netstat -antup | grep dovecot
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4368/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 4368/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 4368/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 4368/dovecot
tcp6 0 0 :::110 :::* LISTEN 4368/dovecot
tcp6 0 0 :::143 :::* LISTEN 4368/dovecot
tcp6 0 0 :::993 :::* LISTEN 4368/dovecot
tcp6 0 0 :::995 :::* LISTEN 4368/dovecot
[root@localhost]#
อย่างที่เห็นdovecotกำลังฟังพอร์ตที่ระบุสำหรับ IPv4 และ IPv4
POP3 | 110 |
POP3s | 995 |
IMAP | 143 |
IMAP | 993 |
ตอนนี้เราต้องสร้างกฎไฟร์วอลล์บางอย่าง
[root@localhost]# firewall-cmd --permanent --add-port=110/tcp
success
[root@localhost]# firewall-cmd --permanent --add-port=143/tcp
success
[root@localhost]# firewall-cmd --permanent --add-port=995/tcp
success
[root@localhost]# firewall-cmd --permanent --add-port=993/tcp
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]#
ตัดจดหมายขาเข้าของเราคือการยอมรับการร้องขอสำหรับPOP3 , POP3S , IMAPและIMAPSไปยังโฮสต์บน LAN
Port Scanning host: 192.168.1.143
Open TCP Port: 21 ftp
Open TCP Port: 22 ssh
Open TCP Port: 25 smtp
Open TCP Port: 80 http
Open TCP Port: 110 pop3
Open TCP Port: 143 imap
Open TCP Port: 443 https
Open TCP Port: 993 imaps
Open TCP Port: 995 pop3s