blackhole.securitysage.com is down?

ผมใช้ blackhole.securitysage.com เป็น RHSBL (right hand side blacklist)  ในการบล็อกสแปมเมล  แต่วันนี้ดูใน log file แล้วพบว่า มี error ขึ้นมา  เลยลองค้นดูในเน็ตก็พบว่า  ดูเหมือนจะมีปัญหาเกี่ยวกับ DNS    เห็นท่าจะต้องเลิกใช้ชั่วคราวก่อน

ที่มา: Status of blackhole.securitysage.com: DOWN?

Sender Policy Framework (SPF) for Virtual host

Sender Policy Framework (SPF)  เป็นวิธีการหนึ่งที่จะช่วยให้ตรวจสอบว่าอีเมลที่เราได้รับนั้น เป็นอีเมลที่มาจากโดเมนของผู้ส่งจริงหรือไม่  โดยที่ผู้ที่เป็นเจ้าของโดเมนจะต้องทำการเพิ่ม SPF record ให้กับโดเมนของตนเอง  ด้วยการระบุลงไปว่าอีเมลที่มาจากโดเมนนั้นๆ จะถูกส่งออกมาจากเซิร์ฟเวอร์เครื่องใด หมายเลข IP Address อะไรบ้าง

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

gmail_spf1.jpgผู้ให้บริการเว็บเมลเช่น Gmail ก็ได้นำวีธีการตรวจสอบ SPF ไปใช้นานแล้ว   หากคุณมี Gmail สามารถเปิดดูรายละเอียดของการตรวจสอบ SPF ได้  ด้วยการคลิกที่ปุ่ม drop down เมนูรูปสามเหลี่ยม ข้างๆ คำว่า Reply   และเลือกที่ Show original 

หลังจากนั้นจะมีหน้าต่างใหม่ซึ่งแสดงรายละเอียด header ของอีเมลฉบับนั้นว่ามีการเดินทางเมื่อไหร่อย่างไร  ส่งที่เราต้องมองหาก็คือ บรรทัดที่ขึ้นต้นด้วย “Received-SPF:

ดังเช่นตัวอย่างนี้ แสดงให้เห็นว่าเซิร์ฟเวอร์ IP address หมายเลข 203.xxx.xxx.xxx ซึ่งส่งอีเมล ภายใต้โดเมน domain.org นั้น ไม่ผ่านการตรวจสอบ เพราะโดเมนนี้ไม่ได้ระบุให้ IP address หมายเลขนี้ทำการส่งอีเมล

Received-SPF: fail (google.com: domain of username@domain.org does not designate 203.xxx.xxx.xxx as permitted sender)

ในขณะที่ตัวอย่างต่อไปนี้ แสดงให้เห็นว่าเซิร์ฟเวอร์ IP address หมายเลข 209.xxx.xxx.xxx ซึ่งส่งอีเมล ภายใต้โดเมน domain.org นั้น ผ่านการตรวจสอบ

Received-SPF: pass (google.com: domain of username@domain.org designates 209.xxx.xxx.xxx as permitted sender)

คุณสามารถอ่านรายละเอียดของ SPF ได้ที่เว็บ http://www.openspf.org/  ซึ่งมีบริการให้ตรวจสอบ SPF  record ของโดเมน  หรืออาจจะใช้บริการของไมโครซอฟท์ที่ http://www.anti-spamtools.org/ ก็ได้เช่นกัน

นอกจากนี้สามารถศึกษา SPF พร้อมตัวอย่างการกำหนด SPF record สำหรับกรณีต่างๆ ได้ที่นี่
http://www.zytrax.com/books/dns/ch9/spf.html

ในกรณีของเว็บเซิร์ฟเวอร์ซึ่งให้บริการเว็บอยู่หลายโดเมน  วิธีการตั้งค่า SPF record ที่เหมาะสมคือให้อ้างไปยัง SPF record หลักของเซิร์ฟเวอร์นั้น  เพื่อการสะดวกในการแก้ไขปรับปรุงข้อมูล เพราะอย่างไรก็ตามเซิร์ฟเวอร์นั้นก็ต้องทำหน้าที่ในการส่งอีเมลให้โดเมนต่างๆ ที่อยู่ในเครื่องนั้นอยู่แล้ว เช่น

yourdomain.com. IN  TXT   “v=spf1 include:cyberbeing.biz -all”
mydomain.com. IN  TXT   “v=spf1 include:cyberbeing.biz -all”

