接續上一篇mail server的文章
這邊要來說DKIM的設定
安裝套件同樣是第一件事情,但記得要先裝EPEL
yum install opendkim
主設定檔
# /etc/opendkim.conf Mode sv # 不要用tcp可以用unix socket # Socket local:/var/run/opendkim/socket ### 把KeyFile註解掉 #KeyFile /etc/opendkim/keys/default.private ### 把以下註解拿掉 KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts
因為這個服務僅有內部可以使用,所以要限制存取來源
這個檔案是以refile的形式讀取,意思是可以用Regex表示,例如*.example.com
# /etc/opendkim/TrustedHosts # 裡面預設是長這樣 # 沒有需求不用修改 127.0.0.1 #host.example.com #192.168.1.0/24
接著來產生Keypair
#!/bin/bash # myselector是可以自己取名的,只是所有設定當中要一致 opendkim-genkey -b 2048 -r -s myselector -d example.com -D /etc/opendkim/keys/ # -b 2048 是產出 2048 bits rsa key的意思 # 如果DNS不支援這麼長的TXT,再考慮降低成1024,但這樣有安全性風險
接著告訴opendkim哪些key是要給哪些網域用的
# /etc/opendkim/SigningTable # 可以用regex,因為剛剛設定用refile來讀取 *@example.com myselector._domainkey.example.com
# /etc/opendkim/KeyTable # myselector依照產生時的值做修改 myselector._domainkey.example.com example.com:myselector:/etc/opendkim/keys/myselector.private
如此一來,opendkim本身就設定好了
剛剛產生Keypair的時候,除了myselector.private之外,還會有一個txt檔,內容大概像這樣
# /etc/opendkim/keys/myselector.txt myselector._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ" ) ; ----- DKIM key myselector for example.com
裡頭有兩組字串,把中間兩個雙引號去掉,將兩個字串接在一起,然後把那一串新增到DNS的TXT記錄
主機名稱填「myselector._domainkey」,內容就是那一串
好了之後就可以用dig查到
#!/bin/bash dig +short myselector._domainkey.example.com TXT
最後剩下與postfix整合
# /etc/postfix/main.cf ### DKIM ### # 如果還有其他milter,用逗號隔開 # 這邊的port要和opendkim那邊一樣 smtpd_milters = inet:127.0.0.1:8891 # 用unix socket的話這樣寫 # smtpd_milters = unix:/var/run/opendkim/socket non_smtpd_milters = $smtpd_milters milter_default_action = accept milter_protocol = 2
最後重開postfix和opendkim服務就行了
留言