Skip to main content

Cấu hình DKIM trên Centos với Postfix

DKIM là gì ?

DKIM (Domain Keys Identified Mail) là một phương thức ký email sử dụng hai khóa: một khóa riêng tư và một khóa công khai.

DKIM được áp dụng bởi máy chủ thư của người nhận email để xác minh tính xác thực của người gửi và do đó để giảm thư rác.

Cách hoạt động của DKIM khá đơn giản:

Khi thiết lập tại máy chủ thư, chúng tôi tạo một khóa riêng và một khóa chung. Sau đó, khóa chung được sao chép vào DNS dưới dạng bản ghi TXT. 

Khóa riêng - như tên ngụ ý - nằm ở máy chủ thư trong một thư mục riêng.

Khi người dùng gửi email, thư này được ký bởi đại lý thư (tức là Postfix) theo khóa riêng. Chữ ký điện tử này được gắn vào tiêu đề của email. Cuối cùng, máy chủ của người nhận đọc chữ ký đó và so sánh nó với khóa chung (được tìm thấy DNS của tên miền). Nếu khóa và chữ ký khớp nhau, thư được coi là hợp lệ và được chuyển đến hộp thư đến của người nhận.

Trong hướng dẫn sau là 7 bước đơn giản về cách triển khai chữ ký DKIM trong máy chủ thư của bạn.

Để đơn giản hóa, giả sử rằng bạn đang chạy máy chủ thư RedHat CentOS 7, Postfix đã sẵn sàng và đang chạy, và tên miền của chúng ta là "domain.com".

Bước 1: Cài đặt OpenDKIM

yum install opendkim

Bước 2: Tạo keys

# mkdir -p /etc/opendkim/keys/domain.com
# cd /etc/opendkim/keys/domain.com
# opendkim-genkey -r -d domain.com

Bước 3: Cấp quyền cho chữ ký

# chown -R opendkim:opendkim /etc/opendkim
# chmod go-rw /etc/opendkim/keys

Bước 3: Cấu hình OpenDKIM

# vi /etc/opendkim.conf

Thay đổi các giá trị tương ứng như bên dưới

Mode sv
Socket inet:8891@localhost
Domain domain.com
#KeyFile /etc/opendkim/keys/default.private ### comment this line
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts

Cấu hình Keytable

# vi /etc/opendkim/KeyTable

Thêm vào dòng

default._domainkey.domain.com domain.com:default:/etc/opendkim/keys/domain.com/default.private

Tiếp tục với SigningTable

# vi /etc/opendkim/SigningTable

Thêm dòng

*@domain.com default._domainkey.domain.com

Cuối cùng là TrustedHosts

vi /etc/opendkim/TrustedHosts

thêm vào 

.domain.com

Bước 5: Cấu hình Postfix 

# vi /etc/postfix/main.cf

thêm vào

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Bước 6: Khởi động các service

# service opendkim start
# chkconfig opendkim on
# service postfix restart

Bước 7: Cấu hình DNS

Lấy giá trị public keys

# cat /etc/opendkim/keys/domain.com/default.txt'

default._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdTtEqM8FqndiFYOderzljMMMqBdEp+wJKP+VUbhc9GigmK34ZjrSqqdKjIEWr2q9DvSVp1H1bZs4t050m0HZxJqknDz2yoDJ6W4mCaSCHesRde5V44V/L65Gqm/rvBz1d6CCp8A2515eveWrIAocOD6pKJ4tnXHz3uwV2ZtgQiQIDAQAB" ) ; ----- DKIM key default for domain.com

 

Vào trong config DNS tạo một TXT record

Tên:

default._domainkey

Value : 

"v=DKIM1; k=rsa; s=email; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdTtEqM8FqndiFYOderzljMMMqBdEp+wJKP+VUbhc9GigmK34ZjrSqqdKjIEWr2q9DvSVp1H1bZs4t050m0HZxJqknDz2yoDJ6W4mCaSCHesRde5V44V/L65Gqm/rvBz1d6CCp8A2515eveWrIAocOD6pKJ4tnXHz3uwV2ZtgQiQIDAQAB"

Cần một chút thời gian cho DNS cập nhập

Tương tự nếu cấu hình thêm nhiều domain chỉ cần lặp lại từ bước 2 đến 7

Sau khi thực hiện xong để kiểm tra đã cập nhập DNS chưa thì dùng tool MX Toolbox

Kiễm tra email đã có chữ ký bằng cách gửi vào xem trong header

Image
Cấu hình DKIM trên Centos với Postfix - Test

Nguồn: ilusweb.com