ตัวอย่างการติดตั้ง Open Webmail บน Fedora Core 4

โดย อดิศร  ขาวสังข์
เขียนเมื่อ 25/12/2548

บทนำ

Open Webmail เป็น Web-based Email ที่ใช้ภาษา Perl ถึงแม้ว่าอาจจะทำงานได้ช้ากว่า Squirrelmail ที่ใช้ภาษา PHP แต่สิ่งที่น่าสนใจคือหน้าตาเว็บเมล์ของ Open Webmail มีความสวยงามและไม่ค่อยจะมีปัญหาเรื่องฟอนต์และภาษา นอกจากนั้นยังมีความสามารถหลายอย่างเช่น WebDisk ที่ user สามารถ Upload ไฟล์จากเครื่องของตัวเองไปยัง home directory บน Server ได้ สามารถเปลี่ยนรหัสผ่านของระบบได้โดยไม่ต้องติดตั้ง Plugins เป็นต้น

เตรียมตัวก่อนติดตั้ง

  1. เครื่อง Server ที่จะติดตั้งต้องมีการติดตั้งโปรแกรม Mail Server ไว้ก่อนแล้วซึ่งในที่นี้ใช้ Sendmail และควรจะคอนฟิก Sendmail ไว้เรียบร้อยแล้วด้วย
  2. ในกรณีที่จะใช้งานจริงเป็นของโดเมนใด ๆ ก็ต้องมีการเพิ่มชื่อ Host และ MX Record ที่ตัว DNS Server ประจำโดเมนไว้แล้วด้วย
  3. ต้องมีการติดตั้ง Web Server เช่น Apache ไว้แล้ว