อย่างไรก็ตาม จากข้อมูลสถิติของ MailCleaner ได้ชี้ให้เห็นว่าการใช้ SPF นั้นอาจไม่ได้ผลกับสแปมเมลที่เป็นภาษาไทย

…จากข้อมูลสถิติในระบบ MailCleaner กลับพบว่า อีเมล์ที่ผ่านการตรวจสอบด้วย SPF กลับเป็น จดหมายขยะจำนวนมากถึง 3800 ฉบับต่อสัปดาห์ จากอีเมล์ที่ผ่านการตรวจสอบด้วย SPF จำนวน 1 แสนฉบับต่อสัปดาห์ ซึ่งเป็นอัตราที่มากพอสมควรสำหรับกฎที่มีผลถึงขนาดปฏิเสธการรับอีเมล์

สาเหตุที่เป็นเช่นนี้เพราะผู้ส่งสแปมในประเทศไทยจำนวนไม่น้อย ใช้ฟรีอีเมล์ที่มีการกำหนด SPF ในการส่งสแปม อีเมล์เหล่านี้จึงมาจากเครื่องเซิฟเวอร์ที่ถูกต้องตามหมายเลขไอพีที่ประกาศไว้ ซึ่งพฤติกรรมเช่นนี้แตกต่างกับผู้ส่งสแปมในต่างประเทศที่ใช้วิธีตั้งเมล์เซิฟเวอร์ขึ้นเองเพื่อใช้ในการส่งสแปมโดยเฉพาะ…

True Internet – Spammer ISP in Thailand

ลองดูสิครับ ผลจากการบล็อก IP ของ TRUE

