ใช้ recaptcha กรอง spam จาก bot

recaptcha v.2
recaptcha v.2

มนุษย์เราสร้างโปรแกรมดีก็เยอะ ไม่ดีก็แยะ
โปรแกรมบางตัวทำตัวเหมือนมนุษย์แบบสปาย
พอจะเปิดบริการให้ใครเข้าถึงได้ ก็ต้องกรอง
ว่าคำขอใด เป็นของมนุษย์ หรือไม่ใช่ของมนุษย์
เดี๋ยวนี้ google บริการ recaptcha
ช่วยคัดกรองความเป็นมนุษย์

http://www.thaiall.com/captcha.php
แต่โปรแกรมที่จะใช้งานก็ต้องรองรับ recaptcha
ช่วงบ่ายวันนี้ ลองใช้ recaptcha v.2 ง่ายกว่า v.1 เยอะ
ใช้เครื่องที่ทำงาน กรองได้สบาย ทั้งเขียนง่าย และง่ายผู้ใช้
แต่บางเครื่องก็มีปัญหาใช้คำสั่งที่ใคร ๆ เขาใช้ .. ก็ไม่ได้
ต้องไปหาคำสั่งอื่นมาทดแทน สรุปว่าต้องไปใช้
ฟังก์ชัน curl แทน file_get_contents
เพราะเครื่องที่จะใช้ไม่บริการฟังก์ชันนี้
ปล.เครื่องที่มีปัญหา เช่าเค้าอยู่ อยู่กันมานานล่ะ

http://www.thaiall.com/captcha_click.php

ขั้นตอน
1. เตรียม Server ที่รองรับ PHP
2. สมัครใช้ recaptcha จาก google.com
3. กำหนด host name และ domain name ที่ใช้
4. คัดลอก public & private key ไปใช้ใน code
5. เขียน code คือ form กับ verify
6. ทดสอบ และใช้งาน

รายงานความพยายามหยุดยิงเมลจาก server

14 ส.ค.53 สังเกตอาการครึ่งวันที่ผ่านมา ผลเป็นที่น่าพอใจกรณีหยุดยิงออก คือ 1) ผลการรับ และส่งระหว่าง hotmail.com และ gmail.com ได้ระดับหนึ่ง หลังย้าย smtp ของ webmail กลับมาที่เครื่อง it เพราะพบว่าเครื่อง cat ปฏิเสธให้บริการ อาจเป็นเพราะเรายิงมากไป จนเขากรองไม่ไหวเรื่อง black list (ไว้ว่ากันภาคต่อไป) สรุปว่าการติดต่อกับ gmail มีปัญหาทั้งส่งไม่ออกและรับไม่ได้ ส่วน hotmail พบว่าส่งไปหา hotmail แล้วหายไป แต่รับจาก hotmail ได้ เครื่องบริการรับส่งในเครือข่ายได้ รับจาก hotmail และที่อื่นได้ ยกเว้นที่ gmail เป็นต้น (ปัญหา hotmail กับ gmail มีแนวทางแก้ไข จะว่ากันภาำคต่อไป ถ้าเครื่องเราสะอาดแล้ว ย่อมแก้ไขได้) 2) การแก้ไขอาการส่งอีเมลจากเครื่องบริการเป็น junk ไปหาคนอื่น หรือที่เรียกว่าถูกใช้ยิงเมล ซึ่งเป็นปัญหาที่พยายามแก้มา 2 สัปดาห์หายไปแล้ว เพราะใช้ spamassassin จับ postfix ใน master.cf สำหรับขาใน คือ unix 3) การยิงผ่าน squirrelmail ถูกหยุดได้แล้ว โดยใช้ deny from 41.0.0.0/32 กับ virtual host:ssl พบว่าไม่มีการยิงผ่าน compose.php อีก ใช้วิธีการ block ผ่าน apache แทนการ upgrade application 4) สรุปว่าอาจเป็นการพักรบ .. จึงต้อง monitor กันต่อไป ว่า log ตัวใดจะแสดงอาการผิดปกติให้เห็นอีก เพราะที่สังเกตพบ ได้มาจาก maillog และ access_log และ ps -aux และ /var/mail เป็นหลัก
+ http://www.thaiall.com/isinthai

ตรวจการติด Black List หลังพบปัญหา

 

squirrel mail
squirrel mail

