อันนี้เป็น Tips สำหรับรัน Maya ใน Linux Redhat9 ให้ได้
เนื่องจาก Maya for Linux คอมไพล์มาแบบไม่ static (จริงๆเข้าใจว่าเกือบจะ static หมดแล้ว) ขาดแค่ lib เกี่ยวกับ X บางตัวเท่านั้นเองที่เวอร์ชันผิดไปเล็กน้อย เวลารันสามารถแกได้โดยการ set environment
LD_ASSUME_KERNEL="2.2.5"
จะช่วยให้ Kernel ไม่สนใจที่จะไปหาเวอร์ชันได้
จริงๆมีออพชั่นของ kernel ที่จะบังคับให้มันเลิกสนใจเรื่องเวอร์ชันด้วยแต่ลืมไปแล้วแฮะ แต่วิธีนั้นไม่ค่อยสะดวกเท่าไหร่ รู้สึกจะ noversion อะไรซักอย่างนี่แหละ
Friday, August 27, 2004
Tuesday, August 17, 2004
MySQL join table
SELECT * from JobInfo LEFT JOIN ProcResUsage USING (ID) WHERE
ProcResUsage.hostname!='overall';เอาไว้ Join table สองอัน
Tuesday, July 27, 2004
Blocking all spam screened by spamassassin
อันนี้คือ Rules ของ Procmail สำหรับโยน SPAM ที่ Spamassassin จับได้ลงถังหมด
มีพิเศษนิดนึงคือถ้าเมล์ไม่ใช่ BAYES_99 ก็จะไม่โยนลงถังด้วย จะได้เอามาให้ Baysian learn ต่อได้
:0
* ^X-Spam-Level:.*\*\*\*\*\*.*
* B ?? BAYES_99
/dev/null
มีพิเศษนิดนึงคือถ้าเมล์ไม่ใช่ BAYES_99 ก็จะไม่โยนลงถังด้วย จะได้เอามาให้ Baysian learn ต่อได้
Friday, July 09, 2004
DVD Burning in Linux
วันก่อนได้ DVD Writer มา ว่าจะเอามาแบ็กอัพข้อมูลสำคัญจากเซอร์เวอร์ซะหน่อย ปรากฎว่า dvdrecord ที่ลงมากับ RedHat 9 ใช้ไม่ได้ครับ Invalid Argument ขึ้นแหลกเลย ก็เลยต้องไปนั่งหาว่าทำไงถึงจะเขียนได้
DVD Writer ที่ผมใช้เป็นรุ่น LG GSA-4081B ครับ ราคาไม่แพงในช่วงนั้น และยี่ห้อ LG ก็น่นาจะไว้ใจได้ (ผมใช้ LG CD Writer มาสามปีแล้วยังแทบไม่เคยเขียนพังเลย) พอได้ตัวนี้มาก็ลองเขียนด้วย Windows ดูก็โอเคครับ ถ้าใช้ Nero ก็พังทุกครั้งเลย เลยต้องใช้ B's Recorder ที่แถมมากับตัวไดรว์ก็ใช้ได้ดีครับ เขียนได้ทั้ง DVD และ CD
ปรากฎว่าพอจะใช้งานมันจริงๆ จำเป็นจะต้องก๊อปข้อมูลจาก Linux ผมก็เลยต่อเจ้า HDD ที่เก็บ Linux ไว้แล้วกะว่าจะใช้ dvdrecord เขียนซะ ก็จัดการสร้าง iso ด้วยคำสั่ง mkisofs เหมืิอนกับเวลาเขียน CD ธรรมดาๆ ปรากฎว่าพอจะ write จริงพอใช้ dvdrecord ก็ปรากฎว่ามัน invalid argument ตลอดเลย ตอนแรกก็คิดว่า dvdrecord อาจจะไม่มีไดรเวอร์หรือเปล่า คล้ายๆกับ cdrecord เลยลองเอาเวอร์ชันใหม่มาลงดูก็ยังไม่หาย สุดท้ายไปหา cdrecord-dvdhack มาลอง โอ๊ะ มี rpm ของ mandrake ด้วยแต่ผมใช้ rh9 ปรากฎว่าลงได้ซะด้วย พอลอง write ดูก็มีบอก error นิดหน่อย แต่สุดท้ายก็ write สำเร็จแต่ต้อง write แบบ Disk-At-Once โดยสั่ง
แต่ที่แปลกมากๆเลยคือมันใช้เขียน CD ไม่ได้แฮะ cdrecord อ่านขนาดของแผ่นเปล่าที่ใส่ไปผิดตลอดเลย เฮ้อ
DVD Writer ที่ผมใช้เป็นรุ่น LG GSA-4081B ครับ ราคาไม่แพงในช่วงนั้น และยี่ห้อ LG ก็น่นาจะไว้ใจได้ (ผมใช้ LG CD Writer มาสามปีแล้วยังแทบไม่เคยเขียนพังเลย) พอได้ตัวนี้มาก็ลองเขียนด้วย Windows ดูก็โอเคครับ ถ้าใช้ Nero ก็พังทุกครั้งเลย เลยต้องใช้ B's Recorder ที่แถมมากับตัวไดรว์ก็ใช้ได้ดีครับ เขียนได้ทั้ง DVD และ CD
ปรากฎว่าพอจะใช้งานมันจริงๆ จำเป็นจะต้องก๊อปข้อมูลจาก Linux ผมก็เลยต่อเจ้า HDD ที่เก็บ Linux ไว้แล้วกะว่าจะใช้ dvdrecord เขียนซะ ก็จัดการสร้าง iso ด้วยคำสั่ง mkisofs เหมืิอนกับเวลาเขียน CD ธรรมดาๆ ปรากฎว่าพอจะ write จริงพอใช้ dvdrecord ก็ปรากฎว่ามัน invalid argument ตลอดเลย ตอนแรกก็คิดว่า dvdrecord อาจจะไม่มีไดรเวอร์หรือเปล่า คล้ายๆกับ cdrecord เลยลองเอาเวอร์ชันใหม่มาลงดูก็ยังไม่หาย สุดท้ายไปหา cdrecord-dvdhack มาลอง โอ๊ะ มี rpm ของ mandrake ด้วยแต่ผมใช้ rh9 ปรากฎว่าลงได้ซะด้วย พอลอง write ดูก็มีบอก error นิดหน่อย แต่สุดท้ายก็ write สำเร็จแต่ต้อง write แบบ Disk-At-Once โดยสั่ง
cdrecord-dvdhack -eject -dao speed=2 -vv dev=0,0,0 backup.iso
แต่ที่แปลกมากๆเลยคือมันใช้เขียน CD ไม่ได้แฮะ cdrecord อ่านขนาดของแผ่นเปล่าที่ใส่ไปผิดตลอดเลย เฮ้อ
Friday, July 02, 2004
Execute command and pass its output to RPM spec's variable
กันลืมอีกแล้วครับ ทำแล้วก็ลืมทุกที
เวลาต้องการ %define ตัวแปรให้มีค่าเท่ากับผลของการ Execute คำสั่งข้างนอก ใน SPECS ไฟล์ของ RPM ต้องใส่ยังงี้
ตัวอย่างข้างบนจะแก้ /usr/lib เป็น /usr/lib64 แล้วใส่ในตัวแปร pysite_dir
เวลาต้องการ %define ตัวแปรให้มีค่าเท่ากับผลของการ Execute คำสั่งข้างนอก ใน SPECS ไฟล์ของ RPM ต้องใส่ยังงี้
%define pysite_dir %(echo %{_libdir}/@rpm_pysite_dir@ | sed "s/lib64/lib/g")
ตัวอย่างข้างบนจะแก้ /usr/lib เป็น /usr/lib64 แล้วใส่ในตัวแปร pysite_dir
Zope dtml-return
ต้องจัดไว้กันลืมซะแล้ว เคยทำแล้วลืมไปอีกแล้ว
ถ้าอยากสร้าง Folder ให้โผล่ใน Navigation bar ข้างซ้ายของ Plone แล้วกดปุ้ป Redirect ไปเวปอื่นเลย ทำได้สองวิธี
1. add DTML-Document แล้วใช้ dtml-return tag อย่างนี้
แต่แบบนี้ใช้ได้แต่กับเวปข้างในเท่านั้น
2. add Script(python) แล้วเขียนให้มัน
3. add DTML-Document แล้วใช้ dtml-call
ถ้าอยากสร้าง Folder ให้โผล่ใน Navigation bar ข้างซ้ายของ Plone แล้วกดปุ้ป Redirect ไปเวปอื่นเลย ทำได้สองวิธี
1. add DTML-Document แล้วใช้ dtml-return tag อย่างนี้
< dtml-return news >
แต่แบบนี้ใช้ได้แต่กับเวปข้างในเท่านั้น
2. add Script(python) แล้วเขียนให้มัน
RESPONSE.redirect('http://abc.def.com')
3. add DTML-Document แล้วใช้ dtml-call
<dtml-call expr="RESPONSE.redirect('http://tgcc.cpe.ku.ac.th/thaigrid-mon')">
Thursday, July 01, 2004
Creating Incremental SPAM solution with Linux
สงสัยต้องจดไว้ซะแล้วกันลืม หลังจากทำมาตั้งหลายเดือนแล้ว
เรื่องมันเริ่มจากหลายเดือนก่อน ผมเซ็งมากกับ SPAM Mail ที่มาถึงวันละร่วมๆ 25-30 เมล์ ผมก็เลยตัดสินใจจัดการกับปัญหานี้แบบถาวรซะที
เริ่มจาก Spamassassin ก่อน จริงๆแล้วเครื่องเซอร์เวอร์เมล์ที่ผมใช้ มี Spamassassin ติดตั้งอยู่แล้วและทำงานอยู่ตลอดเวลา ผมก็หาก่อนว่าเพราะเหตุใดมันถึงทำงานได้ไม่ถูกต้องขนาดนั้น สมมุติฐานแรกก็คือ Spamassassin ทำงานโดยใช้ phrase-base คือทำตามข้อความที่อยู่ในแต่ละเมล์ ว่าเป็น SPAM หรือไม่ ผมก็เข้าใจว่ามันคงต้องมีเหมือนกับว่า Update Data file เหมือนกับพวกโปรแกรมตรวจไวรัสแน่เลย ผมก็จัดการไปหา Spamassassin เวอร์ชันใหม่มาลงก่อน ปรากฎว่าก็ช่วยได้บ้างครับ ลดลงไปหลายวัน แถมลง Spamassassin-milter มาลงด้วยจะได้ทำงานเร็วๆ แต่ผ่านไปหลายวันผลก็เริ่มเหมือนเดิมครับ SPAM เยอะมาก จนมันกลับมาวันละ 30 เมล์ใหม่ผมก็ทนไม่ไหวอีก ลองไปดูซิว่ามี Update spam rules จาก spamassassin ไหม ก็ปรากฎว่าไม่มี ผมเลยตัดสินใจว่าคงต้องใช้วิธีการแบบอื่นมาแก้ไขปัญหาซะแล้ว ตอนแรกก็ลองนั่งแก้ Rules ทุกวันใน /etc/mail/spamassassin/local.cf ดู ปรากฎว่าไม่ไหวครับ SPAM Mail นี่มันพัฒนากันเป็นรายวันเลย คำแปลกๆใหม่ๆ เทคนิคพิสดารต่างๆ มาเพียบ จะเขียน Rules ให้กว้างไปก็ไม่ได้มันจับเมล์ทุกเมล์เป็น SPAM ไปซะหมด ก็เลยคิดว่าต้องหาวิธีอื่นที่เป็นวิธีใหม่เลยมาแก้ดีกว่า
วิธีการแรกที่ผมนึกได้ก็คือ Baysian จำได้ว่ามีซอฟต์แวร์ตัวนึงชื่อว่า SpamBayes ซึ่งใช้วิธีการแบบ Baysian มาช่วยวิเคราะห์หา Spam Mail แบบอัตโนมัติ แต่ก่อนที่ผมจะเข้า google หา SpamBayes ว่าเวปมันอยู่ที่ไหนนั่นเอง ผมก็เห็นว่า SpamAssassin เวอร์ชันที่ผมเอามานั้น มันสนับสนุน Baysian Algorithm อยู่ในตัวอยู่แล้ว ผมเลยลองเซ็ต Baysian สำหรรับ Spamassassin ดู
วิธีการเซ็ตก็ไม่ยากครับ ต้องมีชุดของอีเมล์ที่คิดว่าเป็น SPAM และ HAM (ไม่ใช่ SPAM) มาส่งให้คำสั่ง sa-learn ของ spamassassin เวอร์ชันใหม่นี้ เผื่อให้มันเรียนรู้ว่าเมล์ไหนเป็นเมล์ดี เมล์ไหนไม่ใช่ อันนี้ไม่ยากเลยเพราะมีเมล์ SPAM เก็บเป็นกะตั้กเลย บวกกะของเพื่อนผมอีกเป็นร้อย ทีนี้มีปัญหานิดคือโดยปกติแล้วมันจะ Learn แล้วเก็บผลลัพธ์เป็น Database ไว้ใน home directory ของ User คนนั้น นัยว่าของใครของมัน ผมอยากให้มันกลายเป็นของระบบทุกคนใช้ได้เลย ก็เลยต้องไปแก้ /etc/mail/spamassassin/local.cf นิด โดยบอกว่าให้เก็บไฟล์ไว้ตรงไหน แบบนี้
ถ้าจำไม่ผิด use_bayes นี่ไม่ต้องก็ได้ เพราะจะ Enable by default อยู่แล้ว เพียงแต่ต้อง Learn ไปขนาดนึงมันถึงจะถือว่าฉลาดพอและยอมให้ใช้งาน ส่วนกลไกการทำงานของ Baysian ก็ง่ายๆครับ ตัว Spamassassin จะไปอ่าน Database file ที่สร้างขึ้นจากการ Learn แล้วดูด้วยวิธีการของ Baysian ว่านี่เป็น SPAM หรือไม่ โดยผลลัพธ์จะเป็นความน่าจะเป็น คือจะออกมาเป็น Rules อันนึงของ Spamassassin เช่น BAYES_99 BAYES_80 BAYES_50 เป็นต้น พวกนี้เป็นชื่อ Rules ที่สามารถใช้ระบุได้ใน local.cf เหมือนกับ Rules อื่นๆ (เช่น GENERIC_VIAGRA, PENIS ต่างๆพวกนั้นน่ะครับ) ซึ่งกลไกตรงนี้ทำให้เราสามารถปรับ Score ที่ได้จาก Baysian Rules ได้ด้วย ว่าแล้วผมก็จัดการให้มันเรียนรู้จากเมล์ต่างๆที่ผมมีก่อน แล้วก็ดูผลซักสองสามวัน ดูซิว่าเป็นไงบ้าง
ปรากฎว่าเวิร์คมากครับ จาก 30 เมล์ต่อวันลดเหลือ 1-2 เมล์เท่านั้น ซึ่งผมยังใช้อยู่จนถึงปัจจุบันนี้โดยไม่ได้เปลี่ยนเวอร์ชัน spamassassin อีกเลย โดยปัจจุบัน SPAM Mail ที่ได้เฉลี่ยอยู่ราวๆวันละ 0-2 เมล์เท่านั้น โดยอาศัยการทำงนร่วมกันระหว่างการสแกนแบบ Rules base บวกกับ Baysian นี่แหละครับ ว่าแล้วผมก็เขียน procmail filter ให้ลบเมล์ที่ Baysian เห็นว่าน่าจะเป็น SPAM (ติด Rules BAYES_99) และมี score มากกว่า 5.0 (เช็คจาก X-Spam-level) ลง /dev/null ให้หมดๆไป ส่วนที่เหลือ ถึง Spamassassin จะจัดว่าเป็น Spam (score มากกว่า 5.0 อาจเป็นได้ถ้าเกิดมีคำล่อแหลมติดมาเยอะ) ผมก็จะเก็บไว้ก่อน เอาไว้ให้ Baysian learn ในภายหลัง
ทีนี้มีแถมท้ายอีกหน่อย คือผมเซ็ต Samba ให้แชร์ไดเรคทอรี่อันหนึ่งให้ใครๆก็เขียนได้ สำหรับให้ทุกๆคนเอา E-mail ที่คิดว่าเป็น SPAM มา drop ไว้ แล้วตั้ง Crontab ไว้ให้เรียก sa-learn ทุกวันแล้วลบเมล์ทิ้งออกจาก Repository ตรงนี้ซะ ก็จัดว่าสะดวกมากทีเดียว เหมือนกับระบบสแกนไวรัสแบบอัพเดทตัวเองได้ยังไงยังงั้น (จริงๆเหมือนว่า spamassassin จะ auto-learn mail ที่คิดว่าเป็น SPAM ให้อยู่แล้วด้วย แต่เพื่อความชัวร์ สอนมันวันละครั้งสองครั้งก็ไม่เสียหลาย) ถ้าจะปรับเอาไปใช้ในองค์กรก็อาจจะทำเป็นเวปฟอร์มสำหรับ Report SPAM เหมือนที่พวกเวปเมล์ส่วนใหญ่มีก็ได้
เรื่องมันเริ่มจากหลายเดือนก่อน ผมเซ็งมากกับ SPAM Mail ที่มาถึงวันละร่วมๆ 25-30 เมล์ ผมก็เลยตัดสินใจจัดการกับปัญหานี้แบบถาวรซะที
เริ่มจาก Spamassassin ก่อน จริงๆแล้วเครื่องเซอร์เวอร์เมล์ที่ผมใช้ มี Spamassassin ติดตั้งอยู่แล้วและทำงานอยู่ตลอดเวลา ผมก็หาก่อนว่าเพราะเหตุใดมันถึงทำงานได้ไม่ถูกต้องขนาดนั้น สมมุติฐานแรกก็คือ Spamassassin ทำงานโดยใช้ phrase-base คือทำตามข้อความที่อยู่ในแต่ละเมล์ ว่าเป็น SPAM หรือไม่ ผมก็เข้าใจว่ามันคงต้องมีเหมือนกับว่า Update Data file เหมือนกับพวกโปรแกรมตรวจไวรัสแน่เลย ผมก็จัดการไปหา Spamassassin เวอร์ชันใหม่มาลงก่อน ปรากฎว่าก็ช่วยได้บ้างครับ ลดลงไปหลายวัน แถมลง Spamassassin-milter มาลงด้วยจะได้ทำงานเร็วๆ แต่ผ่านไปหลายวันผลก็เริ่มเหมือนเดิมครับ SPAM เยอะมาก จนมันกลับมาวันละ 30 เมล์ใหม่ผมก็ทนไม่ไหวอีก ลองไปดูซิว่ามี Update spam rules จาก spamassassin ไหม ก็ปรากฎว่าไม่มี ผมเลยตัดสินใจว่าคงต้องใช้วิธีการแบบอื่นมาแก้ไขปัญหาซะแล้ว ตอนแรกก็ลองนั่งแก้ Rules ทุกวันใน /etc/mail/spamassassin/local.cf ดู ปรากฎว่าไม่ไหวครับ SPAM Mail นี่มันพัฒนากันเป็นรายวันเลย คำแปลกๆใหม่ๆ เทคนิคพิสดารต่างๆ มาเพียบ จะเขียน Rules ให้กว้างไปก็ไม่ได้มันจับเมล์ทุกเมล์เป็น SPAM ไปซะหมด ก็เลยคิดว่าต้องหาวิธีอื่นที่เป็นวิธีใหม่เลยมาแก้ดีกว่า
วิธีการแรกที่ผมนึกได้ก็คือ Baysian จำได้ว่ามีซอฟต์แวร์ตัวนึงชื่อว่า SpamBayes ซึ่งใช้วิธีการแบบ Baysian มาช่วยวิเคราะห์หา Spam Mail แบบอัตโนมัติ แต่ก่อนที่ผมจะเข้า google หา SpamBayes ว่าเวปมันอยู่ที่ไหนนั่นเอง ผมก็เห็นว่า SpamAssassin เวอร์ชันที่ผมเอามานั้น มันสนับสนุน Baysian Algorithm อยู่ในตัวอยู่แล้ว ผมเลยลองเซ็ต Baysian สำหรรับ Spamassassin ดู
วิธีการเซ็ตก็ไม่ยากครับ ต้องมีชุดของอีเมล์ที่คิดว่าเป็น SPAM และ HAM (ไม่ใช่ SPAM) มาส่งให้คำสั่ง sa-learn ของ spamassassin เวอร์ชันใหม่นี้ เผื่อให้มันเรียนรู้ว่าเมล์ไหนเป็นเมล์ดี เมล์ไหนไม่ใช่ อันนี้ไม่ยากเลยเพราะมีเมล์ SPAM เก็บเป็นกะตั้กเลย บวกกะของเพื่อนผมอีกเป็นร้อย ทีนี้มีปัญหานิดคือโดยปกติแล้วมันจะ Learn แล้วเก็บผลลัพธ์เป็น Database ไว้ใน home directory ของ User คนนั้น นัยว่าของใครของมัน ผมอยากให้มันกลายเป็นของระบบทุกคนใช้ได้เลย ก็เลยต้องไปแก้ /etc/mail/spamassassin/local.cf นิด โดยบอกว่าให้เก็บไฟล์ไว้ตรงไหน แบบนี้
use_bayes 1
bayes_path /var/spool/spamassassin/bayes
ถ้าจำไม่ผิด use_bayes นี่ไม่ต้องก็ได้ เพราะจะ Enable by default อยู่แล้ว เพียงแต่ต้อง Learn ไปขนาดนึงมันถึงจะถือว่าฉลาดพอและยอมให้ใช้งาน ส่วนกลไกการทำงานของ Baysian ก็ง่ายๆครับ ตัว Spamassassin จะไปอ่าน Database file ที่สร้างขึ้นจากการ Learn แล้วดูด้วยวิธีการของ Baysian ว่านี่เป็น SPAM หรือไม่ โดยผลลัพธ์จะเป็นความน่าจะเป็น คือจะออกมาเป็น Rules อันนึงของ Spamassassin เช่น BAYES_99 BAYES_80 BAYES_50 เป็นต้น พวกนี้เป็นชื่อ Rules ที่สามารถใช้ระบุได้ใน local.cf เหมือนกับ Rules อื่นๆ (เช่น GENERIC_VIAGRA, PENIS ต่างๆพวกนั้นน่ะครับ) ซึ่งกลไกตรงนี้ทำให้เราสามารถปรับ Score ที่ได้จาก Baysian Rules ได้ด้วย ว่าแล้วผมก็จัดการให้มันเรียนรู้จากเมล์ต่างๆที่ผมมีก่อน แล้วก็ดูผลซักสองสามวัน ดูซิว่าเป็นไงบ้าง
ปรากฎว่าเวิร์คมากครับ จาก 30 เมล์ต่อวันลดเหลือ 1-2 เมล์เท่านั้น ซึ่งผมยังใช้อยู่จนถึงปัจจุบันนี้โดยไม่ได้เปลี่ยนเวอร์ชัน spamassassin อีกเลย โดยปัจจุบัน SPAM Mail ที่ได้เฉลี่ยอยู่ราวๆวันละ 0-2 เมล์เท่านั้น โดยอาศัยการทำงนร่วมกันระหว่างการสแกนแบบ Rules base บวกกับ Baysian นี่แหละครับ ว่าแล้วผมก็เขียน procmail filter ให้ลบเมล์ที่ Baysian เห็นว่าน่าจะเป็น SPAM (ติด Rules BAYES_99) และมี score มากกว่า 5.0 (เช็คจาก X-Spam-level) ลง /dev/null ให้หมดๆไป ส่วนที่เหลือ ถึง Spamassassin จะจัดว่าเป็น Spam (score มากกว่า 5.0 อาจเป็นได้ถ้าเกิดมีคำล่อแหลมติดมาเยอะ) ผมก็จะเก็บไว้ก่อน เอาไว้ให้ Baysian learn ในภายหลัง
ทีนี้มีแถมท้ายอีกหน่อย คือผมเซ็ต Samba ให้แชร์ไดเรคทอรี่อันหนึ่งให้ใครๆก็เขียนได้ สำหรับให้ทุกๆคนเอา E-mail ที่คิดว่าเป็น SPAM มา drop ไว้ แล้วตั้ง Crontab ไว้ให้เรียก sa-learn ทุกวันแล้วลบเมล์ทิ้งออกจาก Repository ตรงนี้ซะ ก็จัดว่าสะดวกมากทีเดียว เหมือนกับระบบสแกนไวรัสแบบอัพเดทตัวเองได้ยังไงยังงั้น (จริงๆเหมือนว่า spamassassin จะ auto-learn mail ที่คิดว่าเป็น SPAM ให้อยู่แล้วด้วย แต่เพื่อความชัวร์ สอนมันวันละครั้งสองครั้งก็ไม่เสียหลาย) ถ้าจะปรับเอาไปใช้ในองค์กรก็อาจจะทำเป็นเวปฟอร์มสำหรับ Report SPAM เหมือนที่พวกเวปเมล์ส่วนใหญ่มีก็ได้
Monday, June 07, 2004
Installing CLAMAV + Milter to make Linux a virus-blocker
หลังจากเบื่อมานานกับปัญหาเรื่อง virus ที่มาทางเมล์วันละสามสี่ฉบับ ในที่สุดผมก็ทดลองใช้ Clamav ซะทีหลังจากที่อยากลองมานาน ในตอนแรกก็นึกว่าต้องลง Amavis แล้วให้ Clamav มันไปใช้ แต่ปรากฎว่าจริงๆแล้วมีคนเขียน Milter สำหรับ Clamav ไว้เรียบร้อยแล้ว ยิ่งไปกว่านั้น มีคนทำ RPM ไว้แล้ว ไม่ใช่ใครอื่น dag.wieers นั่นเอง (เมื่อวานทดลอง rsync list ของ package ที่ dag มากะจะทำ mirror ปรากฎว่าคำนวณขนาดแล้วเค้าเก็บ RPMs ไว้ 8TB!!! ไม่รู้จริงหรือเปล่าเนี่ยนี่เฉพาะ Fedora นะเลยต้องเลิกเลย) สำหรับขั้นตอนในการติดตั้งทั้งหมดก็คือ
1. Download rpm จาก dag.wieers.com วิธีง่ายที่สุดคือหา apt มาลง (ftp://osl.cpe.ku.ac.th/pub/freshrpms/apt/)แล้วเพิ่ม "rpm http://apt.sw.be fedora/1/en/i386 dag"(สำหรับ Fedora) ไปใน /etc/apt/sources.list แล้วค่อยสั่ง apt-get install clamav clamav-milter ทีเดียวเลย
2. เพิ่มคอนฟิกใน Sendmail ให้มาอ่าน Milter ของ Clamav โดยเพิ่มบรรทัดข้างล่างลงไปใน /etc/mail/sendmail.mc
3. make -C /etc/mail เพื่อสร้าง sendmail.cf อันใหม่
4. chkconfig clamd clamav-milter
5. service clamd start
6. service clamav-milter start
7. service sendmail restart
ทีนี้ก็ลองส่งเมล์ไวรัสมาซักอัน ถ้าสำเร็จใน /var/log/clamav/clamd.log จะโผล่มาบอกว่าเจอไวรัส แต่จะไม่มีเมล์เตือนกลับมาหาคนรับเมล์นะครับ ถ้าอยากให้มียังงั้นต้องเอา --quiet ออกจาก /etc/sysconfig/clamav-milter แล้วจะมีเมล์ส่งมาให้คนส่งกับคนรับ ว่ามี E-mail ติดไวรัส แต่คนทำ RPM แนะว่าอย่าทำงั้นเลยเพราะส่วนใหญ่คนส่งเมล์ไวรัสมักจะ fake returned-mail มา
1. Download rpm จาก dag.wieers.com วิธีง่ายที่สุดคือหา apt มาลง (ftp://osl.cpe.ku.ac.th/pub/freshrpms/apt/)แล้วเพิ่ม "rpm http://apt.sw.be fedora/1/en/i386 dag"(สำหรับ Fedora) ไปใน /etc/apt/sources.list แล้วค่อยสั่ง apt-get install clamav clamav-milter ทีเดียวเลย
2. เพิ่มคอนฟิกใน Sendmail ให้มาอ่าน Milter ของ Clamav โดยเพิ่มบรรทัดข้างล่างลงไปใน /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`clamav', `S=local:/var/clamav/clmilter.socket, F=, T=S:4m;R:4m')dnl
3. make -C /etc/mail เพื่อสร้าง sendmail.cf อันใหม่
4. chkconfig clamd clamav-milter
5. service clamd start
6. service clamav-milter start
7. service sendmail restart
ทีนี้ก็ลองส่งเมล์ไวรัสมาซักอัน ถ้าสำเร็จใน /var/log/clamav/clamd.log จะโผล่มาบอกว่าเจอไวรัส แต่จะไม่มีเมล์เตือนกลับมาหาคนรับเมล์นะครับ ถ้าอยากให้มียังงั้นต้องเอา --quiet ออกจาก /etc/sysconfig/clamav-milter แล้วจะมีเมล์ส่งมาให้คนส่งกับคนรับ ว่ามี E-mail ติดไวรัส แต่คนทำ RPM แนะว่าอย่าทำงั้นเลยเพราะส่วนใหญ่คนส่งเมล์ไวรัสมักจะ fake returned-mail มา
Subscribe to:
Posts (Atom)