Client hosts rejected 568 Time(s)
203-118-69-100.static.asianet.co.th[203.118.69.100] 2 Time(s)
203-144-187-18.static.asianet.co.th[203.144.187.18] 1 Time(s)
61-90-140-114.static.asianet.co.th[61.90.140.114] 1 Time(s)
gb.ja.238.195.revip.asianet.co.th[61.90.238.195] 6 Time(s)
ppp-124.120.0.238.revip2.asianet.co.th[124.120.0.238] 1 Time(s)
ppp-124.120.0.91.revip2.asianet.co.th[124.120.0.91] 1 Time(s)
ppp-124.120.10.155.revip2.asianet.co.th[124.120.10.155] 4 Time(s)
ppp-124.120.133.129.revip2.asianet.co.th[124.120.133.129] 15 Time(s)
ppp-124.120.161.44.revip2.asianet.co.th[124.120.161.44] 3 Time(s)
ppp-124.120.166.45.revip2.asianet.co.th[124.120.166.45] 1 Time(s)
ppp-124.120.168.126.revip2.asianet.co.th[124.120.168.126] 1 Time(s)
ppp-124.120.182.234.revip2.asianet.co.th[124.120.182.234] 1 Time(s)
ppp-124.120.182.236.revip2.asianet.co.th[124.120.182.236] 9 Time(s)
ppp-124.120.2.228.revip2.asianet.co.th[124.120.2.228] 1 Time(s)
ppp-124.120.2.5.revip2.asianet.co.th[124.120.2.5] 16 Time(s)
ppp-124.120.217.121.revip2.asianet.co.th[124.120.217.121] 2 Time(s)
ppp-124.120.225.249.revip2.asianet.co.th[124.120.225.249] 27 Time(s)
ppp-124.120.232.37.revip2.asianet.co.th[124.120.232.37] 4 Time(s)
ppp-124.120.234.233.revip2.asianet.co.th[124.120.234.233] 2 Time(s)
ppp-124.120.235.168.revip2.asianet.co.th[124.120.235.168] 3 Time(s)
ppp-124.120.244.254.revip2.asianet.co.th[124.120.244.254] 8 Time(s)
ppp-124.120.35.167.revip2.asianet.co.th[124.120.35.167] 7 Time(s)
ppp-124.120.37.69.revip2.asianet.co.th[124.120.37.69] 10 Time(s)
ppp-124.120.6.218.revip2.asianet.co.th[124.120.6.218] 4 Time(s)
ppp-124.120.72.235.revip2.asianet.co.th[124.120.72.235] 18 Time(s)
ppp-124.120.73.218.revip2.asianet.co.th[124.120.73.218] 9 Time(s)
ppp-124.120.73.43.revip2.asianet.co.th[124.120.73.43] 19 Time(s)
ppp-124.120.74.223.revip2.asianet.co.th[124.120.74.223] 9 Time(s)
ppp-124.120.8.114.revip2.asianet.co.th[124.120.8.114] 72 Time(s)
ppp-124.120.81.222.revip2.asianet.co.th[124.120.81.222] 3 Time(s)
ppp-124.120.84.194.revip2.asianet.co.th[124.120.84.194] 8 Time(s)
ppp-124.121.1.71.revip2.asianet.co.th[124.121.1.71] 1 Time(s)
ppp-124.121.105.121.revip2.asianet.co.th[124.121.105.121] 5 Time(s)
ppp-124.121.107.150.revip2.asianet.co.th[124.121.107.150] 3 Time(s)
ppp-124.121.121.236.revip2.asianet.co.th[124.121.121.236] 6 Time(s)
ppp-124.121.126.68.revip2.asianet.co.th[124.121.126.68] 2 Time(s)
ppp-124.121.136.222.revip2.asianet.co.th[124.121.136.222] 1 Time(s)
ppp-124.121.138.109.revip2.asianet.co.th[124.121.138.109] 2 Time(s)
ppp-124.121.139.81.revip2.asianet.co.th[124.121.139.81] 4 Time(s)
ppp-124.121.139.96.revip2.asianet.co.th[124.121.139.96] 17 Time(s)
ppp-124.121.140.22.revip2.asianet.co.th[124.121.140.22] 2 Time(s)
ppp-124.121.159.205.revip2.asianet.co.th[124.121.159.205] 6 Time(s)
ppp-124.121.161.143.revip2.asianet.co.th[124.121.161.143] 1 Time(s)
ppp-124.121.173.248.revip2.asianet.co.th[124.121.173.248] 1 Time(s)
ppp-124.121.174.135.revip2.asianet.co.th[124.121.174.135] 14 Time(s)
ppp-124.121.3.217.revip2.asianet.co.th[124.121.3.217] 1 Time(s)
ppp-124.121.34.236.revip2.asianet.co.th[124.121.34.236] 1 Time(s)
ppp-124.121.71.227.revip2.asianet.co.th[124.121.71.227] 2 Time(s)
ppp-124.121.72.183.revip2.asianet.co.th[124.121.72.183] 1 Time(s)
ppp-124.121.89.146.revip2.asianet.co.th[124.121.89.146] 2 Time(s)
ppp-124.121.95.207.revip2.asianet.co.th[124.121.95.207] 2 Time(s)
ppp-124.121.95.87.revip2.asianet.co.th[124.121.95.87] 6 Time(s)
ppp-58.8.102.4.revip2.asianet.co.th[58.8.102.4] 2 Time(s)
ppp-58.8.105.132.revip2.asianet.co.th[58.8.105.132] 1 Time(s)
ppp-58.8.109.33.revip2.asianet.co.th[58.8.109.33] 1 Time(s)
ppp-58.8.12.130.revip2.asianet.co.th[58.8.12.130] 5 Time(s)
ppp-58.8.120.140.revip2.asianet.co.th[58.8.120.140] 1 Time(s)
ppp-58.8.136.76.revip2.asianet.co.th[58.8.136.76] 4 Time(s)
ppp-58.8.138.198.revip2.asianet.co.th[58.8.138.198] 3 Time(s)
ppp-58.8.139.89.revip2.asianet.co.th[58.8.139.89] 9 Time(s)
ppp-58.8.141.226.revip2.asianet.co.th[58.8.141.226] 4 Time(s)
ppp-58.8.144.28.revip2.asianet.co.th[58.8.144.28] 4 Time(s)
ppp-58.8.15.188.revip2.asianet.co.th[58.8.15.188] 2 Time(s)
ppp-58.8.154.27.revip2.asianet.co.th[58.8.154.27] 3 Time(s)
ppp-58.8.168.98.revip2.asianet.co.th[58.8.168.98] 2 Time(s)
ppp-58.8.188.22.revip2.asianet.co.th[58.8.188.22] 1 Time(s)
ppp-58.8.22.149.revip2.asianet.co.th[58.8.22.149] 2 Time(s)
ppp-58.8.62.188.revip2.asianet.co.th[58.8.62.188] 1 Time(s)
ppp-58.8.70.231.revip2.asianet.co.th[58.8.70.231] 4 Time(s)
ppp-58.8.75.161.revip2.asianet.co.th[58.8.75.161] 2 Time(s)
ppp-58.8.86.74.revip2.asianet.co.th[58.8.86.74] 20 Time(s)
ppp-58.8.99.208.revip2.asianet.co.th[58.8.99.208] 2 Time(s)
ppp-58.9.123.217.revip2.asianet.co.th[58.9.123.217] 2 Time(s)
ppp-58.9.123.78.revip2.asianet.co.th[58.9.123.78] 40 Time(s)
ppp-58.9.157.104.revip2.asianet.co.th[58.9.157.104] 1 Time(s)
ppp-58.9.159.25.revip2.asianet.co.th[58.9.159.25] 2 Time(s)
ppp-58.9.183.193.revip2.asianet.co.th[58.9.183.193] 25 Time(s)
ppp-58.9.184.47.revip2.asianet.co.th[58.9.184.47] 1 Time(s)
ppp-58.9.194.139.revip2.asianet.co.th[58.9.194.139] 1 Time(s)
ppp-58.9.42.225.revip2.asianet.co.th[58.9.42.225] 22 Time(s)
ppp-58.9.44.185.revip2.asianet.co.th[58.9.44.185] 2 Time(s)
ppp-58.9.55.95.revip2.asianet.co.th[58.9.55.95] 2 Time(s)
ppp-58.9.62.27.revip2.asianet.co.th[58.9.62.27] 44 Time(s)
ppp-58.9.67.105.revip2.asianet.co.th[58.9.67.105] 5 Time(s)

