
Dịch Vụ Email Relay Server — Hướng Dẫn Kỹ Thuật Cấu Hình SPF, DKIM, DMARC
Email relay server là một SMTP gateway trung gian: nhận email outbound từ mail server nội bộ hoặc ứng dụng của doanh nghiệp, xử lý xác thực, ký số và chuyển tiếp qua IP có reputation tốt đến mail server đích. Hiểu đúng cơ chế kỹ thuật giúp sysadmin cấu hình chính xác và troubleshoot hiệu quả khi có vấn đề delivery.
Tại sao email bị đánh dấu spam — phân tích kỹ thuật
Các mail server nhận (Gmail, Outlook, Yahoo) sử dụng nhiều lớp lọc để đánh giá email đến. Nguyên nhân kỹ thuật phổ biến nhất:
- SPF fail: IP gửi mail không có trong SPF record của domain — mail server nhận có thể reject hoặc đánh spam
- DKIM missing/invalid: Không có chữ ký DKIM hoặc chữ ký không match public key trong DNS
- DMARC policy: Nếu SPF và DKIM đều fail, DMARC policy quyết định email bị reject, quarantine hay delivery
- IP blacklist: IP gửi mail nằm trong các RBL như Spamhaus ZEN, Barracuda, SURBL
- Reverse DNS (PTR) không khớp: PTR record của IP không trỏ về hostname của mail server
- Spam score cao: nội dung email trigger nhiều rule của SpamAssassin hoặc filter tương đương
- Domain reputation thấp: domain mới hoặc có lịch sử gửi spam, bounce rate cao
nguồn Email Authentication Protocols in 2024: SPF, DKIM, DMARC & BIMI
Cấu trúc kỹ thuật của hệ thống email relay server
Một email relay chuẩn gồm các thành phần sau:
- MTA (Mail Transfer Agent): Postfix là lựa chọn phổ biến nhất trên Linux. Nhận email từ internal mail server qua SMTP port 25 hoặc submission port 587
- DKIM signing daemon: OpenDKIM ký số từng email outgoing trước khi chuyển tiếp
- SPF record: TXT record trên DNS khai báo IP/hostname được phép gửi mail từ domain
- DMARC record: TXT record định nghĩa policy xử lý và địa chỉ nhận aggregate report
- IP warm-up: Quá trình tăng dần volume gửi trên IP mới để build reputation với các mail provider lớn
- Bounce handling: Xử lý hard bounce và soft bounce để giữ bounce rate dưới ngưỡng an toàn
Cấu hình Postfix làm SMTP relay — từng bước
Bước 1 — Cấu hình relay trong main.cf
Trên mail server của doanh nghiệp, thêm các dòng sau vào /etc/postfix/main.cf:
relayhost = [relay.dichvuit.com.vn]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Bước 2 — Tạo file xác thực SASL
Tạo file /etc/postfix/sasl_passwd với thông tin tài khoản relay:
[relay.dichvuit.com.vn]:587 username@domain:password
Sau đó hash file và phân quyền:
postmap /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
Bước 3 — Reload và kiểm tra
systemctl reload postfix
echo ‘Test relay’ | mail -s ‘Test subject’ recipient@gmail.com
tail -f /var/log/mail.log
Trong log, kết quả thành công sẽ có dòng status=sent với relay host là relay.dichvuit.com.vn.
Cấu hình SPF record đúng chuẩn
SPF record là TXT record trên DNS. Cú pháp cơ bản:
v=spf1 include:spf.dichvuit.com.vn ~all
Giải thích từng thành phần:
- v=spf1: khai báo đây là SPF record phiên bản 1
- include:spf.dichvuit.com.vn: ủy quyền cho Dichvuit quản lý danh sách IP gửi mail
- ~all: softfail — email từ IP không được khai báo sẽ không bị reject ngay mà được đánh dấu
- Dùng -all (hardfail) khi đã chắc chắn tất cả IP gửi mail đã được khai báo đầy đủ
Lưu ý: mỗi domain chỉ được có 1 SPF record. Nếu đã có SPF record cũ, thêm include vào record hiện tại thay vì tạo record mới.
Cấu hình DKIM với OpenDKIM
Tạo keypair DKIM
mkdir -p /etc/opendkim/keys/domain.com
opendkim-genkey -s mail -d domain.com -D /etc/opendkim/keys/domain.com/
Lệnh trên tạo ra 2 file: mail.private (private key, giữ bí mật) và mail.txt (public key, thêm vào DNS).
Thêm public key vào DNS
Nội dung file mail.txt có dạng:
mail._domainkey IN TXT “v=DKIM1; k=rsa; p=MIGfMA0GCS…”
Tạo TXT record trên DNS với subdomain mail._domainkey và value là chuỗi p= trong file trên.
Kiểm tra DKIM sau khi cấu hình
opendkim-testkey -d domain.com -s mail -vvv
Kết quả hợp lệ sẽ thấy: key OK
Thiết lập DMARC — lộ trình an toàn
Không nên set DMARC policy reject ngay từ đầu. Lộ trình đúng:
- Tuần 1–4: p=none (chỉ thu thập report, không block email) — theo dõi aggregate report gửi về rua=
- Tuần 5–8: p=quarantine pct=25 (quarantine 25% email fail) — tăng dần pct lên 50, 75, 100
- Tuần 9+: p=reject khi đã chắc chắn tất cả luồng email hợp lệ đã được cấu hình SPF/DKIM
DMARC record TXT tại _dmarc.domain.com:
v=DMARC1; p=none; rua=mailto:dmarc-report@domain.com; ruf=mailto:dmarc-fail@domain.com; fo=1
Kiểm tra toàn bộ sau khi cấu hình
Dùng các tool sau để xác nhận cấu hình hoàn chỉnh trước khi đưa vào production:
- mail-tester.com: gửi email test đến địa chỉ cho sẵn, nhận điểm từ 1–10 kèm phân tích chi tiết
- com/SuperTool: kiểm tra SPF, DKIM, DMARC, PTR, blacklist của domain và IP
- com: kiểm tra DKIM signature của email thực tế
- Google Postmaster Tools: theo dõi domain reputation và IP reputation dài hạn
Câu hỏi kỹ thuật thường gặp về email relay server
SPF record có giới hạn số lượng DNS lookup không?
Có — SPF giới hạn tối đa 10 DNS lookup per evaluation. Mỗi include, a, mx, ptr đều tính 1 lookup. Nếu vượt quá 10 lookup, SPF sẽ trả về permerror và email bị xử lý như SPF fail. Dichvuit thiết kế SPF record tối ưu để không vượt giới hạn này.
DKIM key nên dùng 1024-bit hay 2048-bit?
Khuyến nghị 2048-bit từ 2023 trở đi. Gmail và một số mail provider lớn đã bắt đầu cảnh báo với key 1024-bit. Key dài hơn an toàn hơn nhưng không ảnh hưởng đến tốc độ delivery.
Postfix relay có hỗ trợ IPv6 không?
Có, nhưng khuyến nghị disable IPv6 trên relay trong giai đoạn đầu bằng cách thêm vào main.cf: inet_protocols = ipv4. Một số mail server nhận chưa xử lý tốt IPv6 reputation, gây delivery fail không đoán trước được.
Có thể relay email từ nhiều domain qua một relay server không?
Có. Mỗi domain cần có DKIM keypair riêng và SPF record riêng include cùng relay host. Cấu hình signing table trong OpenDKIM để map từng domain với keypair tương ứng.
Bounce rate bao nhiêu là nguy hiểm cho IP reputation?
Hard bounce (địa chỉ không tồn tại) trên 2% là ngưỡng nguy hiểm — nhiều mail provider sẽ bắt đầu throttle hoặc block. Soft bounce (hộp thư đầy, server tạm thời từ chối) trên 5% cũng cần điều tra. Dichvuit cung cấp bounce report hàng tuần để theo dõi sớm.
Tham khảo bảng giá dịch vụ thuê Email Relay