27 ส.ค.52 วันนี้ตรวจสอบ queue ของ smtp server พบว่ามี mail ค้างกว่าหมื่นฉบับ ตรวจพบว่าผู้ส่งคือสมาชิกในองค์กรของเรา แต่เขาไม่น่าจะเป็นผู้ส่งเมลขนาดนี้ เมื่อตรวจในรายละเอียดก็พบว่าส่งจาก squirrelmail ซึ่งเป็น webbased mail  และก็พบว่าการส่งนั้นมาจาก webbased mail ที่ถูก hack  แม้จะใช้ ssl กรองด่านแรกแล้ว แต่ spam bot ก็ยังเจาะตรงเข้าไปได้ พบว่ามี user หลายคนมีพฤติกรรมเช่นนี้ สิ่งที่เหมือนกันของผู้เป็นเหยื่อ spam bot คือกำหนดรหัสผ่านที่เหมือนกับรหัสผู้ใช้ ซึ่งเป็นข้อบกพร่องที่ผมปล่อยให้เกิดขึ้นมาหลายปี และไม่ได้กำชับให้ทุกฝ่ายเข้าใจ คาดว่า spam bot มุ่งเจาะเข้าจุดอ่อนใน squirrelmail และการกำหนดรหัสของผู้ใช้ที่หละหลวม จึงทำการแก้ไขปัญหาดังกล่าว
     เมื่อเกิดปัญหาแล้ว ก็ตามไปดูว่า ผลของปัญหาดังกล่าวมีปฏิกิริยาลูกโซ่สู่ภายนอกหรือไม่ ด้วยการตรวจว่า smtp server ตัวใหม่ของเราติด black list อีกแล้วหรือไม่ 1)ตรวจกับ spamhaus.org พบว่ามี 7 IP ที่ติดในบริการของ cat.net.th  แต่เราไม่ติดในบัญชีดำชุดนี้ 2)ตรวจกับ find-ip-address.org แล้วพบว่าเราไม่ติด 3)ตรวจกับ mxtoolbox.com ซึ่งส่ง ip ไปตรวจใน 111 เครื่องบริการ พบว่า smtp ทั้งสองเครื่องติดใน 5 เครื่องบริการคือ 3.1)sorbs.net/lookup.shtml (ขอ delist) 3.2)barracudacentral.org/rbl (remove request) 3.3)spamrats.com (Removal) 3.4)wpbl.info (Remove Record) 3.5)uceprotect.net (?)
     วิธีแก้ไข ที่ดำเนินการคือ 1)หยุดการส่ง spam จากเครื่องของเรา และตรวจสอบอยู่เสมอ 2)ขอแก้ไขกับผู้ให้บริการขึ้นบัญชี black list ทีละราย ซึ่งทำไปกับ 4 รายแล้ว 3)เปลี่ยนเครื่องบริการ smtp และต้องดูแลไม่ให้เกิดขึ้นอีก
แหล่งอ้างอิง
+ http://www.blacklistalert.org
+ http://mxtoolbox.com/blacklists.aspx
+ http://www.find-ip-address.org
+ http://www.spamhaus.org/sbl/index.lasso
+ http://whatismyipaddress.com

ปรับเครื่องบริการส่งเมลที่ใช้ postfix

8 ก.ค.52 ตรวจสอบและแก้ไขเครื่องบริการอีเมล ในหลายกรณี ดังนี้ 1)ตรวจด้วย ps -aux พบว่า apache ทำงานมากผิดปกติ เมื่อตรวจด้วย tail access_log ก็พบว่ามีเว็บเพจบาง folder ที่มีเนื้อหาเป็น reference ที่หาได้ทั่วไปในอินเทอร์เน็ต จึงหยุดให้บริการด้วยการลบออกด้วย rm -Rf 2)เมื่อตรวจว่า spamassassin กรอง mail ไม่เต็มที่ จึงเพิ่มเป็น required_score เป็น 7.5 จากเดิมคือ 5 ใน local.cf 3)ทดสอบส่งอีเมลจากภายนอกเข้า inbox ในโยนก สำหรับการรับอีเมลขาเข้า พบว่ารับได้ทั้งการส่งในโยนก ทั้งจาก hotmail.com และ gmail.com แต่ขาออกไปภายนอกยังถูกมองเป็น black list จากบางเครื่องบริการ 4)กำหนดให้ postfix มี mailbox_command เป็น procmail ตรวจรุ่นด้วย procmail -v ก็พบว่า Default rcfile มองหา $HOME/.procmailrc ถ้าต้องการให้มองหา procmailrc จากส่วนกลาง ก็ให้กำหนดเป็น /usr/bin/procmail /etc/procmailrc แต่ผลทดสอบครั้งสุดท้ายไม่เป็นไปตามที่คาดหมาย คือไม่ผ่าน procmailrc
แหล่งอ้างอิง
+ http://traxel.com/doc/spamassassin-setup.html
+ http://www.securityfocus.com/infocus/1598
+ http://www.gsp.com/cgi-bin/man.cgi?section=5&topic=procmailex
+ http://linux.duke.edu/~mstenner/docs/sa-docs/setup.html