Web-based Relay Checkers

Abuse.net relay testing – www.abuse.net/relay.html
Open Relay Database Test – ordb.org/submit/
Open Relay Test – members.iinet.net.au/~remmie/relay/
Anonymous Relay Test – www.antispam-ufrj.pads.ufrj.br/test-relay.html
Anonymous Relay Test – www.aupads.org/test-relay.html
Securewall Relay Testing – www.securewall.co.uk/Forms/openrelaytestform.asp – must register
Test your mail server for an open relay – www.truson.biz/services/spam_tester.php
Third Party Relay Check – www.rbl.jp/svcheck.php
Open Relay Tester – www.mob.net/~ted/tools/relaytester.php3
SpamHelp.org SMTP Open Relay Test – www.spamhelp.org/shopenrelay/

ทดสอบ relay อื่นๆ: http://spamlinks.net/prevent-secure-relay-test.htm

วิธีการบล็อก IP ของ Asianet (True Internet Co.,LTD)

เนื่องจาก True Internet ปล่อยให้มีการส่ง spam ออกมาจากเครือข่าย ซึ่งคิดเป็นประมาณ 40% ของ spam mail ที่ผมได้รับ

ผมใช้ postfix ก็เลยบล็อกโดยใช้ smtpd_client_restrictions ดังนี้

ในไฟล์ main.cf
smtpd_client_restrictions =
check_client_access hash:/etc/postfix/maps/access_client

ในไฟล์ access_client ก็ใส่
revip2.asianet.co.th REJECT
static.asianet.co.th REJECT

เท่านี้ก็จะบล็อกพวก spammer คนไทยได้ระดับหนึ่ง

Jul 17 16:39:43 hostname postfix/smtpd[16733]: NOQUEUE: reject: RCPT from ppp-124.120.132.145.revip2.asianet.co.th[124.120.132.145]: 554

: Client host rejected: Access denied; from=< seo@training.com.th> to=< abc@def.com>
update ผลการบล็อก: ภายใน 1 วัน สามารถบล็อก spam mail จาก True ได้ 460 กว่าฉบับ

ISP ของสแปมเมอร์

Spammer love True!

ตั้งแต่วันที่ 11 มิ.ย. 49 จนถึง 10 ก.ค. 49 ที่ผ่านมา ผมสามารถบล็อกสแปมเมลที่เป็นภาษาไทย ได้ประมาณ 8,989 ฉบับ เฉลี่ยแล้วตกวันละประมาณ 300 ฉบับ

เมื่อเข้าไปดูรายละเอียด พบว่ามี 3,559 ฉบับที่ส่งมาจาก IP ของ True Internet Co., Ltd. คิดเป็น 39.6% ของสแปมเมลทั้งหมด