ขั้นตอนการติดตั้ง

  1. ทำการดาวน์โหลดโปรแกรม ซึ่งถ้าอ่านคำแนะนำใน README (http://www.openwebmail.org/openwebmail/doc/readme.txt) ของ Open Webmail แล้วจะมีบอกว่าต้องมีการติดตั้งโปรแกรม (Required) ประมาณ 6-7 โปรแกรมและรวมกับโปรแกรม Open Webmail อีก 1 ตัว แต่บน FC4 จากที่ผู้เขียนได้ทดลองติดตั้งปรากฎว่าโปรแกรมที่จำเป็นต้องใช้ (Required) มีแค่ 4 โปรแกรมเท่านั้นดังนี้ :
    - ให้ทำการดาวน์โหลดโปรแกรม Open Webmail สำหรับ RedHat แบบ rpm (daily-build) จาก http://www.openwebmail.org/openwebmail/download/redhat/rpm/daily-build/ ดังรูป



    - ให้ทำการดาวน์โหลดโปรแกรมประกอบแบบ rpm สำหรับ FC4 อีก 3 โปรแกรมคือ perl-Compress-Zlib , perl-Text-Iconv และ perl-suidperl จาก http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/fc4/ ดังรูป



  2. ทำการติดตั้งโปรแกรมทั้ง 4 ด้วยคำสั่ง rpm ตามรูป โดยโปรแกรมที่ได้มีการติดตั้งไว้แล้วก็จะมีข้อความบอกมา ก็ไม่ต้องทำอะไร



  3. ลองเรียกใช้งานผ่านเว็บตาม url ที่ได้แนะนำไว้จากขั้นตอนการติดตั้ง openwebmail ซึ่ง Server ของผู้เขียนได้เซ็ตค่าที่ DNS Server เอาไว้เป็น mail.itwizard.info ลองเรียกใช้งานแล้วจะเป็นดังรูป



  4. จากรูปข้างบนก็ให้ทำตามคำแนะนำคือให้ execute ไฟล์ var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init ดังนี้



  5. จากคำแนะนำในรูปข้างบนบอกว่าให้ทำการเปลี่ยนข้อความในไฟล์ /var/www/cgi-bin/openwebmail/etc/dbm.conf แต่ไฟล์นี้้ยังไม่มีในไดเร็คทอรี่ /var/www/cgi-bin/openwebmail/etc/ แต่จะอยู่ในไดเร็คทอรี่ /var/www/cgi-bin/openwebmail/etc/defaults ดังนั้นให้ทำการ copy ไฟล์ดังกล่าวจากไดเร็คทอรี่ defaults ไปไว้ที่ etc ก่อน ดังรูป



  6. ให้ทำการแก้ไขไฟล์ดังกล่าวตามคำแนะนำแล้วทำการ initial อีกครั้งด้วยคำว่า var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init ดังรูป



  7. หลังจากนั้นโปรแกรมจะให้ืยืีนยันการส่ง short message ไปยังผู้พัฒนาด้วยการตอบ y หรือถ้าไม่ต้องการส่งก็ให้ตอบ n แล้วก็มาลองเรียกใช้งาน webmail ของเราอีกครั้งจะได้ดังรูป



  8. และเมื่อทำการป้อน user และ password ก็สามารถใช้งานได้ดังรูปต่อไป



  9. จากนั้นลองส่งเมล์ไปยัง Yahoo พร้อมการแนบไฟล์ดูดังรูป



  10. เมื่อเปิดอ่านเมล์ที่ Yahoo ดูปรากฎว่ามีเมล์ใหม่เข้ามานั่นหมายถึงสามารถส่งเมล์ได้แล้ว แต่ที่ช่อง From ยังมีส่วนของชื่อ host อยู่ั้นั่นคือ ksorn@mail.itwizard.info ซึ่งจริง ๆ ต้องเป็น ksorn@itwizard.info ดังรูป



  11. วิีธีการแก้ก็ให้ทำการเปิดไฟล์ /var/www/cgi-bin/openwebmail/etc/openwebmail.conf แล้วแก้ไขค่า domainnames จากเดิมค่าเป็น auto ให้เป็นค่า domainname ที่ต้องการ ดังรูป



  12. หลังจากนั้นก็ทดลองส่งเมล์ไปยัง Yahoo อีกครั้งปรากฎว่าเมื่อรับเมล์ชื่อของโดเมนเปลี่ยนไปตามที่ได้แก้ไขแล้วดังรูป



  13. ต่อไปก็ทดลองส่งเมล์จาก Yahoo นะครับว่าส่งได้หรือเปล่า ซึ่งในที่นี้ทดลองส่งตามรูป



  14. ซึ่งถ้าได้คอนฟิกโปรแกรม Sendmail หรือโปรแกรมเมล์ตัวอื่นไว้เรียบร้อยก็จะต้องรับเมล์ได้ โดยตัวอย่างการคอนฟิก Sendmail ผู้เขียนได้เขียนบทความไว้บ้างแล้วในเ็ว็บนี้ลองหาดูนะครับ สำหรับคนที่รับเมล์ไม่ได้ก็ให้ทำดังนี้ครับ :
    1. ให้เพิ่มชื่อของโดเมนที่ใช้ในการรับเมล์เข้าไปในไฟล์ /etc/mail/local-host-names ดังรูป



    2. ให้แก้ไขข้อความในไฟล์ /etc/mail/sendmail.mc ในบรรทัด DAEMON_OPTIONS โดยให้แก้ค่า Addr จาก 127.0.0.1 เป็น 0.0.0.0 เพื่อให้ใครก็ได้สามารถส่งเมล์เข้ามาได้ดังรูป



    3. จากนั้นให้รันคำสั่ง make -C /etc/mail และคำสั่ง service sendmail restart ดังรูป



  15. และก็จะสามารถรับเมล์จาก Yahoo ได้ดังรูป



  16. และเมื่อทุกอย่าง OK แล้วในการใช้งานผู้ใช้สามารถปรับแต่งหน้าตา Web mail ของตัวเองตามรูปแบบต่าง ๆ ที่มีให้เลือกได้ ซึ่งแน่นอนว่าจะต้องสวยกว่า Squirrelmail แน่นอน ดังตัวอย่างในรูปครับ

ปรับแต่งเพิ่มเิติมเพื่อให้สะดวกมากขึ้น

เนื่องจากการเีรียกใช้งาน Open Webmail ต้องเรียกชื่อค่อนข้างยาวเช่น http://mail.itwizard.info/cgi-bin/openwebmail/openwebmail.pl ซึ่งคงไม่สะดวกสำหรับผู้ใช้แน่นอน ซึ่งสำหรับผู้เขียนเองใช้วิธีการ Redirect นั่นคือเมื่อเรียกไปที่ http://mail.itwizard.info ตัว Apache Web Server ก็จะไปเรียกไฟล์ที่เป็นอินเด็กซ์ ซึ่งอาจจะเป็น index.html ฉะนั้นให้เราสร้าง redirect code ไว้ในไฟล์นี้ซึ่ง code ที่ผู้เขียนใช้จะเป็นดังนี้

<html>
<head><meta http-equiv="Refresh" content="0;URL=https://mail.itwizard.info/cgi-bin/openwebmail/openwebmail.pl">
</head>
<body onload="window.open('https://mail.itwizard.info/cgi-bin/openwebmail/openwebmail.pl','_top')">
</body>
</html>


จากโค้ดข้างบนจะเห็นว่าการ redirect จะเีปลี่ยนไปใ้ช้โปรโตคอล https เพื่อเพิ่มความปลอดภัยให้กัุบระบบมากขึ้นซึ่งโดยปกติแล้ว Apache Web Server จะสนับสนุน https อยู่แล้ว

แ่ต่ในกรณีที่ Server มีหลายชื่อ host อยู่บนเครื่องเดียวกัน แบบนี้ก็ต้องมีการสร้าง virtual host ที่ Apache ซึ่งในที่นี้ของผู้เเขียนมีื่ชื่อ Host สองชื่ออยู่บนเครื่องที่ IP เป็น 202.129.16.27 คือ sorn.itwizard.info กับ mail.itwizard.info ซึ่งเราสามารถสร้าง virtual host เพื่อรองรับสองชื่อ host ได้ดังนี้

NameVirtualHost 202.129.16.27:80
<VirtualHost 202.129.16.27:80>
ServerAdmin ksorn@south.cattelecom.com
ServerName mail.itwizard.info
DocumentRoot /var/www/cgi-bin/openwebmail/
</VirtualHost>

<VirtualHost 202.129.16.27:80>
ServerAdmin ksorn@south.cattelecom.com
ServerName sorn.itwizard.info
DocumentRoot /var/www/html/
</VirtualHost>

นั่นคือเมื่อมีการเรียกใช้งาน http://mail.itwizard.info ก็จะเข้าไปใช้บริการไฟล์ที่ /var/www/cgi-bin/openwebmail และในตำแหน่งนี้ผู้เขียนได้สร้างไฟล์ index.html เพื่อการ redirect ไปยังไฟล์ที่แท้จริงอีกทีหนึ่ง

และถ้าเรียกใช้งาน http://sorn.itwizard.info ก็จะเรียกใช้งานไฟล์ที่ /var/www/html ซึ่งเป็น DocumentRoot ของ Apache

ติดตั้งโปรแกรม Antivirus เพิ่มเติมให้กับ Mail Server ด้วยโปรแกรม Clam AntiVirus
จากประสบการณ์ของผู้เขีึยนพบว่าโปรแกรม Clam AntiVirus สามารถป้องกันไวรัสได้ดีมากสำหรับ Mail Server กล่าวคือถ้าไม่มีการติดตั้งโปรแกรม Clam AntiVirun จะมีขยะเข้ามาที่ inbox ของ Mail Server จำนวนมาก แต่พอติดตั้งโปรแกรมตัวนี้แล้วผมปรากฎว่าสามารถลดเมล์ที่ไม่พึงประสงค์ลงได้มาก ซึ่งถ้าเข้าไปดูในไฟล์คอนฟิกของ openwebmail (openwebmail.conf) แล้วจะมีคอนฟิกส่วนหนึ่งที่มีการเีรียกใช้งานโปรแกรม clamav ตามข้อความข้างล่างที่ตัดมาจากไฟล์ openwebmail.conf ซึ่งจะเห็นว่ามีการเรียกใช้โปรแกรม /usr/bin/clamscan เพื่อการสแกนไวรัส

-------------------------------------------------------------------------------------------------------------------------------------------
# To SysAdmin,
# Please install ClamAV RPM package from http://clamav.net/ in order to
# enable viruscheck with Open WebMail. Otherwise set it to no.
# See http://openwebmail.org/openwebmail/download/redhat/howto/virus/ClamAV/
# for a step-by-step instruction.
enable_viruscheck yes
viruscheck_pipe /usr/bin/clamdscan --disable-summary --stdout -
viruscheck_source_allowed all
enable_spamcheck no
enable_learnspam no

-------------------------------------------------------------------------------------------------------------------------------------------

แนะนำ Clam AntiVirus
Clam AntiVirus เป็น GPL anti-virus toolkit for UNIX จุดประสงค์หลักของโปรแกรมตัวนี้คือการรวมกับ Mail Server (Attachment Scanning) โดยแพ็กเกจจัดให้มีความยืดหยุ่นและ scalable multi-threaded daemon, a command line scanner, และเครื่องมือสำหรับการอัพเดตผ่านอินเตอร์เน็ตอัตโนมัติ   โดยโปรแกรมจะอาศัย shared library ที่เผยแพร่มากับ Clam AntiVirus Package ซึ่งทำให้สามารถใช้งานซอร์ฟแวร์ได้ด้วยตัวเอง  และที่สำคัญที่สุดคือ ฐานข้อมูลไวรัสเป็นข้อมูลที่อัพเดตทันสมัยอยู่เสมอ

การติดตั้ง Clam AntiVirus บน Fedora
จริงแล้วการติดตั้งอาจจะทำได้สองวิธีคือ วิธีแรกต้องทำการดาวน์โหลดโปรแกรมมาก่อนแล้วค่อยติดตั้ง วิีธีที่่สองซึ่งเป็นวิธีที่ทาง Fedora แนะนำให้ใช้คือการติดตั้งโดยใช้ ยูติลิตี้ที่ชื่อว่า Yum (Yello dog Updater, Modified) หรืออาจจะใช้ apt-get ก็ได้  ซึ่งการใช้ yum จะมีการดาวน์โหลดโปรแกรมที่เกี่ยวข้องให้โดยอัตโนมัติ แต่จากการทดลองของผู้เขียนการใช้คำสั่ง yum กับ clamav ยังไม่มีการติดตั้งโปรแกรมที่สมบูรณ์ทั้งหมดในที่นี้จึงขอเลือกติดตั้งแบบที่ดาวน์โหลดไฟล์ชนิด RPM มาติดตั้ง ซึ่งขั้นตอนเป็นดังนี้ :

  1. ดา์ว์นโหลดโปรแกรม Clam AntiVirus จาก www.clamav.net โดยในส่วนของ Download ให้เลือกเป็น Binary packages and ports แล้วเลือกดาว์น์โหลดสำหรับ RedHat - Fedora โดยในที่นี้ให้ดาวน์โหลดโปรแกรมมาสองชุคสำหรับ FC4 คือ :
    • clamav-0.87.1-3.i386.rpm   (freshclam)
    • clamav-server-0.87.1-3.i386.rpm (clamd)
  2. ทำการติดตั้งโปรแกรม clamav ดังรูป ซึ่งโปรแกรมชุดนี้เป็นโปรแกรมที่ทำหน้าที่ update ฐานข้อมูลไวรัส ถ้าใครใช้ Noton Antivirus ก็คือการ Live Update นั่นเอง โดยโปรแกรมตัวนี้ชื่อว่า freshclam

    และเนื่องจากผู้ใช้มีการทดลองติดตั้ง clamav หลายครั้งจึงเจอปัญหาแพ็กเกจบางอย่าง confilct กันเลยต้องใช้ออฟชัน replacefiles เพื่อตัดปัญหาดดังกล่าว



    จากรูปจะเห็นว่าเมื่อมีติดตั้งโปรแกรมเสร็จแล้วโปรแกรมจะมีการดาวน์โหลดฐานข้อมูลไวรัสโดยอัตโนมัติเพื่อให้รู้จักกับไวรัสตัวใหม่ได้ 

    และถ้าเราจะเรียกใช้โปรแกรมตัวนี้เพื่อการอัพเดตฐานข้อมูลไวรัสเองก็สามารถเรียกได้ด้วยการเรียกไฟล์ /usr/bin/freshclam ดัีงรูป



  3. ทำการติดตั้งโปรแกรม clamav-server (มีชื่อ service เป็น clamd) ดังรูป



  4. เพื่อให้รู้ว่าโปรแกรมที่เราติดตั้งไปแล้วได้ติดตั้งส่วนต่าง ๆ ของโปรแกรมไว้ที่ไหนบ้างก็สามารถดูได้ด้วยการใช้คำสั่ง ดังรูป



    จากรูปจะเห็นว่ามีการสร้างไฟล์ /etc/cron.daily/freshclam ซึ่งเข้าใจว่าเป็นการตั้งเวลาให้มีการ update ไวรัส

  5. โปรแกรมทั้งสองมีชื่อใน Service ของระบบว่า clamd และ freshclam ดังรูป



    เช่นเดียวกับ Service อื่น เราสามารถใช้คำสั่ง service เพื่อควบคุมการทำงานของโปรแกรมทั้งสองดังกล่าวได้ดังรูป




    ในกรณีที่ต้องการให้โปรแกรม freshclam และ clamd มีการ start service ทุกครั้งเมื่อมีการเปิดเครื่องเราสามารถใช้คำสั่ง chkconfig ได้ดังนี้ :

    # chkconfig freshclam on
    # service freshclam start
    # chkconfig clamd on
    # service clamd start

  6. การทดสอบ clamav แบบ manual
    เราสามารถใช้คำสั่ง clamscan ซึ่งเป็นโปรแกรมสแกนไวรัสสำหรับไฟล์และไดเร็คทอรี่ ซึ่งมีรูปแบบของคำสั่งดังนี้ :
          clamscan  [options]  [file/directory/-]
    เช่น
          clamscan -r  /home/<user>

  7. การ enable viruscheck ใน openwebmail.conf
    ให้กำหนดข้อความเป็นดังนี้ :

        enable_viruscheck yes
        viruscheck_pipe /usr/bin/clamdscan --mbox --disable-summary --stdout -
        viruscheck_source_allowed all