Trong bài viết này tôi sẽ hướng dẫn các bạn tạo chứng chỉ SSL cho Mail Server nội bộ nhằm tăng tính bảo mật cho Mail Server

1. Preliminary Note

Để tạo SSL Certificate cho Mail Server bạn cần phải có Local Mail Sever bạn có thể tham khảo cách cấu hình Local Mail Server trên CentOS 6.5 theo link bên dưới

Cấu hình Local Mail Server trên CentOS 6.5

Disable SELinux

nano /etc/selinux/config
SELINUX=disabled

Tắt Firewall , vì trong mô hình Lab nên tôi sẽ tắt Firewall nếu như các bạn triển khai trên mô hình thực tế bạn nên mở các port cần thiết

service iptables stop
chkconfig iptables off

Cụ thể chúng ta sẽ mở 2 port 995 cho POP3 secure và 465 cho SMTP secure , bên cạnh đo nếu bạn dùng webmail thì mở thêm port 80

-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

2. Create SSL Certificate

cd /etc/pki/tls/certs

Tạo file server.key và đặt password

make server.key
umask 77 ; \
 /usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.....................................................................+++
......................+++
e is 65537 (0x10001)
Enter pass phrase:                             <-- your password
Verifying - Enter pass phrase:                 <-- your password

Tạo file server.csr

make server.csr
[root@server certs]# make server.csr
umask 77 ; \
 /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
Enter pass phrase for server.key:             <-- your password   
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:VN
State or Province Name (full name) []:HCM
Locality Name (eg, city) [Default City]:HCM
Organization Name (eg, company) [Default Company Ltd]:adminvietnam
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:www.adminvietnam.org
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:                <-- ENTER
An optional company name []:            <-- ENTER

Tạo ra một bộ chứng chỉ có thời hạn 10 năm

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
[root@server certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
Signature ok
subject=/C=VN/ST=HCM/L=HCM/O=adminvietnam/OU=IT/CN=www.adminvietnam.org/[email protected]
Getting Private key
Enter pass phrase for server.key:            <-- your password

Cấp quyền cho các file

cd /etc/pki/tls/certs
chmod 400 server.*

3. Configure SSL Certificate for Postfix & Dovecot

Postfix

Chỉnh sửa file main.cf , thêm các dòng sau vào cuối file

nano /etc/postfix/main.cf

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtp_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

Chỉnh sửa file master.cf

nano /etc/postfix/master.cf

Xóa # các dòng sau

# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps    inet n       -       n       -         -       smtpd
 -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Dovecot

Chỉnh sửa file 10-ssl.conf

Xóa # các dòng sau và chỉnh sửa đường dẫn đến các crt , key

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = yes

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = </etc/pki/tls/certs/server.crt 
ssl_key = </etc/pki/tls/certs/server.key 


# If key file is password protected, give the password here. Alternatively

Khởi động lại các dịch vụ

service dovecot restart
service postfix restart

4. Testing

Mở MS Outlook tại cửa sổ Add Acount , chọn Manual setup or additional server type , chọn Next

ssl-mail 1

Tiếp theo chọn POP or IMAP , chọn Next

ssl-mail 2

Tiếp theo ta điền thông tin Email và IP Mail Server , chọn More Settings

ssl-mail 4

Trong cửa sổ More Settings , ta chọn port 995 cho POP3 và 465 cho SMTP chọn OK

ssl-mail 5

bỏ chọn Automatic test account settings… , chọn Next , ta nhận được thông báo Internet Security Warning chọn YES

ssl-mail 6

Kiểm tra Email luanpm nhận mail gửi mail thành công

ssl-mail 4

LuanPM – Adminvietnam.org