ช่วงที่ผ่านมามีสแปมเมลตลกๆ อยู่อันหนึ่ง เขียนอะไรมาก็ไม่ทราบครับ เขียนไป….ไปด้วย…คงเป็น…แนวทาง…การเขียนสแปม…แบบใหม่…

ที่สำคัญเขาบอกว่าสแปมเมลนี้ถูกส่งอย่างอัตโนมัติโดยแม่ข่าย(SERVER) หึหึหึ … แล้วก็ถ้าจะบอกยกเลิกไม่รับอีเมลจากเขาเนี่ย ต้องส่งคำขอไปด้วยนะครับ โอ้…ตอนจะส่งมาให้เราเนี่ย ไม่ยักกะขอเราสักคำ แต่ถ้าจะให้ยกเลิกเนี่ยต้องขอเขาก่อนนะ 🙂

อ้อ มีอีกอย่างก็คือ เดี๋ยวนี้สแปมเมอร์จะลงท้ายคล้ายๆ กัน คือ กราบขออภัยที่ส่งอีเมลมารบกวน หวังว่าอีเมลนี้จะเป็นประโยชน์ต่อท่านในอนาคต และ บางทีก็ให้ช่วยส่งต่อให้ด้วย

รับจัดแสดงโชว์ มายากลคณะ “XXX” (รองแชมป์ประเทศไทยอันดับ 1 ประเภทอาชีพ)…..
มายากลคณะ “XXX”(แชมป์ประเทศไทยประเภทอาชีพ)…..
และมายากลคณะอื่นๆอีกมากกว่า 30 คณะ…..กายกรรมต่างประเทศ…..
กายกรรมจีนกังฟูโชว์….. การ์ตูนโบโซ่+ลูกโป่งแฟนซี…..สุนัขแสนรู้…..
ละครลิง…..คาบาเร่ต์…..ตลก…..มนุษย์หุ่นยนต์ (Robot)….. น้ำตาลปั้น…..
สายไหม…..ป๊อบคอน…..พริ๊ตตี้…..พิธีกร…..และอื่นๆที่เกี่ยวกับงานบันเทิง…..

ถึงแม้ว่าตอนนี้…..ท่านอาจจะยังไม่จำเป็นต้องใช้…..แต่สักวันหนึ่ง…..
หากท่าน,…..เพื่อนหรือญาติพี่น้องของท่าน….. จะจัดงานสังสรรค์…..
ที่ต้องใช้โชว์ที่กระผมมี…..ท่านจะได้ติดต่อกับกระผมได้ทันที…..
ท่านต้องได้รับการบริการ….. ด้วยนักแสดงที่มีคุณภาพ….. ประสบการณ์นักแสดงมืออาชีพ…..
บุคลิกและการแต่งตัวต้องดีเยี่ยม….. และที่สำคัญที่สุด…..ราคาต้องไม่แพง…..
(ถ้าเป็นงานการกุศลที่ทำประโยชน์ให้สังคม…..โปรดกรุณาแจ้งกระผมด้วยครับ)…..

รายละเอียดและภาพ….. คลิก…..www.mXXXXX.com…..
หรือหมายเลขโทร.0-2459-XXX…..มือถือ 0-1911-XXXX (คุณXXX)…..
ติดต่อได้ตลอด 24 ชั่วโมง…..บริการทั่วประเทศ…..

(หลักประกันกว่า 30 ปี…..ที่อยู่บนถนนสายบันเทิง…..เราได้คัดสรรสิ่งที่ดีที่สุดมาให้…..
เราพยายามเซฟค่าใช้จ่าย….. ให้ท่านมีรายจ่ายน้อยที่สุด…..
กอรปกับการที่เราบวกค่าทำงานน้อยที่สุด….. ส่งผลให้ปัจจุบัน…..
เราจึงเป็นเอเยนซี่จัดจำหน่ายโชว์…..ที่มียอดจำหน่ายสูงที่สุดในประเทศ…..)

