"เรื่องใหญ่เมื่อ 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