Thiết lập Postfix MTA và IMAP / POP3

Để gửi email từ máy chủ CentOS 7 của chúng tôi, chúng tôi sẽ cần thiết lập để định cấu hình Tác nhân chuyển thư (MTA) hiện đại. Mail Transfer Agent là daemon chịu trách nhiệm gửi thư đi cho người dùng hệ thống hoặc Tên miền Internet công ty thông qua SMTP.

Cần lưu ý, hướng dẫn này chỉ dạy quy trình thiết lập daemon để sử dụng cục bộ. Chúng tôi không đi vào chi tiết về cấu hình nâng cao để thiết lập MTA cho hoạt động kinh doanh. Đây là sự kết hợp của nhiều kỹ năng bao gồm nhưng không giới hạn ở: DNS, lấy địa chỉ IP tĩnh không bị liệt vào danh sách đen và định cấu hình cài đặt dịch vụ và bảo mật nâng cao. Tóm lại, hướng dẫn này nhằm giúp bạn làm quen với cấu hình cơ bản. Không sử dụng hướng dẫn này cho cấu hình MTA của một máy chủ lưu trữ Internet.

Với sự tập trung kết hợp của nó vào cả bảo mật và sự dễ dàng quản lý, chúng tôi đã chọn Postfixlàm MTA cho hướng dẫn này. MTA mặc định được cài đặt trong các phiên bản CentOS cũ hơn là Sendmail .Sendmaillà một MTA tuyệt vời. Tuy nhiên, theo ý kiến ​​khiêm tốn của tác giả, Postfix đã đạt được điểm tốt khi giải quyết các lưu ý sau đây cho MTA. Với phiên bản mới nhất của CentOS, Postfix đã thay thế Sendmail làm MTA mặc định.

Postfix là một MTA được sử dụng rộng rãi và được ghi chép đầy đủ. Nó được duy trì và phát triển một cách tích cực. Nó yêu cầu cấu hình tối thiểu (đây chỉ là email) và hiệu quả với tài nguyên hệ thống (một lần nữa, đây chỉ là email).

Step 1 - Cài đặt Postfix từ Trình quản lý gói YUM.

[root@centos]# yum -y install postfix

Step 2 - Cấu hình tệp cấu hình Postfix.

Tệp cấu hình Postfix nằm trong: /etc/postfix/main.cf

Trong cấu hình Postfix đơn giản, những điều sau đây phải được định cấu hình cho một máy chủ cụ thể: tên máy chủ, miền, nguồn gốc, inet_interfaces và đích.

Configure the hostname- Tên máy chủ lưu trữ là tên miền đủ điều kiện của máy chủ lưu trữ Postfix. Trong chương OpenLDAP, chúng tôi đã đặt tên cho hộp CentOS: centos trên miền vmnet.local . Hãy gắn bó với điều đó cho chương này.

# 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- Như đã nêu ở trên, miền chúng tôi sẽ sử dụng trong hướng dẫn này là 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 - Đối với một máy chủ và tên miền được thiết lập, chúng ta chỉ cần bỏ ghi chú các phần sau và để các biến Postfix mặc định.

# 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- Chúng tôi sẽ để Postfix lắng nghe trên giao diện mạng duy nhất của chúng tôi và tất cả các giao thức và Địa chỉ IP được liên kết với giao diện đó. Điều này được thực hiện bằng cách chỉ cần bật cài đặt mặc định cho 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 - Định cấu hình Hỗ trợ SASL cho Postfix.

Nếu không có hỗ trợ Xác thực SASL, Postfix sẽ chỉ cho phép gửi email từ người dùng cục bộ. Hoặc nó sẽ đưa ra lỗi bị từ chối chuyển tiếp khi người dùng gửi email từ miền cục bộ.

Note - SASL hoặc là Simple Application Security Layer Frameworklà một khuôn khổ được thiết kế để xác thực hỗ trợ các kỹ thuật khác nhau giữa các giao thức Lớp ứng dụng khác nhau. Thay vì để cơ chế xác thực cho giao thức lớp ứng dụng, các nhà phát triển SASL (và người tiêu dùng) tận dụng các giao thức xác thực hiện tại cho các giao thức cấp cao hơn có thể không có sự thuận tiện hoặc xác thực an toàn hơn (khi nói về quyền truy cập vào các dịch vụ bảo mật) được tích hợp sẵn.

Cài đặt gói "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

Định cấu hình /etc/postfix/main.cf cho 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

Tùy chọn SASL của tôi trong 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 - Cấu hình FirewallD để cho phép các Dịch vụ SMTP đến.

[root@centos]# firewall-cmd --permanent --add-service=smtp 
success

[root@centos]# firewall-cmd --reload 
success

[root@centos]#

Bây giờ, hãy kiểm tra để đảm bảo máy chủ CentOS của chúng tôi đang cho phép và phản hồi các yêu cầu trên cổng 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)

Như bạn có thể thấy, SMTP đang lắng nghe và daemon đang phản hồi các yêu cầu từ mạng LAN nội bộ của chúng tôi.

Cài đặt Dovecot IMAP và Máy chủ POP3

Dovecot là một IMAP an toàn và Máy chủ POP3 được thiết kế để xử lý các nhu cầu thư đến của một tổ chức nhỏ hơn đến lớn hơn. Do được sử dụng nhiều với CentOS, chúng tôi sẽ sử dụng Dovecot làm ví dụ về cài đặt và định cấu hình máy chủ thư đến cho CentOS và MTA SASL Provider.

Như đã lưu ý trước đây, chúng tôi sẽ không định cấu hình bản ghi MX cho DNS hoặc tạo các quy tắc bảo mật cho phép các dịch vụ của chúng tôi xử lý thư cho một miền. Do đó, chỉ cần thiết lập các dịch vụ này trên một máy chủ lưu trữ Internet có thể tạo ra đòn bẩy cho các lỗ hổng bảo mật với Bản ghi SPF.

Step 1 - Cài đặt Dovecot.

[root@centos]# yum -y install dovecot

Step 2 - Cấu hình chim bồ câu.

Tệp cấu hình chính cho dovecot có tại: /etc/dovecot.conf . Đầu tiên chúng tôi sẽ sao lưu tệp cấu hình chính. Một thực tiễn tốt là luôn sao lưu các tệp cấu hình trước khi thực hiện chỉnh sửa. Bằng cách này, ngắt dòng id (ví dụ) sẽ bị hủy bởi trình soạn thảo văn bản và các năm thay đổi sẽ bị mất. Hoàn nguyên dễ dàng như sao chép bản sao lưu hiện tại vào sản xuất.

Bật giao thức và dịch vụ daemon cho dovecot

# Protocols we want to be serving. 
protocols = imap imaps pop3 pop3s

Bây giờ, chúng ta cần kích hoạt dovecot daemon để lắng nghe khi khởi động -

[root@localhost]# systemctl start  dovecot 
[root@localhost]# systemctl enable dovecot

Hãy đảm bảo Dovecot đang lắng nghe cục bộ trên các cổng được chỉ định cho: imap, pop3, imap secure và pop3 secure.

[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]#

Như đã thấy, dovecot đang lắng nghe trên các cổng được chỉ định cho IPv4 và IPv4.

POP3 110
POP3s 995
IMAP 143
IMAP 993

Bây giờ, chúng ta cần thực hiện một số quy tắc tường lửa.

[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]#

Máy chủ thư đến của chúng tôi đang chấp nhận yêu cầu POP3 , POP3s , IMAPIMAP cho các máy chủ trên mạng 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