ข้อควรระวัง…..เนื่องจากขณะนี้…..มีผู้ใช้บริการเป็นจำนวนมาก…..
ที่สั่งซื้อการแสดงจากทางอินเตอร์เน็ต….. ต้องประสบกับปัญหาการแสดง…..
ที่ติดต่อไปแล้ว…..ไม่มาตามที่ได้ตกลงกันไว้…..ปัญหาดังกล่าว…..
ได้สร้างความเสียหาย…..ให้กับผู้ใช้บริการเป็นอย่างยิ่ง…..
ขอท่านได้โปรดระมัดระวังเป็นกรณีพิเศษ….. สำหรับที่นี่…..
ได้ให้การบริการทางด้านงานบันเทิงมาแล้วกว่า 30 ปี…..
เราไม่เคยสร้างความเสียหายใดๆ….. ให้กับผู้ใช้บริการ…..จึงเรียนมาเพื่อโปรดระมัดระวังครับ…..

ขออภัย…..อีเมล์โฆษณานี้…..ถูกส่งอย่างอัตโนมัติ…..โดยแม่ข่าย (SERVER) …..
และกราบขออภัย…..หากอีเมล์โฆษณานี้รบกวนท่าน…..ต้องการยกเลิกการรับอีเมล์โฆษณา…..
กรุณาส่งคำขอมาที่…..pXXX@mXXXXX.com…..
แต่ถ้าหากเป็นประโยชน์สำหรับท่าน…..อยากจะให้ท่านบันทึกข้อความนี้…..
และบันทึกหมายเลขโทรศัพท์นี้ไว้….. สักวันหนึ่ง…..
ต้องมีประโยชน์ต่อท่านอย่างแน่นอนครับ…..กราบขอบพระคุณครับ…..

ติดตั้ง Razor สู้กับ Spam

ผมยังหาทางสู้กับ spam อยู่ครับ คราวนี้มาติดตั้ง Razor
วิธีติดตั้งอยู่ที่นี่ http://razor.sourceforge.net/docs/install.php

1. Download the latest v2 razor-agents tarball from
http://sourceforge.net/project/showfiles.php?group_id=3978

2. Download the latest v2 razor-agents-sdk tarball from
http://sourceforge.net/project/showfiles.php?group_id=3978
Untar and run:

perl Makefile.PL
make
make test
make install

If you are not root, run perl Makefile.PL with a “PREFIX=~”
option, like so:

perl Makefile.PL PREFIX=~

OR

2. Instead of installing the razor-agents-sdk package, you can install the
following Perl modules from CPAN:

Net::Ping
Net::DNS
Time::HiRes
Digest::SHA1
Getopt::Long
File::Copy
Digest::Nilsimsa
URI::Escape

If you do not install perl libs to standard places, set PERL5LIB. csh ex:

setenv PERL5LIB /home/user/myperl/lib

3. Untar the razor-agents tarball and run:

perl Makefile.PL
make
make test
make install

Note: ติดตั้งมาถึงตรงนี้แล้วมีปัญหากับ make install ครับ เกิด error ขึ้นเพราะมันหา Digest::SHA1 ไม่เจอ ทีนี้พอปล่อยไว้ปรากฎว่า default ของ SA ก็คือใช้ razor2 ซึ่งก็จะเกิด error ต่อไปนี้
razor2 check skipped: Can't locate object method "new" via package "Razor2::Client::Agent" at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/Dns.pm line 430.

วิธีแก้ก็คือ ลบไฟล์ SHA1.pm, SHA1.bs และ SHA1.so ให้หมดครับ แล้วทำการติดตั้ง Digest::SHA1 ใหม่
#perl -MCPAN -e shell
#install Digest::SHA1

เสร็จแล้วก็เริ่มทำการติดตั้ง razor-agents ใหม่อีกรอบครับ 🙂

4. Razor Agents are now installed. Run `razor-client’ after installation
to insure appropriate symlinks have been created.

5. Run `razor-admin -create’ to create a default config file in your
home directory under /home/user/.razor. (Remember to change user to
your username from root before running razor-admin)

6. Razor v2 requires reporters to be registered so their reputations can
be computed over time and they can participate in the revocation
mechanism. Registration is done with razor-admin -register. It has to be
manually invoked in either of the following ways:

