(หมายเหตุ บทความนี้เป็นบทความที่คุณปิตุรักษ์ รอดโต บริษัท dragonhighspeed ได้ส่งมาให้ผมช่วยเผยแพร่ ทาง ThaiZimbra ขอขอบคุณมา ณ.ที่นี้ครับ ผมได้แก้ใขคำผิดหรือตกหล่นนิดหน่อย โดยพยายามให้เนื้อหาคงเดิมเหมือนที่ผู้เขียนส่งมา เท่าที่อ่านดู เหมือนทางผู้เขียนอ้างอิงจากการ setup บน ubuntu และเป้นการ setup บน Zimbra version ที่ตำกว่า V8 สำหรับท่านที่ใช้ CentOS Linux และใช้ Zimbra 8 อยู่ ถ้ามีโอกาส ผมจะเขียนวิธีการติดตั้งให้ครับ ... ศิวัฒน์ )
DKIMเป็นเทคโนโลยีการตรวจสอบความถูกต้องของอีเมล์โดยจะช่วยเพิ่มประสิทธิภาพในการป้องกันอีเมล์ปลอมแปลงสแปม (Spam)และฟิชชิ่ง(Phishing)แนวทางนี้จะใช้การเข้ารหัสด้วยคีย์สาธารณะ(Public Key)เพื่อให้ผู้ใช้สามารถตรวจสอบและรักษาความครบถ้วนสมบูรณ์ของข้อความอีกทั้ง ระบุข้อความที่ถูกต้องได้อย่างชัดเจนเทคโนโลยี DKIMจะใช้Internet's Domain NameSystem (DNS) ในลักษณะเดียวกันกับDomainKeys นอกจากนั้นDKIMยังใช้ประโยชน์จากเทคโนโลยีลายเซ็นรับรองเฮดเดอร์ของIdentified InternetMail ที่จะช่วยรักษาความสม่ำเสมอของลายเซ็นในขณะที่ข้อความถูกส่งผ่านเครือข่าย
ขั้นตอนการติดตั้ง
ติดตั้ง Opendkim
ตั้งค่า DKIM และ DNS Server
Config ให้ Zimbra เรียกใช้ Opendkim
การติดตั้งOpenDKIM ในUbuntu
1) ใช้คำสั่งapt-get installopendkim
2) หลังจากInstallแล้วให้ทำการแก้ไขไฟล์/etc/opendkim.confดังนี้(ให้แทนที่yourdomain.comด้วยโดเมนของคุณและแทนที่ younetip เป็น IPของคุณ)
BaseDirectory/var/run/opendkim
Domain yourdomain.com
InternalHosts younetip,127.0.0.1
KeyFile /etc/mail/dkim/selector.private
Modesv
Selector selector
Socket inet:8891@localhost
SyslogYes
SyslogFacility mail
X-Header Yes
3) ทำการGEN KEY โดยใช้คำสั่ง
opendkim-genkey-d yourdomain.com -D /etc/mail/dkim -s selector
cd/etc/mail/dkim
chmod 440 selector.private
4) ให้ทำการrestart Opendkim
/etc/init.d/opendkimrestart
5) ตรวจสอบการทำงานของOpenDKIMถ้าทำงานแล้วจะเห็นPort 8891
netstat–nlp
ActiveInternet connections (only servers)
ProtoRecv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8891 0.0.0.0:* LISTEN 200/opendkim
6) นำค่าที่อยู่ใน/etc/mail/dkim/selector.txtไปตั้งค่าTXT ในDNS Server
cat/etc/mail/dkim/selector.txt
selector._domainkeyIN TXT "v=DKIM1; g=*; k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHGqIpEn5rfu0KdCxBU+eu21rx2IFsG4/b54yAVaATkd349rZXJhfb1xPdT83g3DfUfXzXai5Y7N2fLMZKky/fsbVaW1s7vzjONKkHjTltFFUfCK+vdH1G2NlwkxqkndRF2VTOMXrVWsFM4S0xl1RTv+xgufxqmzM+Wr4yUXcKZwIDAQAB";----- DKIM selector for yourdomain.com
โดยนำข้อความที่เป็นตัวเอียงตามตัวอย่าง ไปใส่ในDNSServer
7) การตั้งค่าในzimbra โดยตั้งค่าใน/opt/zimbra/postfix/conf/main.cf โดยเพิ่ม/แก้ไขค่าดังนี้
smtpd_milters= inet:localhost:8891
non_smtpd_milters =inet:localhost:8891
milter_default_action = accept
8) แต่เนื่องจากเป็นZimbra OpensourceเวลามีการRestart Serviceแล้วมันจะกลับเป็นค่าเดิมทุกครั้งอันนี้ผมหาวิธีแก้แต่แก้ไม่ได้เลยถ้าใครมีวิธีแก้ก็บอกหน่อยนะครับ
เอาวิธีบ้านๆไปก่อนละกัน คือการเขียนShell Script วางไว้ใน rc.local ดังนี้ผมตั้งชื่อไฟล์ว่า /etc/dkimconfig.sh
while[ 1 ]
do
perl -pi -w -e 's/smtpd_milters=/smtpd_milters=inet:127.0.0.1:8891/g;'/opt/zimbra/postfix/conf/main.cf
sleep 10
done
9) เปลี่ยนให้มันrun ได้
# chmod700 /etc/dkimconfig.sh
10) run ซ่ะ
# /etc/dkimconfig.sh &
11) แล้วเพิ่ม ให้ runทุกครั้งที่restart ใน/etc/rc.local
/etc/dkimconfig.sh &
12) ทำการRestart Service MTAหรือ RestartZimbra
ทดลองส่งไปยังGmail แล้วดูว่ามีTag DKIM หรือยังตัวอย่าง
X-DKIM:OpenDKIM Filter v2.0.2 mail.dragonzimbra.com8615027E14D7
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;d=dragonzimbra.com;
s=selector;t=1400746548;
bh=trn5eEARFFcu2CkTbXHzGj0dzTkRSClc57bK1LPK00s=;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:
Content-Transfer-Encoding;
b=KWo+8wy/C+W05Srp4BHY14ls3dUqO6QFFSMd/8nV4zBE5TWvovLAYM3aBDb9Y/w5o
Nqo4g0vPk5S/kl52kGj59ByhjbZ+xpgj7UmYgR33lmEyVDZU3cC44kcu0s67KEf6BQ
9CjbyhHdDhFD++t0YTgdLLd8wUcywmdMvdEf5NzU=
บทความโดยบริษัทดรากอนไฮสปีด www.dragonhispeed.com