Hướng dẫn cấu hình SPF và DKIM cho mail server để xác thực hợp lệ tránh vào spam

Bài viết được sự cho phép của tác giả Lê Chí Dũng

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ể.

  Lấy email từ bình luận của bài viết trong Facebook
  Bí quyết phát triển hoạt động nhân sự qua email (Email Marketing) hiệu quả - Bạn đã biết?

1. Yêu cầu nền tảng:

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

spf

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:

spf

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:

  • Link kiểm tra: https://www.port25.com/authentication-checker/
  • Tạo email gửi tới: [email protected]
  • 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à DKIMSau khi cài đặt thành công

Chúc các bạn thành công nhé!

Bài viết gốc được đăng tải tại lcdung.top

Có thể bạn quan tâm:

Xem thêm Jobs Developer hấp dẫn trên TopDev