"เรื่องใหญ่เมื่อ ISP บล็อกเครื่องเมลล์เซิร์ฟเวอร์ Zimbra Community 8.04" ก็เกิดขึ้น ครั้งนี้ผู้เขียนจะได้แนะนำวิธีป้องกันตนเองด้วยการ antispam mail จากเครื่องมือที่มีอยู่ใน Zimbra เอง เริ่มต้นด้วยการเรียกดูกว่ามีการติดตั้งการป้องกัน spam อะไรบ้าง ให้เปลี่ยนเป็นผู้ใช้ zimbra ก่อนด้วย su - zimbra
zmprov gacf | grep zimbraMtaRestriction zimbraMtaRestriction: reject_non_fqdn_hostname
ยุ่งละสิเครื่องเมลล์เราเปิดระบบป้องกันสแปมแค่ตรวจสอบว่ามีชื่อเครื่องถูกต้องเท่านั้นเองมันไม่เพียงพอที่จะไปป้องกันการถูกโจมตีจากเมลล์สแปม ลองค้นหาข้อมูลดูพบว่า zimbra ได้ให้คำแนะนำในการป้องกันตามลิงค์ที่ผู้เขียนแปะให้
http://wiki.zimbra.com/wiki/Configuring_and_Monitoring_Postfix_DNSBL
ผู้เขียนไม่รอช้าดำเนินการเปิดใช้งาน RBL เพื่อป้องกันสแปมในทันทีตามตัวอย่างข้างต้น
zmprov mcf \ zimbraMtaRestriction reject_invalid_hostname \ zimbraMtaRestriction reject_non_fqdn_hostname \ zimbraMtaRestriction reject_non_fqdn_sender \ zimbraMtaRestriction "reject_rbl_client dnsbl.njabl.org" \ zimbraMtaRestriction "reject_rbl_client cbl.abuseat.org" \ zimbraMtaRestriction "reject_rbl_client bl.spamcop.net" \ zimbraMtaRestriction "reject_rbl_client dnsbl.sorbs.net" \ zimbraMtaRestriction "reject_rbl_client sbl.spamhaus.org" \ zimbraMtaRestriction "reject_rbl_client relays.mail-abuse.org"
หากต้องการเพิ่มการป้องกันให้ใช้เครื่องหมาย + นำหน้าตามตัวอย่าง
zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"
ผู้เขียนทดลองตรวจสอบดูว่ามีการกำหนดค่าการป้องกันได้หรือยัง ผลการใส่แสดงตามตัวอย่างด้านล่าง
zmprov gacf | grep zimbraMtaRestriction zimbraMtaRestriction: reject_invalid_hostname zimbraMtaRestriction: reject_non_fqdn_hostname zimbraMtaRestriction: reject_non_fqdn_sender zimbraMtaRestriction: reject_rbl_client dnsbl.njabl.org zimbraMtaRestriction: reject_rbl_client cbl.abuseat.org zimbraMtaRestriction: reject_rbl_client bl.spamcop.net zimbraMtaRestriction: reject_rbl_client dnsbl.sorbs.net zimbraMtaRestriction: reject_rbl_client sbl.spamhaus.org zimbraMtaRestriction: reject_rbl_client relays.mail-abuse.org
จากข้อมูลของ zimbra แนะนำให้สร้างสคริปเพื่อทำการตรวจสอบว่ามีการเช็คเจอว่ามีสแปมที่ถูกบล็อกไปเท่าไร โดยการสร้างสคริป dnsblcount ตามตัวอย่าง
#!/usr/bin/perl # dnsblcount # version 20061111 # (c) 2004, 2005, 2006 Jorey Bump # Description: # Counts DNSBL rejections in Postfix log # Usage: # dnsblcount /path/to/maillog # dnsblcount /path/to/maillog1 /path/to/maillog2 # dnsblcount /path/to/maillogs* # grep "search string" /path/to/maillog | dnsblcount # Sample crontab: # 30 5 * * * /usr/local/sbin/dnsblcount /var/log/maillog | mail -s "$HOSTNAME - DNSBL Count" postmaster # Sample Postfix 1.1 log lines: # Mar 6 06:52:03 mail postfix/smtpd[11873]: reject: RCPT from unknown[208.61.231.102]: 554 Service unavailable; [208.61.231.102] blocked using bl.spamcop.net, reason: Blocked - see http://www.spamcop.net/bl.shtml?208.61.231.102; from=<bob@example.net> to=<rob@example.com> # Mar 13 05:47:51 mail postfix/smtpd[28269]: reject: RCPT from mail68.example.info[66.63.191.68]: 554 Service unavailable; [66.63.191.68] blocked using sbl.spamhaus.org, reason: http://www.spamhaus.org/SBL/sbl.lasso?query=SBL12057; from=<bob@example.net> to=<rob@example.com> # Sample Postfix 2.1 log line: # Apr 17 13:49:07 mail postfix/smtpd[18143]: NOQUEUE: reject: RCPT from c-7209e055.1111-2-64736c10.cust.bredbandsbolaget.se[85.224.9.114]: 554 Service unavailable; Client host [85.224.9.114] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?85.224.9.114; from=<haqyhakox@example.com> to=<bob@example.net> proto=ESMTP helo=<c-7209e055.1111-2-64736c10.cust.example.com> # Sample postfix 2.3 log line: # Dec 25 05:41:28 mail postfix/smtpd[14586]: NOQUEUE: reject: RCPT from unknown[202.43.175.151]: 554 5.7.1 Service unavailable; Client host [202.43.175.151] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?202.43.175.151; from=<iglkjlpioed@example.com> to=<bob@example.net> proto=SMTP helo=<mail.example.com> # Begin: use strict; my ( $dnsbl, $dnsbltotal, $ip, $length, $line, $max, %dnsblcount ); my $rule = "="; my $totstr = "Total DNSBL rejections:"; $max = length($totstr); # read line from stdin while ($line = <>) { if ($line =~ /(\[.*\]) blocked using ([^\s]*)(,|;) /) { $ip = $1; $dnsbl = $2; $dnsblcount{$dnsbl} += 1; $dnsbltotal += 1; } } foreach $dnsbl (sort keys %dnsblcount) { $length = length($dnsbl); if ( $length > $max ) { $max = $length } } foreach $dnsbl (sort { $dnsblcount{$b} <=> $dnsblcount{$a} } keys(%dnsblcount)) { printf "%-${max}s %7s\n", $dnsbl, $dnsblcount{$dnsbl}; } foreach (1..($max + 10)) { printf "%s", $rule; } print "\n"; printf "%-${max}s %8s\n", $totstr, $dnsbltotal; 1;
จากนั้นผู้เขียนทดสอบการนับจำนวนสแปมเมลล์ดูว่าพบบ้างไหม ปรากฎว่าเบื้องต้นเช็คเจอไป 14 ครั้ง
./dnsblcount /var/log/zimbra.log rbl-plus.mail-abuse.ja.net 14 ==================================== Total DNSBL rejections: 14
เป็นอันสิ้นสุดการเริ่มดำเนินการป้องกันสแปมเมลล์เบื้องต้น หากต้องการป้องกันอย่างได้ผลจริงจังคงต้องมอนิเตอร์และป้องกันอยู่เสมอ ท้ายนี้ผู้เขียนหวังเป็นอย่างยิ่งว่าข้อมูลน่าจะเป็นประโยชน์ในการนำไปป้องกันระบบเครือข่ายคอมพิวเตอร์ของตัวเองได้เป็นอย่างดี ผู้เขียนก็อยู่ในช่วงการทดสอบผลลัพธ์ดังกล่าวข้างต้น และต้องขอขอบคุณ บจก. ไทย พรอสเพอรัส ไอที ได้เอื้อเฟื้อข้อมูลพื้นที่บล็อกดีๆ มานำเสนอกัน พร้อมกับหากนึกถึงระบบ GPS TRACKING ต้องใช้บริการที่นี่ ไทย พรอสเพอรัส ไอที สินค้าดีๆ แท้ๆ วางจำหน่ายราคาประหยัด
Sign up here with your email
ConversionConversion EmoticonEmoticon