เปลี่ยน sendmail เป็น postfix แก้ปัญหากรอง spam

6 ก.ค.52 หาข้อมูลเรื่องเครื่องบริการส่งอีเมลที่ทำตัวเป็นเครื่องแอบส่งสแปม (Spam) ตลอดเวลา ค้นมาตั้งแต่ช่วงบ่ายแก่ ๆ ว่า sendmail ที่ใช้อยู่ทำไมส่ง spam หรือ junk mail เยอะเหลือเกิน สามารถดูพฤติกรรมได้จาก #service sendmail status หรือ #ps -aux เมื่อเข้าไปหาข้อมูลในอินเทอร์เน็ตก็พบว่าผู้มีประสบการณ์หลายท่าน แนะนำให้ใช้ postfix แทน sendmail (MTA = Mail Transport Agents ) ซึ่ง fc4 ที่ใช้อยู่ก็ติดตั้งอยู่แล้ว เพียงแต่ไม่ได้เปิดบริการขึ้นมาใช้ เมื่อปิดบริการ sendmail และเปิดบริการ postfix ก็พบว่าใช้ส่งอีเมลได้ปกติ ส่วนการรับอีเมลก็ยังใช้ dovecot เหมือนเดิม หลังเปิดบริการด้วย postfix start แล้ว ได้ทดสอบ 4 กรณี คือ 1)ทดสอบส่งเข้า mail ตนเองก็ได้รับปกติ พบใน maillog เช่นเดิม 2)ทดสอบส่งเข้า gmail.com ก็พบว่าเข้า inbox ปกติ ไม่ไปกองอยู่ใน junk box เหมือนฉบับก่อน ๆ 3)ทดสอบส่งเข้า hotmail.com ไม่พบในที่ใดใด ยังหายจ้อยเหมือนเดิม เพราะต้อง clear เครื่องบริการให้เรียบร้อยก่อน จึงจะเข้าไปดำเนินกับ hotmail.com ตามที่เคยหารือกับทีมไอทีไว้ 4)ส่งจาก gmail.com หรือ hotmail.com ให้ผลเหมือนการใช้ sendmail คือ gmail.com เข้ามาบางฉบับ แต่จาก hotmail.com เข้าโยนกทุกฉบับ เมื่อทดสอบใช้ #tail /var/log/maillog ก็พบรายการ spam mail มีความพยายามใช้งานเครื่องบริการเมลเหมือนเดิม แต่ postfix/smtpd และ spamassassin ได้ปฏิเสธไปแล้ว
        การดำเนินการก็ใช้ chkconfig –list แต่ยังไม่พบ postfix ในรายการ จึงใช้ chkconfig –add postfix แล้ว chkconfig –level 3 sendmail off แล้ว chkconfig –level 3 postfix on ทำให้เปิดเครื่องทุกครั้ง postfix จะถูกเรียกมาประมวลผล เพราะ เลข 3 คือ Full multiuser mode สำหรับค่า config ที่แก้ไขใน /etc /postfix /main.cf เฉพาะที่สำคัญมี 4 ค่า คือ 1)myhostname =  hostname.domainname และ 2)mydomain = domainname และ 3)mydestination = $myhostname, $mydomain, localhost.$mydomain,  localhost และ 4)inet_interfaces = $myhostname, $mydomain, localhost ผลทดสอบหลัง postfix restart พบว่าอีเมลเข้ามาใน inbox ตามปกติ
แหล่งอ้างอิง
+ http://www.nmmm.nu/postfix.htm ***
+ http://www.akadia.com/services/postfix_mta.html
+ http://www.qmailrocks.org/remove_rh.htm
+ http://www.tuxweb.net/howto/mail/bsd/postfix-bsd4x.html