Bài viết này sẽ giúp bạn cài mail server trên CentOS 7 một cách cơ bản. Ở đây chúng tôi sử dụng Postfix cho SMTP, Dovecot cho POP/ IMAP và Dovecot SASL cho SMTP AUTH. Hãy đảm bảo rằng bạn đã gán IP tĩnh cho server và có kết nối internet để cài đặt.
Nội dung
1. Cài đặt các gói
Gán tên cho server bằng cách sử dụng lệnh sau.
[root@krizna ~]# hostnamectl set-hostname mail.krizna.com
Tạo host entry bằng IP của bạn trong file /ect/hosts.
172.27.0.51 mail.krizna.com
Bây giờ hãy bắt đầu cài đặt các gói.
[root@krizna ~]# yum -y install postfix dovecot
Sau khi cài đặt xong các gói, hãy tiếp tục với việc cấu hình cho postfix để cài mail server trên CentOS 7.
2. Cấu hình Postfix
Đầu tiên tạo SSL certificate để mã hóa.
Thực hiện theo từng bước một dưới đây
[root@mail ~]# mkdir /etc/postfix/ssl
[root@mail ~]# cd /etc/postfix/ssl
[root@krizna ssl]# openssl genrsa -des3 -out server.key 2048
[root@krizna ssl]# openssl rsa -in server.key -out server.key.insecure
[root@krizna ssl]# mv server.key server.key.secure
[root@krizna ssl]# mv server.key.insecure server.key
Để trống giá trị A challenge password [] trong bước dưới đây.
[root@krizna ssl]# openssl req -new -key server.key -out server.csr
[root@krizna ssl]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Bây giờ mở file /etc/postfix/main.cf để thay đổi.
Tìm và uncomment những dòng dưới đây.
#inet_interfaces = localhost #---> line no 116
#mydestination = $myhostname, localhost.$mydomain, localhost #--> line no 164
Sau đó thêm các dòng bên dưới vào cuối file. Thay đổi giá trị myhostname và mydomain bằng giá trị của bạn. Tương tự thay home_mailbox thành directory mong muốn của bạn. Tại đây sẽ lưu trữ các mail trong home directory của người dùng.
myhostname = mail.krizna.com
mydomain = krizna.com
myorigin = $mydomain
home_mailbox = mail/
mynetworks = 127.0.0.0/8
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_key_file = /etc/postfix/ssl/server.key
smtpd_tls_cert_file = /etc/postfix/ssl/server.crt
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
Mở file /etc/postfix/master.cf, thêm dòng lệnh bên dưới sau dòng “smtp inet n – n – – smtpd“.
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
Bây giờ hãy kiểm tra cấu hình bằng lệnh postfix check.
Bây giờ hãy cấu hình Dovecot SASL cho SMTP Auth. Mở file /etc/dovecot/conf.d/10-master.conf, tìm dòng “# Postfix smtp-auth” (dòng số: 95) và thêm các dòng bên dưới.
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
Mở file /etc/dovecot/conf.d/10-auth.conf, tìm“auth_mechanisms = plain”(Dòng số: 100) và thêm login vào giá trị như bên dưới.
auth_mechanisms = plain login
Cấu hình Postfix hoàn thành. Bây giờ khởi động lại cả postfix và dovecot và bật tự động khởi động.
[root@mail ~]# systemctl restart postfix
[root@mail ~]# systemctl enable postfix
[root@mail ~]# systemctl restart dovecot
[root@mail ~]# systemctl enable dovecot
Thêm các rule tường lửa để cho phép các port 25, 587, 465.
[root@mail ~]# firewall-cmd --permanent --add-service=smtp
[root@mail ~]# firewall-cmd --permanent --add-port=587/tcp
[root@mail ~]# firewall-cmd --permanent --add-port=465/tcp
[root@mail ~]# firewall-cmd --reload
Bây giờ hãy kiểm tra kết nối của từng cổng 25,587,465 bằng telnet. Hãy đảm bảo rằng bạn nhậ được dòng AUTH PLAIN LOGIN sau khi phát lệnh ehlo mail.krizna.com trong telnet. Bước tiếp theo trong cài mail server trên CentOS 7 là cấu hình Dovecot.
[root@mail ~]# telnet mail.krizna.com 465
Trying 172.27.0.51...
Connected to mail.krizna.com.
Escape character is '^]'.
220 mail.krizna.com ESMTP Postfix
ehlo mail.krizna.com <------- Type this command 250-mail.krizna.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
3. Cấu hình Dovecot
Mở file /etc/dovecot/conf.d/10-mail.conf, tìm #mail_location = ( dòng số : 30) và thêm directory giống như home_mailbox trong file config của postfix. (Bước 5)
mail_location = maildir:~/mail
Mở file /etc/dovecot/conf.d/20-pop3.conf, tìm và uncomment bên dưới ( dòng số : 50).
pop3_uidl_format = %08Xu%08Xv
Khởi động lại dovecot.
[root@mail ~]# systemctl restart dovecot
Thêm rule tường lửa để cho phép port 110,143,993 và 995.
[root@mail ~]# firewall-cmd --permanent --add-port=110/tcp
[root@mail ~]# firewall-cmd --permanent --add-service=pop3s
[root@mail ~]# firewall-cmd --permanent --add-port=143/tcp
[root@mail ~]# firewall-cmd --permanent --add-service=imaps
[root@mail ~]# firewall-cmd --reload
Kiểm tra kết nối của các port 110,143,993 và 995 bằng telnet. Cuối cùng, hãy tạo tài khoản user để hoàn tất việc cài mail server trên CentOS 7.
4. Tạo tài khoản người dùng
Bây giờ tạo một tạo khoản để kiểm tra thử. Tạo tài khoản người dùng với /sbin/nologin shell để hạn chế quyền truy cập đăng nhập.
[root@mail ~]# useradd -m john -s /sbin/nologin
[root@mail ~]# passwd john
Mail server đã sẵn sàng, cấu hình user trong hộp thư của bạn và thử nghiệm gửi/nhận.
Như vậy là quá trình cài mail server trên CentOS 7 đã kết thúc. Chúc các bạn thành công!
Theo Krizna.