Mục lục
Hiện nay một số nhà cung cấp dịch vụ mail như Gmail, Hotmail … thường kiểm tra hai bản ghi là SPF( SPF Record – Sender Policy Framework) và DKIM( DomainKeys Identified Mail) giảm bớt việc spam mail. Dù không chắc chắn 100% sau khi bạn làm đúng thì thư của bạn sẽ được các nhà cung cấp dịch vụ mail tự động lọc thư cho vào Inbox nhưng mình cùng có hướng dẫn cách để tăng khả năng tránh vào spam nhất có thể.
1. Yêu cầu nền tảng:
- Mail server đã cài đặt Postfix, Dovecot, ViMbAdmin, RoundCube thành công và hoạt động.
- Domain có thể cập nhật DNS.
2. Các bước cài đặt SPF Record và DKIM
1. Thêm SPF Record vào DNS:
- Bước 1: Vào phần quản lý DNS của Domain
- Bước 2: Thêm bản ghi mới:
- Kiểu( Record Type): TXT
- Địa chỉ( Address): v=spf1 a mx ip4:123.123.123.123 mx:example.com ?all
2. Cài đặt DKIM và thêm DNS cho DKIM
Mình đang sử dụng Centos 7 nếu sử dụng phiên bản khác thì có thể câu lệnh start hoặc restart có thể khác đôi chút nhé.
1. Đầu tiên nên cập nhật Centos mới nhất nhé
yum update
2. Do openDKIM lưu thông tin cài đặt trên gói EPEL cho nên chúng ta cần cập nhật lại gói này.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
3. Cài đặt Opendkim.
yum install -y opendkim
4. Cấu hình cho opendkim
Lưu ý là bản cài đặt DKIM mình áp dụng cho multi domain nhé nếu sử dụng 1 domain thì bỏ đi cấu hình domain thứ 2 là OK!
Cấu hình Dkim: /etc/opendkim.conf
# Lưu ý chỉ cần chỉnh sửa các dòng sau còn lại thì comment
PidFile /var/run/opendkim/opendkim.pid
Mode sv
Syslog yes
SyslogSuccess yes
LogWhy yes
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Umask 002
SendReports yes
SoftwareHeader yes
Canonicalization relaxed/simple
Domain lcdung.top
Selector default
MinimumKeyBits 1024
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
OversignHeaders From
Cấu hình KeyTable: /etc/opendkim/KeyTable
# Cấu hình cho domain mặc định sử dụng DKIM
default._domainkey.lcdung.top lcdung.top:default:/etc/opendkim/keys/default.private
# Cấu hình cho domain thứ 2 sử dụng DKIM
mail._domainkey.luxor.vn luxor.vn:mail:/etc/opendkim/keys/mail.private
Cấu hình SigningTable: /etc/opendkim/SigningTable
# Cấu hình cho domain mặc định
*@lcdung.top default._domainkey.lcdung.top
# Cấu hình cho domain thứ 2
*@luxor.vn mail._domainkey.luxor.vn
Cấu hình TrustedHosts: /etc/opendkim/TrustedHosts
127.0.0.1
::1
#host.example.com
#192.168.1.0/24
# Danh sách domain
*.lcdung.top
*.luxor.vn
Tạo khoá công khai và khoá bí mật.
# Tạo khóa mặc định dành cho domain mặc định là default.private và default.txt
opendkim-default-keygen
# Tạo khóa cho doamin thứ 2 với tên là mail.private và mail.txt
opendkim-genkey -s mail -d luxor.vn
# hoặc dùng lệnh này
opendkim-genkey -D /etc/opendkim/keys/ -d luxor.vn -s mail
Tạo quyền cho khóa để Postfix có thể truy cập đọc được
chown opendkim:opendkim mail.private
Lúc này bạn sẽ có 1 file .private và 1 file .txt. Mở file .txt để lấy thông tin khóa cấu hình trên DNS:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGXwAE5jkB63eFI4VqkmODluyTTgRe/PdnqJoD9h9kLDwY081bxATuu78NAJm8R+fJ15gMWKgkpVVXcvV5I9rosSK6wwDonStfQIgiq4nEmbSxbuGYNnbmG3R2/1q9klQ7Lih/Kpaokv+53Wv82y3qBMWbqjQIDAQAB" ) ;
Và bạn cấu hình DNS như sau:
Tiếp theo cấu hình Postfix nhận openDKIM.
File: /etc/postfix/main.cf
Thêm đoạn mã sau ở cuối file cấu hình
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2
Cuối cùng khởi động lại service Postfix và Opendkim
systemctl start opendkim;
systemctl enable opendkim;
systemctl restart postfix;
3. Kiểm tra lại SPF và DKIM:
Kiểm tra port 25 sau khi setup thành công: (Bạn có thể xem cách kiểm khác tại đây)
- Link kiểm tra: https://www.port25.com/authentication-checker/
- Tạo email gửi tới: check-auth@verifier.port25.com
- Sau đó bạn sẽ nhận 1 mail phẩn hồi thông tin port 25 cần nâng cấp thêm những gì.Trước khi cài SPF và DKIM
Sau khi cài đặt thành công
Chúc các bạn thành công nhé!