To register user foo with `s1kret’ as password:

razor-admin -register -user=foo -pass=s1kr3t

To register with an email address and have the password assigned:

razor-admin -register -user=foo@bar.com

To have both (random) username and password assgined:

razor-admin -register

razor-admin -register negotiates a registration with the Nomination Server
and writes the identity information in
/home/user/.razor/identity-username, or /etc/razor/identity-username
when invoked as root.

7. You can edit razor-agent.conf to change the defaults. Config options
and their values are defined in the razor-agent.conf(5) manpage.

8. The next step is to integrate razor-check, razor-report and
razor-revoke in your mail system. If you are running Razor v1, the
change will be transparent, new versions of razor agents will overwrite
the old ones. You would still need to plugin razor-revoke in your MUA,
since it’s a new addition in Razor v2. If you are not running Razor v1,
refer to manpages of razor-check(1), razor-report(1), and
razor-revoke(1) for integration instructions.

Update: Postfix + Spamassassin + SPF + Greylist

ผม upgrade postfix ใหม่ ทีแรกนึกว่าจะยุ่งยาก แต่ก็แค่
#make
#make upgrade

ทีนี้พอลงใหม่ SPF ที่เคยติดตั้งไว้ก็อันตระธารหายไปด้วย พอดีไปเจอวิธีการติดตั้ง postfix + SpamAssassin + Procmail ที่นี่

Postfix + site-wide SpamAssassin + Procmail for individual ‘spam’ mailboxes.
(http://www.geekly.com/entries/archives/00000155.htm)
วิธีข้างล่างนี้เอามาจากเว็บข้างบนครับ ผมใส่รายละเอียดเพิ่มเติมลงไป

1. Install postfix and get it working for your domain. See http://www.postfix.org for details.

2. Install SpamAssassin. The easiest way to do this is with the command “perl -MCPAN -e ‘install Mail::SpamAssassin'”
Note:
- ต้องสั่ง #export LANG=en_US ก่อน
- ถ้ายังไม่มี CPAN ต้องสั่ง #up2date perl-CPAN

3. As root, create a file at /usr/bin/postfixfilter with the following content:

#!/bin/bash
/usr/bin/spamc | /usr/sbin/sendmail -i "$@"
exit $?

4. Run “chmod 755 /usr/bin/postfixfilter”

5. Create a user called ‘spamfilter’. Make it a complete user, with home directory and shell.

6. Run “chown spamfilter /usr/bin/postfixfilter”

7. In /etc/postfix/master.cf in the “Services” section, alter the ‘smtp’ line as follows (the ” -o con…” SHOULD be on the next line:
Note: ข้อควรระวังก็คือ ให้ระวังว่า spamfilter จะซ้ำกับ filter ที่มีแล้วหรือไม่ ถ้ามีก็ต้องเปลี่ยนเป็นชื่ออื่น เช่น spamfilter_smtp

smtp inet n - n - - smtpd
-o content_filter=spamfilter:

8. In /etc/postfix/master.cf in the “Interfaces to non-Postfix software” section add:
Note: ข้อควรระวังก็คือ ให้ระวังว่า spamfilter จะซ้ำกับ filter ที่มีแล้วหรือไม่ ถ้ามีก็ต้องเปลี่ยนเป็นชื่ออื่น เช่น spamfilter_smtp

spamfilter unix - n n - - pipe
flags=Rq user=spamfilter argv=/usr/bin/postfixfilter -f ${sender} -- ${recipient}

9. Restart postfix and make sure you can still get email. Send a fake spam through the system (from an outside address) to verify that spam is marked as spam. For information on configuring SpamAssassin, go to http://www.spamassassin.org.

10. Install ‘procmail’ if it is not already installed. To discover this try ‘which procmail’.

11. For each user who needs a ‘spam’ mailbox, follow steps 12 – 13. You can safely stop right here if you do not want any users to have their spam filtered into another mailbox.

12. Create a file in their home directory, owned by them, called ‘.procmailrc’. Enter the following into it, making sure that the locations listed are what you wish to use for mailbox location (here we are using /home/$username/mail/ as the location for mail folders:

MAILDIR=$HOME/mail
DEFAULT=$HOME/mail/Inbox
LOGFILE=$HOME/mail/proc.log

# Catch SPAM
:0
* ^X-Spam-Flag: YES
* ^X-Spam-Level: ******
spam

Explanation of the above –

MAILDIR is the location of mailbox folders
DEFAULT is the default mailbox.
“* ^X-Spam-Flag: YES” makes sure the email is marked as spam before doing anything with it.
“* ^X-Spam-Level: ******” make sure the spam received a ‘spam score’ of at least 6 before doing anything with it. This ensures that ‘borderline’ cases that are more likely to be ‘false positives’ (meaning they have been falsely marked as spam) do not go into the spam mailbox.
‘spam’ is the name of the mailbox they are going into.

13. Create a file in their home directory, owned by them, called ‘.forward’. Enter the following into it, changing ‘username’ to their username. Include the quotes and the pound (“#”) symbol!

"|IFS=' ' && exec /usr/bin/procmail || exit 75 #username"

14. As with any change made to user’s mailboxes, test!

15. Keep SpamAssassin updated with the same procedure you used to install it in #2.

หลังจากนั้นก็ติดตั้ง SPF (Sender Policy Framework) โดยอ้างอิงจากที่นี่
Filtering spam with Postfix
(http://www.freesoftwaremagazine.com/free_issues/issue_02/focus_spam_postfix/)

1. แก้ไข master.cf และเพิ่มเข้าไปดังนี้

spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /usr/local/libexec/postfix/smtpd-policy.pl

2. ไฟล์ smtpd-policy.pl เอามาจากที่นี่ http://spf.pobox.com/postfix-policyd.txt

3. ลองสั่ง perl smtpd-policy.pl อาจจะได้รับข้อความ error ถ้ายังไม่ติดตั้ง SPF::Query
Note: วิธีการติดตั้ง SPF::Query
export LANG=en_US
perl -MCPAN -e 'install Mail::SPF::Query'

4. เพิ่มคำสั่งต่อไปนี้ใน smtpd_recipient_restrictions
check_policy_service unix:private/spfpolicy

5. restart postfix แล้วก็ทดสอบ spoof email address ดูว่า SPF ทำงานหรือไม่

เท่านี้ก็เป็นอันเสร็จ 🙂

ทีนี้ผมลองมาใช้ Greylist จาก Greylisting.org ช่วยสะกัด spam mail อีกชั้นหนึ่ง (http://greylisting.org/implementations/postfix.shtml)
(http://www.postfix.org/SMTPD_POLICY_README.html#greylist)

วิธีติดตั้งก็ตามข้างล่าง

1. ก๊อปปี้ไฟล์ graylist.pl ซึ่งจะมีมาพร้อมกับ source code ของ postfix อยู่แล้ว ไปไว้ที่ /usr/libexec/postfix/
cp postfix-2.2.X/examples/smtpd-policy/greylist.pl /usr/libexec/postfix/

2. แก้ไขไฟล์ greylist.pl
$database_name="/etc/postfix/mta/greylist.db";
$greylist_delay=60;

3. สร้างไดเรกทอรี /etc/postfix/mta แล้ว chown ให้เป็นของ nobody
#mkdir /etc/postfix/mta
#chown nobody.nobody /etc/postfix/mta

4. ทดสอบดูว่า greylist.pl ทำงานได้รึเปล่า โดยใช้คำสั่ง
perl greylist.pl
Note: ถ้าไม่มี DB_File.pm ก็จะต้องทำการติดตั้งก่อน
perl -MCPAN -e 'install DB_File'

5. แก้ไขไฟล์ master.cf เพิ่มคำสั่งต่อไปนี้
greypolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /usr/libexec/postfix/greylist.pl

6. แก้ไขไฟล์ main.cf เพิ่มคำสั่งต่อไปนี้ใน smtpd_recipient_restrictions
check_policy_service unix:private/greypolicy

7.restart postfix แล้วก็ทดสอบ ดูว่า greylist ทำงานหรือไม่

*ปัญหา greylist กับ gmail.com
หลังจากทดสอบ greylist ไปได้พักหนึ่งผมก็พบว่า gmail.com ใช้ rproxy.gmail.com ซึ่งมีทั้งหมดกว่า 16 IP Address และก็จะสุ่มเปลี่ยนไปเรื่อย ทำให้มีปัญหากับ greylist ที่คอยตรวจสอบ IP Address ในฐานข้อมูลผู้ส่ง ดังนั้นก็เลยต้องให้สิทธิพิเศษ gmail สักหน่อย โดยการเพิ่มคำสั่ง check_sender_access เอาไว้ก่อน greypolicy แต่ให้อยู่หลัง spfpolicy เพื่อให้ผ่าน spfpolicy ก่อน

check_policy_service unix:private/spfpolicy,
check_sender_access hash:/etc/postfix/maps/access_sender,
check_policy_service unix:private/greypolicy

ทีนี้ในไฟล์ access_sender ก็ใส่บรรทัดนี้ลงไป
gmail.com OK

เท่านี้ก็เรียบร้อย