ตั้งค่า 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