sendmail¤Îmailscanner¤Îclamavªº¦w¸Ë¤Î³]©w
§@ªÌ:cschen33.tw@yahoo.com.tw
³Ì«á§ó·s®É¶¡:2005/1/06
¥»¤åÁÙ¦b¾ã²z¤¤,©Ò¥H¦³ÂI¶Ã

¹q¤l¶l¥óªº¹q¸£¯f¬r¤Î©U§£¶l¥ó¤w¸g ¬O¥ø·~¤¤ªº¤@¤j°ÝÃD,
¤U¹Ï¬O«e¦~2003-5¤ë¦Ü2004-4¤ë¥÷,§Ú¤½¥qmail¦øªA¾¹¯f¬rªº²Î­p¹Ï,¥Ñ¥»¹Ï§A¥i¥H¬Ý¥h¹q¸£¯f¬r¤j¶q¶Ç¼½

¤U¹Ï«h¬O¦P®É´Áspamªº²Î­p¹Ï,±q«e¦~ªº¤Q¤ë¥÷©U§£¶l¥ó¤j¶q¼W¥[


§Ú­Ì¥H¤U°Q½×,¦p¦ó³]©w¹LÂo³o¨âºØ¶l¥ó
¨Ï¥Î³nÅé:
MailScanner
Clamav(¥Ø«e³Ì·sª©¥»0.80)
¦w¸Ëclamav

°Ñ·Ó¤ºªþ¤å¥ó,¦pªG¬Oredhat«h¨äºô¯¸¤W§t¦³srpm/rpm®M¥ó,¨ä¸ô®|©M¤U­zªº»¡©ú¥i¨Ç®t²§
1.redhat
  ¤U¸ü³Ì·sª©
   (¦pªG¬Osrpm)
   rpmbuild --rebuid clamav.xxxx.srpm
   ½sͦ¨¥\«á¤Á´«¨ì®M¥ó©Ò¦b¥Ø¿ý
   rpm -ivh clamav.xxxx.rpm
2.redhat Fecora code ¦³rpmÀÉ
   rpm -ivh clamav.xxxx.rpm
 
3.¨Ï¥Îtar.gzÀɮצw¸Ë
  1. groupadd  clamav
  2. useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
  3. ¥ý¦Ühttp://www.clamav.net/¤U ¸ü
  4. tar xvfz clamav.xxxx.tar.gz
  5. cd clamav*
  6. ./configure --sysconfdir=/etc
  7. make
  8. make install
    ¦p¦¹´N¦w¸Ë§¹²¦
  9. ´ú¸Õ
    cd test
    clamscan -r -l scan.txt test1.zip
  10. §ó·s¯f¬r½X
    freshclam
¤W­z¤w§¹¦¨¦w¸Ë¨¾¬rµ{¦¡, ¨Ã§ó·s§¹¯f¬r½X

¦w¸Ë MailScanner
³o¬O±½´yµ{¦¡¥i¥H©M§Aªºmail server·¾³q,¯à¹ï¶l¥óªº¤º®e,¦p¥D¦®,±H¥óªÌ,ªþ¥ó,¥»¤å°µ³B²z,
¦³¨â­Ó¿ï¾ÜMailScanner,AMaVis,¦ý¬OMailScanner¦³webminªº¼Ò²Õ,¤Îmrtgªº²Î­p¹Ïªí,¦]¦¹¥i¥H²¤ÆºÞ²z
¦Ó¦w¸Ë¤]¤ñ³n®e©ö,¦ý¨ä¹ê¨â­Óµ{¦¡³£¬O¥Hperl¬°µ{¦¡¥DÃD»y¨¥,¦]¦¹¦³¤@¨Ç¼Ò²Õ»Ý­n¦w¸Ë,¥i¬OMailScanner¤w¸g¦b®M¥ó¤¤¤º§t¤F
¦w¸Ë:
¥ý¦Üwww.mailscanner.info§ädownload, µM«á¤U¸ürpm®M¥ó
µM«á¸ÑÀ£ÁY
$tar xvfz MailScanner*.tar.gz
$cd MailScanner*
$./install.sh
¦pªG¦³°ÝÃD¥¦·|§i¶D§A,¦ý¬O¤@¯ë¸I¨ìªº°ÝÃD¬O,­n§A°õ¦æ
$./Update-MakeMaker.sh
µM«á¦A°õ¦æ
$./install.sh
¦pªG¥¿±`´N¦w¸Ë§¹²¦¤F
¦]¬°MailScanner·|¦Û¤v±Ò°Êsendmail
©Ò¥H§A­n¥ýÃö³¬sendmailªA°È,¨Ã±Ò°ÊMailScannerªA°È
chkconfig --level 2345 sendmail off
chkconfig --level 2345 MailScanner  on
service  sendmail stop
service  MailScanner start
²{¦bMailScannerÀ³¸Ó¤w¸g¶]°_¨Ó

³]©wMailScanner ¨Ï¥Îclamav

­n­×§ï¨ä³]©w
/etc/MailScanner/MailScanner.conf
§ä´M¤G­Ó°Ñ¼Æ³]©w¦p¤U
Virus Scanning = yes
Virus Scanners = clamav
¦p¦¹±½¬rªº¥\¯à¤w¸g¥[¶i¨Ó¤F
¦pªG§A¨Ï¥Îsrpm/rpm®M¥ó§ó·s
½Ð­×§ï /etc/MailScanner/virus.scanners.conf ±Nclamav¨º¤@¦æ³Ì«áªº/usr/local§ï¬°/usr

µM«á­«·s±Ò°ÊMailScanner
¦p¦¹§Aªºmail server²{¦b¤w¸g¨ã³Æ¨¾¬rªº¥\¯à

¦Û°Ê©w®É§ó·s¯f¬r½X
¨¾¬rµ{¦¡³Ì­«­nªº¤u§@¤§¤@´N¬O§ó·s¯f¬r½X,§_«h¨¾¬r³nÅé¥\¯àµLªk¨¾¤î³Ì·sªº¯f¬r¡C
®Ú¾Ú¤@¯ëªº«ØÄ³¥ø·~³Ì¦n¨C¥|­Ó¤p®É¦Ü¤»­Ó¤p®É§ó·s¤@¦¸
#°Ïºô¤º§ó·s¯f¬r½X(¦Û¤v¬[³]¨Ñ¦Û¤v°Ï°ìºô¤ºªº¯f¬r§ó·s¦øªA¾¹)
  1. clamav
    1. ¥H¤@¯ë©R¥O±Ò°Ê
    2. freshclam -l /var/log/clamav/freshclam.log
    3. ¥Hdaemonªº¤è¦¡(¥H¤U³]©w¨C¤Ñ§ó·s6¦¸)
      freshclam -d -c 6 -l /var/log/clamav.freshclam.log

  2. MailScanner
    ·í§A¦w¸Ë¤F¥»µ{¦¡,¥¦·|¦b/etc/cron.hourly/¤U¦w¸Ë¤@­Óupdate_virus_scanners, ³o­Ó©w®É±Æµ{ªºµ{¦¡·|©I¥supdate_virus_scannersµ{¦¡,¦Ó³o­Óµ{¦¡·|®Ú¾Ú§A³]©wÀɤºªºvirus scanner°Ñ¼Æ¨Ó§ó·s¯f¬r½X¨Ó©I¥s/usr/lib/MailScanner/¨¾¬rµ{¦¡¦WºÙ-autoupdate,¦]¬°©ñ¦bcron.hourly ©Ò¥H¨C¤p®É·|§ó·s¤@¦¸,¦ý¬O§Úı±o¤Ó¦h¤F,¦]¦¹§Ú§R°£¤F /etc/cron.hourly/update_virus_scanners,§ï¦b/etc/cron.d/·s¼W¤@­ÓÀÉ®× update_virus_Scanners,¤º®e¦p¤U:
    43 0-23/4 * * * root /usr/sbin/update_virus_scanners
    ¦p¦¹¨C¥|¤p®É·|§ó·s¤@¦¸
#­ì©l/usr/lib/MailScanner/clamav-autoupdate ªº§ó·s°O¿ýÀɦb/tmp¤U,§Ú±N¥¦§ï¬°¥¿³Wªºrpm®M¥óªº
/var/log/clamav/freshclam.log,§A¥i¥H­×§ï³o­Óclamav-autoupdate¤¤$Log= "/var/log/clamav/freshclam.log"


Clamav °ò¦
µ{¦¡¦WºÙ
»¡©ú
clamscan
³o¬O¤@­Ó±½´yµ{¦¡,¦p¤@¯ë©R¥O¦C¤Uªº±½´yµ{¦¡,¥¦·|¶}Àɤñ¹ï¯f¬r½X¸ê®Æ ®w
clamd
³o¬O¤@­Ódaemon(±`¾n)µ{¦¡,¥¦¬O°t¦Xclamdscan,¦]¬° ¬O¹w¸ü,¥i¥H¥[§Ö ±½´y,»Ý­n³] ©wÀô¹ÒÀÉ/etc/clamd.conf
clamdscan
¥²¶·°t¦Xclamd¨Ï¥Î
clamuko
¬O°t¦X¤Î®É±½´yµ{¦¡(on access,¦s¨ú®É)ªº¤¤¤¶µ{¦¡,¥t»Ý°t¦Xdazuko
freshclam
¯f¬r½X§ó·sµ{¦¡
sigtool ¦pªG¦³¤@­Ó¯f¬r,³Q¨ä¥¦´y¬rµ{¦¡±½¨ì,¦ý¨S¦³³Qclamva±½´y¨ì,¥i ¥H¥Î³o­Ó¤u¨ã¨Ó·s¼W
¦pªG»Ý­n¸Ô²Óªº«ü¥O,¥i¥H¨Ï¥Îmanªº©R¥O
³oùاڭ̱N¥u¥Î¨ìclamscan¤Îfreshclam¤Îsigtool,¨ä¥¦µ{¦¡±N¤£·|¥Î¨ì
sigtool
sigtool -c "clamscan --stdout" -f testfile -s "ClamAv-Test"
§Ú¹ê¦b¬O¤£ª¾¨ä¨ú¼Ëªº¤èªk,¦]¦¹¦pªG¦³¤@­ÓÀɮ׬V¨ì¤F¯f¬r,¦p¦ó±oª¾¨ä¨º¤@­Ó³¡¥÷¬O¦³¬rªºµ{¦¡½X,¦p¦ó¨ú¥X¸Ó¬q¨¬¥Hªí¥Ü¸Ó¯f¬rªº¯S¼xªº¯f¬r½X, ¨äºô¯¸¤W¦³¤@¥÷¤­­¶ªº¤å¥ó¨Ó»¡©ú
*¨ä¦Û°Ê²£¥Í¯f¬r½Xªº­ì²z¤F,¥¦¬O¨Ï¥Î§Oªº¨¾¬rµ{¦¡¨Ó¨ú±o¯f ¬r½X,Åܦ¨¦Û¤vªº
*¤â°ÊÁÙ¤£¬O«Ü²M·¡


MailScanner ªºÀô¹Ò³]©w
/etc/MailScanner
MailScanner.conf
¥D­nÀô¹ÒÀÉ
filename.rules.conf
ªþ¥óÀɦW³]©w(±µ¨ü/©Úµ´)
filetype.rules.conf
ÀÉ®×Ãþ«¬³]©w(±µ¨ü/©Úµ´),©M¤W­z¤£¦P¥¦¬O¦bmail¤¤mime³]©w
virus.scanners.conf
«ü©w¨¾¬rµ{¦¡ªºscript(¨Ã¤£¬O¨¾¬rµ{¦¡,¦Ó¬O MailScanner
¥»¨­ªº©I¥s¨¾¬rµ{¦¡ªºscript),¤@¯ë¬O¤£¥Î§ó§ï
spam.assassin.prefs.conf
µ{¦¡sapmassassin©U§£¶l¥óªº³]©w
spam.lists.conf

/rules/spam.whitelist.rules
³]©w«D§£©U¶l¥óªº³W«h
/reports/
¬O¤@¯ë³ø§iªº«H¥ó,¦p¬d¨ì¯f¬r¤Î¤@¨Ç¬ÛÃö°T®§©Ò­n²£¥Í³qª¾«Hµ¥¶l¥ó
°ÝÃDHTML-IFrame,HTML-Form¦³¨Ç¤H°e³o¨ÇÀÉ®×,ÁöµM¤£¤@©w¬O¯f¬r¦ý¬O«Ü§xÂZ,©ñ¦æ§a?
§A­n·Q²M·¡§_«h¦pforenight³oºØ¯f¬r¥i¯à·|¶i¨Ó
Allow IFrame Tages= yes
Allow Form Tags = yes
¦p¦¹´N¥i¥H¤F

¶l¥ó³Q°°³yªº°ÝÃD
¦³¤@¨Ç¹q¸£¯f¬r·|°°³y°e¥óªÌªºe-mail,¦]¦¹¨¾¬rµ{¦¡¤¤ªº³qª¾¶Ç°eªÌ¥\¯à¥²»ÝÃö³¬,§_«h¦¬¥ó¤H·|¤£³Ó¨äÂZ(¤£¬O¥L°eªº¯f¬r,«oĵ§i¥L),
¦bmailscanner.confªº³]©w¤¤¦³¤@­Ó¿ï¶µ,¥i¥H«ü©w¦h­Ó¨Ï¥ÎªÅ¥Õªº°Ï¹j
Silent Viruses = §A¥i¥H«ü©w¯f¬rªº¦WºÙ
©Ò¦³ªº¯f¬r³£¤£­n°e³qª¾«H,¥i³]¬°¤U
Silent viruses= All-Viruses

­ì²z(°Ñ·ÓMailScanner ¤å³¹):
E-MailªA°È¤Î¶Ç°e¶l¥ó

¤@¯ëªº¶l¥ó¦øªA¾¹¦P®É´£¨Ñ¨â­ÓªA°È SMTP¤Î»¼°eªA°È(¤@­Ó¬O±µ¨ü§O¤H¶Ç¶i¨Ó,¤@­Ó¬O¶Ç°e¥X¥h).¥¦ºÊÅ¥¶i¨Óªº¶l¥ó¨Ï¥ÎSMTP port, ±N³o¨Ç¶l¥ó©ñ¦b¤@­Óqueue(¥Ø¿ý),µM«á»¼°equeue¤¤ªº¶l¥ó¨ì¥Øªº¦a.

¤@¥¹§A¨Ï¥ÎMailScanner,·|¤À¶}¬°¤£¦Pªº¤u§@,¬O¥Ñ¤£¦Pªºsendmail¦æµ{¤Î¤£¦Pªºqueue¨Ó³B²z. ²Ä¤@­Ó sendmail¦æµ{ºÊÅ¥¥ÑSMTP port¶i¨Óªº«H¥ó,¨Ã±N¨ä©ñ¦b¤@­Óincoming queue. MailScannerªº³d¥ô¬O¦¬¶°³o¨Ç«H¥ó¥Ñincoming queue¨Óªº,Àˬd¤Î¹LÂo¥¦­Ì,µM«á±N¨ä©ñ¦b¥~°eªºqueue¨ÃIJµo²Ä¤G­Ósendmail¦æµ{¨Ó»¼°e¥¦­Ì.

¥Ñ©ósendmail³]­pªº¬[ºc°ÝÃD,³oºØ¤À¹j¬O¬Û·íªºÂ²³æ,¨Ã¤£»Ý­n­«·s½sĶ©Î§ó§ïÀô¹ÒÀÉ.©Ò¦³­n¨D¥u¬O§ïÅܱҰÊsendmailªº script,/etc/rc.d/init.d/sendmail,¤ºªº¤@¨Ç©R¥O.

¾Þ§@­ì²z

¦b°õ¦æ¤§«á, MailScanner­«½Æªº°õ¦æ¤@­Ó°j°é¤u§@¦p¤U:

  1. ¦¬¶°¥ÑIncoming queue¨Óªº¶l¥ó
  2. Àˬd¶l¥ó¬O§_¥i¥Hspam,¨Ã¥B¦pªG»Ý­n¼Ð°O¥¦
  3. ¿ï¾Ü©Êªº²¾°£Â²³æªº¯Â¤å¦rªº¶l¥ó¨ì outgoing queue¨ÃIJµo¨Ï¨ä³Q¶Ç°e
  4. ¸ÑÀ£ÁY¥X§t¦³MIMEµ²ºcªº©Ò¦³ªº¶l¥ó¤Îªþ¥ó
  5. ±½´y¯f¬r
  6. ±½´yÀɦW¦X¥G¨Ï¥ÎªÌ³]©wªº³W«h
  7. ±½´y©Ò¦³§ðÀ»©Êªºe-mail client µ{¦¡,¦pOutlook ©Î Eudora
  8. ²¾°£³Q·P¬V©Î¦MÀ˪ºªþ¥ó¨ì¤@­Ó¹jÂ÷°Ï(quarantine area),¦pªG§A¦³³]©w
  9. ¨ú¥N·P¬V©Î¦MÀIªºªþ¥ó¨Ï¥Î§A«ü©wªº¤å¦r¤º®e¨Ó¸ÑÄÀ,·Ç³Æ°eµ¹¨Ï¥ÎªÌ
  10. ¥[¤J¤@­Óµuªº°T®§¦b­ì©l¤å¥óªº«e­±
  11. ²¾°Ê¦w¥þ¤Î¤£¨ü·P¬Vªº¶l¥ó¨ìoutgoing queue
  12. ­««Ø­×§ïªº¶l¥ó¨ìoutgoing queue
  13. §R°£¦bincoming queue¤¤ªº¶l¥ó
  14. IJµo¶Ç°eoutgoing queue¤¤ªº¶l¥ó
  15. ³qª¾¥»¦aªºpostmaster, ©M¶l¥ó¶Ç°eªÌ,¤@­Ó·P¬V©Î¬O¦MÀIªº¶l¥óµo²{
  16. ¦pªG¥i¯à,¤£¨ü·P¬Vªº­ì©lªþ¥ó°e¥¦­Ì¨ì­ì©l¦¬¥ó¤H,¨Ã¨Ï¥Î¤@­Ó³qª¾»¡©úµo¥Í¤F¤°»ò¨Æ

´X¥G¨C¤@­Ó¨BÆJ³£¥i³]©w, ±q§å¦¸¶l¥óªºÀɮפj¤p¨ì±½´yªº¨C¤@­Ó­«½Æ¨ì¥»¦apostmasterªº¶l¥ó¦ì§},³£¬O¥i¥H³Q³]©wªº.

³Ì¤pªº¶l¥óªºÅܰÊ,¥ô¦óªº¶l¥ó¦pªG¨S¦³µo²{¯f¬r¬Oª½±µ²¾°Ê¦b¨â­Óqueues¤§¶¡;¨Ã¤£·|¹Á¸Õ­«·s«Ø¥ß¥ô¦óªºM MIME.¶l¥ó·|³Q­««Ø¥¦ªºMIME¶µ¥Ø,¥u¦³·í¥¦¥]§t¦MÀIªºÀɦW©Î¬O·P¬V¨ì¯f¬r®É,¤~·|¾É­P¨ä¨Ï¥Î¤å¦rÀɨӨú¥Nªþ¥ó.

¥h±Æ°£©M¨ú®ø¤@­Ó¶l¥óªº¶Ç°e§t¦³·P¬V¯f¬r,¥¢±Ñªº¸Ñ¬r, ¸Ñ¬rµ{§Ç±½´y«á,µM«á¸Ñ¬r,µM«á¦A±½¤@¦¸. ¥u¦³ªþ¥ó·|³q¹L¯f¬r±½´yµ{¦¡¦b³Ì«áªº±½´y¬OÂà±Hµ¹­ì©lªº¦¬¥ó¤H.

Spam°»´ú

¨C¤@­Ó¶i¨Óªº¶l¥ó·|³QÀˬd¬O§_¬O¥Ñopen mail relay¥D¾÷©Ò±Hªº,¤@­Ó³Qª¾¹Dªºspam ¨Ó·½,©Î¬O¶Ç°e¥Ñª½±µªºª¾¦Wdial-up ½u¸ô¨S¦³³z¹L¦X¾Aªº¶l¥ó¥D¾÷.³o§¡³Q¨Ï¥Î¦b¤½¶}ªº¤Î®É¸ê®Æ®w¤W¦]¦¹¤£»Ý­n¦b¦w¸Ëªº¥D¾÷¤WºûÅ@. ¦pªG Àˬdªºµ²ªG,¤@­Ó¶l¥ó¬Ý°_¨Ó¥iºÃ,¥¦¬O³Q¼Ð¥Ü¥[¤J¤@­ÓÃB¥~ªºÀÉÀY¦Cªí¸ê®Æ®w. ³o­Ó¶l¥ó·|³Q¥¿±`ªº¶Ç»¼(·íµM¤]­n¦b¯f¬rÀˬd¤§«á).

SpamAssassin ¨t²Î¤]¬O¤ä´©¥~³¡µ{¦¡ªº¿ï¶µ, ¦w¸Ë¸Óµ{¦¡¥i¥H¤j¤jªº§ïµ½¿ëÃÑspamªº¯à¤O.³o¬O¤@­Ó«D±` clever heuristics-based engine(Áo©ú¨ã¦³¹Á¸Õ©Êªº¤ÞÀº),¥¦¨Ï¥Î³\¦hªº´ú¸Õ¦b¶l¥óªºheaders¤Îbody³¡¥÷.

¦b³oºØ±¡ªp¤U¥¿±`ªºmail¦øªA¾¹¬O³Q¼Ð¥Ü¬°¨Ó·½spam, ¥¦­Ìªº¦ì§}¥i¯à³Q¥[¤J¤@­Ó "spam white list" ªº¦ì§}©Î¬Oºô¸ô±N¤£·|³Q¼Ð¥Ü¬°spam.

³o­Óµ{§Ç¼Ð°O¦ý¤´Â»¼°e¥iºÃªº¶l¥óÅý¨Ï¥ÎªÌ¥þÅv±±¨î¥¦­Ìªº¶l¥ó.³\¦hªºe-mail®M¥ó©M¶Ç°e¥N²z¦pEudora, Microsoft Outlook, pine ©Î procmail, ¥i¥H³]©w¨ÓÀˬd¶i¨Óªº¶l¥ó³W«hÀx¦s¬Æ¦Ü§R°£¶l¥ó.¦³¤@¨Ç¨Ï¥ÎªÌ ¨Ï¥Îanti-spam¥i¯à¦Û°Êªº§R°£¥ô¦ó¼Ð°Oªº. µM¦Ó,¤j³¡¥÷ªº¨Ï¥ÎªÌ³]©w¥¦ªºe-mail³nÅé¦Û°ÊÀx¦s¼Ð°O"Auto-Spam" ¥Ø¿ý.

Robustness(±j°·)

·í¥»µ{¦¡¤Î°t¦Xªº³nÅé°õ¦æ²£¥Í¿ù»~°T®§®É,©Î¹q¸£·í¾÷,¥»µ{¦¡·í±¼,¥i¥H¦V§A½T»{¨S¦³¶l¥ó·|¿ò¥¢,¥¦¤´·|©ñ¦bqueue¤¤,¥u­n§A­×§ï¦^¨Ó³o¨Ç¿ù»~ ®É,¥¦¤´·|³o¨º¨Ç¶l¥ó°e¥X.

¬°Á×§K§@·~¨t²Î¸ê·½¯Ê¥F, MailScanner¶g´Á©Êªº¤¤Â_©M­«·s±Ò°Ê¦Û¤v. ¦b¹L¥h¦³¤@¨ÇPerl¼Ò²Õ·|²£¥Í°O¾ÐÅ餣¨¬ªº²{¶H,³oºØ¤èªk¬O³Ì²³æ¨ÓÁ×§K³o­Ó°ÝÃD,µ¹¤©§@·~¨t²Î¦³¾÷·|¨Ó²M°£¸ÓÀ³¥Îµ{¦¡©Ò¨Ï¥Îªº°O¾ÐÅé.

¥Ø«e©|¥¼«ü¥X³o­ÓÀ³¥Îµ{¦¡·|¾É­P¯Ê¥F¸ê·½, ¦ý¬O¥¦¬O¤@­Ó¤p¤ßªº³]­p,¨Ó§ï¨}µ{¦¡ªºÃ­©w«×,¦Ó¥B³o¼Ë°µ¤]µL§«


§Ú­Ì²{¦b¨Ï¥Îmailscanner(±½´y³nÅé)©Mclamav(¨¾¬r³nÅé)
¬d¬Ý/etc/rc.d/init.d/MailScannerªº¤º®e,±oª¾¶i¨Óªº¶l¥ó¬O¨Ï¥Î
sendmail¦¬¨ì¶l¥ó«á±N¨ä¦s¦b«Dsendmail¤º©w/var/spool/mqueue¤¤¦Ó¬O§ï¬°/var/spool/in.mqueue¤¤
¨ä©Ò±Ò°Êªº°Ñ¼Æ¬O,¶È±N¨ä¾n¦C¦bqueue¤¤,µM«á¨Ï¥ÎMailScanne¥h±½´y¸Ó¥Ø¿ý

sendmail(©ñ¦b§Oªº¥Ø¿ý,¶È¾n¦C¤£¶Ç°e)->scanner ©I¥santvirus program±½¬r->sendmail(¥¿±`ªº¥Ø¿ý)

sendmail·|±Ò°Ê¨â­Ó¦æµ{
1.´£¨Ñ25ªºªA°È
2.©w®É¶Ç°e/var/spool/mqueue¤¤ªº«H¥ó
­º¥ý´£¨Ñ¤@­ÓSMTP 25  Port©M«Ø¥ßMailScannerªº¦¬«Hªº¤u§@¾n¦C

«Ø¥ß²Ä¤G­ÓQueue

§Aªºsendmail¥i¯à¬O¨Ï¥Î¤º©wªºqueue¦ì©ó/var/spool/mqueue. ¦pªG³o­Ó¥Ø¿ý¤£¦s¦bÀˬd¤@¤U§Aªºsendmail¤å¥ó¤Îsendmail.cfÀɤ¤QueueDirectory©Ò¦bªº¦ì¸m.°²³]¥¦¬O/var/spool/mqueue, «Ø¥ß²Ä¤G­Óqueue¥Ø¿ý mqueue.in ³]©w¬Û¦P©ómqueueªºÅv­­¤Î¾Ö¦³ªÌ.¨Ò¦p(§A¤£»Ý­n¤U¥H¤Uªº«ü¥O,MailScanner³£À°§A°µ¦n¤F,¥H¤U¬O»¡©úÆ[©À),

 # cd /var/spool
# ls -ld mqueue
drwxr-x--- 2 root bin 62976 Oct 23 16:18 mqueue
# mkdir mqueue.in
# chown root mqueue.in
# chgrp bin mqueue.in
# chmod 750 mqueue.in
# ls -ld mqueue mqueue.in
drwxr-x--- 2 root bin 62976 Oct 23 16:18 mqueue
drwxr-x--- 2 root bin 41472 Oct 23 16:18 mqueue.in

³o­Óqueue mqueue.in±N³Q¨Ï¥Î¬°sendmail©Ò´£¨ÑªºSMTPªA°È.

­×§ïSendmailªº±Ò°Ê©R¥OÀÉ

§Aªº±Ò°Ê©R¥O¦b/etc/rc.d/init.d/sendmail.¦b¨ä¤¤°µ¤F¤@¨Ç°Ê§@¦p§ó·saliaes.db,§A¥i¥H¬Ý¨ì ©R¥OÃþ¦ü¤U­±:

 sendmail -bd -q15m
±N¨ä§ï¦¨¤U­±¤G¦æ:
 sendmail -bd -OPrivacyOptions=noetrn -ODeliveryMode=queueonly -OQueueDirectory=/var/spool/mqueue.in
sendmail -q15m
²Ä¤@¦æ±Ò°ÊSMTPªA°È,«Ø¥ß¨â­Ó¤u§@queueµ¹MailScanner. ²Ä¤G¦æ±Ò°Ê¥t¤@­Ó½Æ¥»ªºsendmail¨Ó¶Ç°e¥Ñ MailScanner²£¥Í¿é¥X.

§A¤]»Ý­n§ïÅܰ±¤î­ì¨ÓªºsendmailªA°È.


MailScannerªº³Æ¥÷ ¶l¥ó³]©w»¡©ú
#
# Mail Archiving and Monitoring
# -----------------------------
#

# Space-separated list of any combination of
# 1. email addresses to which mail should be forwarded,
# 2. directory names where you want mail to be stored,
# 3. file names (they must already exist!) to which mail will be appended
#    in "mbox" format suitable for most Unix mail systems.
#
# If you give this option a ruleset, you can control exactly whose mail
# is archived or forwarded. If you do this, beware of the legal implications
# as this could be deemed to be illegal interception unless the police have
# asked you to do this.
#Archive Mail = /var/spool/MailScanner/archive
Archive Mail =

¤W­zªº»¡©ú§A¥i¥H³Æ¥÷¶l¥ó¦ý¬O§_¦Xªk?
½d¨Ò:

Archive Mail = /etc/MailScanner/rules/backup_mail.rules

µM«á½s¿è
backup_mail.rules ÀÉ®×
From: user1@domain1.com /archive/domain1/user1
To: *@domain2.com /archive/domain2 user2@domain3.com user4@domain5.com
FromAndTo: *@domain6.com /archive/domain6/internalmail
FromOrTo: default

²Ä¤@¦æ¬O ±H¥óªÌ¦pªG¬O user1@domain1.com «h³Æ¥÷¨ìÀÉ®×/archive/domain1/user1
²Ä¤G¦æ¬O¦¬¥óªÌ¬O     *@domain2.com    «h³Æ¥÷¨ìÀÉ®×/archive/domain2 ¨ÃÂà±Hµ¹¨â­Ó¤H
²Ä¤T¦æ¬O¦¬¥óªÌ¤Î±H¥óªÌ³£¬O *@domain6.com «h³Æ¥÷¨ìÀÉ®×(¤º³¡¶l¥ó)/archive/domain6/interrnalmail
²Ä¥|¦æ¬O¥ô¦ó¦¬¥ó¤Î±H¥óªÌ,¹w³]¤°»ò³£¤£°µ(¤£³Æ¥÷)

¦Ò¼{¤½¥q ¶l¥ó³Æ¥÷ªº¨Æ¶µ
1.¥u­n¬O¤½¥qªº³£³Æ¦b¦P¤@­Ó«H½c,¦A¥ÑclientºÝ¨Ó¤À

  FromOrTo: *@domain.company     email-address
 2.ª½±µ¤À°Ï¤À

±H¥óªÌ:¤½¥qºô°ì
¦¬¥óªÌ:«D¤½¥qºô°ì
¥~°e¶l¥ó
©_¥óªÌ:«D¤½¥qºô°ì
¦¬¥óªÌ:¤½¥qºô°ì
¤º°e¶l¥ó
©_¥óªÌ:¤½¥qºô°ì
¦¬¥óªÌ:¤½¥qºô°ì
¤½¥q¤º³¡¥æ´«¶l¥ó

¥Ñ¤W¤À ªR,§Ú­Ì­n±N¶l¥ó³Æ¥÷¬°¤T¥÷(¤T­Óemail«H½c),¥i¥Îªº«ü¥O¦p¤U
1.from: *@domain.company
2.to:   *@domain.company
3.FromAndTo: *@domain.company
4.FromOrTo:  *@domain.company

¥Ñ©óµLªk ²Õ¦XÀ³¥Î¤Î¨Ï¥ÎNOT,¦p¦ó¤À©O?
#ª©¥»4.26.8(2004/2/2)¤ä´©¤À¶}ªºAND
from: xxx@bbbb.xxx.ddd   And To: kkk@rrr.sss.ttt


¤¤¤å¤Æ®§°T¶l¥ó
µo²{¯f¬r,©Î©U§£¶l¥ó¤Î¨ä¥¦¦MÀI¤º®e,Mailscanner·|®Ú¾Ú§Aªº³]©w¶Ç°e,¶l¥óµ¹¦¬¥óªÌ¡B±H¥óªÌ¡B¶l¥óºÞ²zªÌ³qª¾¶l¥ó,¦ýMailScanner ¨Ã¨S¦³¤¤¤å¤Æ³o¨Ç°T®§,§A¥i¥H¦Û¤v±N¨ä¤¤¤å¤Æ
cp -r /etc/MailScanner/reports/en /etc/MailScanner/reports/tw
¨Ì¦¸½s¿è/etc/MailScanner/reports/tw¤ºªºÀɮ׬°¤¤¤å
¦]±H¥óªÌªº°ê§O°ÝÃD,¦]¦¹§A¥i¯à»Ý­n¦Ò¼{¤¤­^¤åªº¤Á´«
1.¦b«ü©w³øªí»Ý«ü¥Ü¬°¤@­ÓrulesÀÉ(¦³¤Q­Ó³øªí»Ý­n¤Q­Órules¦³ÂI½ÆÂø)
  ¨Ò: stored.virus.message.rules
      From: *@*.com.tw  ¤¤¤å°T®§ªºstored.virus.message.txtªº¸ô®|
      From: default     ­^¤å°T®§ªºstored.virus.message.txtªº¸ô®|
2.¥t¤@ºØ§@ªk,¨ú®ø±H¥óªÌ³qª¾«H(«Ü¦h¯f¬r³£¬O°°³yªº),©Ò¥H©Ò¦³ªº³qª¾«H±N¥u«]­­¦b§A¦Û¤vªº¤½¥q
  %report-dir%=/etc/MailScanner/reports/en
  ª½±µ§ï¬°
  %report-dir%=/etc/MailScanner/reports/tw
3.¥i¥u°w¹ïÀx¦s,¤Î§R°£³¡¥÷ªº³qª¾°T®§§@Åܧó(«ØÄ³¨Ï¥Î)
  ·s¼W%reporttw%=/etc/mailScanner/reports/tw
  ±NÀx¦s©Î§R°£ªº³øªí¥u­n±N­ì©R¥O¥Ñ%report-dir%§ï¬°%reporttw%´N¥i¥H¤F,ª`·N¦Û©wÅܼÆ%reporttw¤¤¶¡¤£­n¦³¯S®í²Å¸¹¦p-



³øªí
¦bMailScannerºô¯¸¤W¦³¤@­Ó»¡©ú¦³ÃöMRTG
http://www.sng.ecs.soton.ac.uk/mailscanner/mrtg.shtml
©Î¬O§A¥i¥H¨Ï¥Îmailwatch³o­Ó³nÅé(¤w¸g¤£ºûÅ@)
#mailwatch¤w¸g´_¬¡¤F2006/02/22
§Úªº¤å¥ómailwatch


°ÝÃD:
  1. ªþ¥óÀÉ®×:
  2. ¦b©R¦Wªþ¥óªºÀÉ®×®É,¤p¤ß¤£­n©R¦W¶W¹L¤@­Ó¥H¤Wªº"." ,¦pabcd.txt.exe³o¬O¨å«¬¥Î¨ÓÁôÂïf¬r°ÆÀɦWªº¤èªk,¦pªGwindows³]©w¬°ÁôÂäwª¾°ÆÀɦW,·|²£¥Íabcd.txt,¦]¦¹§Ú­Ì­n¨Ï¥ÎªÌ¦b ©R¦Wªþ¥óÀÉ®×,¤£­n¥Î¦h­Ó".",§_«h·|³Q¾×¤U¨Ó,°e¤£¥X¥h,¦pªG§A­n¤©³\¸ÓÃþÀÉ®×,½Ð­×§ï /etc/MailScanner/filename.rules.conf.³Ì«á¤@¦æ¦³Ãö"deny all other double file extensions"
  3. ¦Û¤vµo«Hªº¯f¬r:
  4. ¤W­zªº³]©w§Ú­Ì¥i¥H¨¾¤î©Ò¦³¤º°e¤Î¥~±Hªº¶l¥ó,µM¦Ó¦³¨Ç¹q¸£§Ú­Ì¨Ï¥Înatªº¤è¦¡¨Ó¦V¥~³s½u,¦pªG¤¤¤F·|¦Û¤vµo«Hªº¯f¬r®É,«h¨¾¬r´NµL®Ä,¦]¬°¥¦·|¦Û¤v ¹ï¥~³s½uµo«H,§Ú­Ì¥²¶·¾×°µ¨ä¦V ¥~ª½±µ³s½uªº¯à¤O,¦pªG§A¬O¨Ï¥Îiptables¥i¥H°Ñ¦Ò¦p¤U:
    iptables -t nat -A PREROUTING -p tcp -m tcp -s  ¤º³¡IP/netmask  ! -d ¥i¥H±µ¦¬ªº¥D¾÷ --dport 25 -j DROP
    ¦pªG¨Ó·½¬O¤º³¡IP ¦Ó³s½u¤£¬O-d ©Ò³]¥D¾÷:25«h¥á±ó³s½u,¥H¤º³¡ip¦Ó¨¥,¦pªG§Aªº¥D¾÷¬O¦h¥x¥i¥H¥ý³]±µ¨üªº¥D¾÷,¦b«á­±¦A³]©Úµ´¥þ³¡25
  5. ¯f¬r³qª¾«H¤Ó¦h:
  6. ¦pªG§A¤@ª½¦¬¨ì¬Y¤@IP©Ò°e¨Óªº¯f¬r,¨C¤ÀÄÁ°e¼Æ«Ê,¦p¦ó¼È®É°±¤î¦¬¸ÓIPªº«H ¦b/etc/mail/accessÀɤ¤¥[¤J¤@¦æ(¨Ò¦p¶Ç°e¯f¬rªºIP=111.222.333.444)
    111.222.333.444  REJECT
    ¥Ø¿ý/etc/mail¤¤°õ¦æmakemap -v hash <access access (²£¥Íaccess.db)©Î¬O­«·s±Ò°ÊMailScannerªA°È,¤]·|À°§A­««Ø access.db¸ê®Æ®w
    ­n«ÊÂê«e¥ý¬d¬Ý¤@¤U¸ÓIPªºdomain±H¨Óªº,¦pªG¤£¬O±`¥Îªº«Ü²³æ«ÊÂê,§_«h­n¦n¦nªº¦Ò¼{¤@¤U
    http://www.apnic.net/db/¥i¥H¬d¨ìºô°ìªº ¬ÛÃö ¸ê®Æ,¨Ï¥Înslookup,©Îdig©Ò¬d¤£¨ì,¦pªG¬O¥xÆWµo°tªºIP­n¨ìhttp://www.twnic.net/¬d ¸ß§ó¸Ô²Óªº¸ê®Æ¦pºÞ²zªÌ(¥ª¤W¨¤,°£¤Fºô°ì¤]¥i¥H¬dIP)

  7. ©U§£¶l¥ó»~§P
  8. ¦b/etc/MailScanner/rules/spam.whitelist.rules,¤¤¥[¤J¤£­n§P¬°©U§£¶l¥ó(2004/04/26§ó·s)
  9. ¤Ï¯B°Êip¶l¥ó¥D¾÷
  10. ispµ¹¨º¨Ç¯B°Êipªº¦WºÙ(dns)©T©w«á­±¦W¦r,¦p(hinet -¬Odynamic.hinet.net)¦]¦¹§Ú­Ì¥i¥H¦b/etc/mail/access ¤¤³] dynamic.hinet.net reject,¨Ì¦¸§ä´Misp¤j¼t,¬d¸ß¨ä°ÊºAipªº©Ò¦WºÙ,¦A¥[¤JÀɮפ¤,¥H¤U¬O±`¨£ªº°ÊºAipªº¥D¾÷¦Cªí
    mailserver.idv.tw       REJECT
    www-mailserver.com      REJECT
    dynamic.hinet.net       REJECT
    dynamic.apol.com.tw     REJECT
    dynamic.so-net.net.tw   REJECT
    dynamic.ttn.net         REJECT
    dynamic.giga.net.tw     REJECT
    dynamic.tfn.net.tw      REJECT

  11. ©U§£¶l¥ó¦bsendmail³q°T®É¾×±¼,¤£®ö¶O¥ô¦óÀx¦sªÅ¶¡
    /etc/mail/sendmail.mc¥[¤J
    FEATURE(`dnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}')dnl
    FEATURE(`dnsbl',`dnsbl.sorbs.net',`"554 Rejected " $&{client_addr} " found in dnsbl.sorbs.net"')dnl
    ¥i¥H¦b³s½u®Éª½±µ¤WºôÀˬd¬O§_¬°©U§£¶l¥ó¥D¾÷,¦pªG¬O©U§£¶l¥D¾÷ª½±µ©Úµ´³s½u
  12. ¦Û¤v¤º³¡¹q¸£¤¤¬r
  13. §A¥i¸I¨ì¦Û¤v¤º³¡¹q¸£¤¤¬r,Àݵo¯f¬r¶l¥ó,ÁöµM§Aªºmail serverÄd¨ì¤F,¦ý¬O¦b¶l¥óªþ¥ó´«¦¨¦Û¤vªºÄµ§i°T®§,¨Ì°e¥X¶l¥ó,¦ý¬O¦]¬O°°¸Ëªº°e¥óªÌ,¤S°e¥X¼Æ¦Ê©Î¬O¼Æ¤d«Ê«H,³o¬O¤£¬O¸ò©U§£¶l¥ó¤@¼Ë¶Ü?§Aªº¥D¾÷¥i¯à·|³Q¿ëÃѬ°©U§£¶l¥ó¥D¾÷,¦]¦¹§Ú­Ì¥²¶·³]©wStill Deliver Silent virus¨Ï¥Îrule set,¼g¤@­ÓÀɮפº®e¦p¤U:
    From:  ¤º³¡ip            no
    FromOrTo: default        yes
    §A°Ï°ìºô¸ô°e¥Xªº¤£­n°e¥X,§O¤H°e¨Óªº­n,©È§O¤H¤£¬O°°¸Ëªº¯f¬r©Òµo,¥i¥HÅý¦¬¥óªÌ¦Û¦æ§PÂ_(2004/11/09§ó·s)
  14. ¶l¥ó¦øªA¾¹ºÞ²zªÌ
  15. ·íµo²{¯f¬r®É,·|¶Ç°e¤@«Ê³qª¾«Hµ¹postmaster ,¦pªG§AªººÞ²zªÌ¬O§O¤H½Ð­×§ï/etc/aliases¤¤postmasterªº¹ïÀ³ªÌ,­×§ï§¹¤£­n§Ñ¤F°õ¦ænewaliases
  16. °Ï°ìºô¸ô¤ºªº¯f ¬r½X§ó·s
  17. ·í§A°Ï°ìºô¸ô¤ºµL³\¦h¾÷¾¹³£»Ý­n§ó·s¯f¬r½X,§Ú­Ì¤£»Ý­n¥þ³¡³£¤Wºô¥~§ó·s,¥i¥H¨Ï¥Î³æ¤@¦øªA¾¹¦V¥~§ó·s,¦A¥Ñ¸Ó¦øªA¾¹´£¨Ñ§ó·sªA°È,§@ªk:±N¯f¬r½X©ñ¦bºô ­¶ªº ¦øªA¾¹ªº®Ú¥Ø¿ý,¦b§O¥xªº¹q¸£¤¤ªºfreshclam.conf,ÅܧóDatabaseMirror °Ñ¼Æ«á­±¬O§Aºô­¶¦øªA¾¹ªº¦WºÙ,µM«á¦b°õ¦æfreshclam´ú¸Õ¤@¤U,¦b¤U¸üªº³¡¥÷§A¥i¥H¨Ï¥Îfreshclam --datadir=ºô­¶®Ú¥Ø¿ý¸ô®|¨Ó§ó·s,¦ý¦³Åv­­ªº°ÝÃD,©Î³\§A¥i¥H¨Ï¥Îfreshclam --datadir=ºô­¶®Ú¥Ø¿ý -u root ,¦pªG§A¦³¨Ï¥Îclamav(linux),clamav-devel(windows),¹w³]¥u¯à§ó·s¦bºô­¶ªº®Ú¥Ø¿ý¯f¬r½X,¦pªG¬Oclamwin (windows)«h¥i¥H«ü©w¦b¤l¥Ø¿ý¤¤¡C
  18. ¦pªG§A¦³¦Û©w»y¨¥
    /etc/MailScanner/reports,¦b·sª©§ó·s®É·|«D±`³Â·Ð,¦ý¬O²{¦b¤ºªþ¤@­Óupgrade_languages,¨ä¾Þ§@Ãþ¦ü upgrade_MailScanner_conf,§A¥i¥H¥Î¨Ó§ó·slanguages.conf ,¦p¤U:upgrade_languages ·sªºlanguages.conf  ªºlanguages.conf ,¨ä¥¦ªº¨Ì¨ä«ü¥Ü¾Þ§@
  19. ¦P®É§ó·s¥»¾÷ªº¯f¬r½X¤Î´£¨Ñºô­¶§ó·sªA°Èªº¯f¬r½X
    ¤W­z8¶µ,¥\¯à¤£¿ù,¦ý¬Ofreshclam¥²¶·°õ¦æ¨â¦¸,©Î¬O§A¼g¤@­Ócpªº©R¥O¨Ó±Æµ{¥H¤U¬O§Ú¨Ï¥Î¦P®É§ó·sªº¤èªk,¦b/etc/cron.d¤º«Ø¥ß¤@ ­ÓÀɮפº®e¦p¤U:
    5 0-23/2 * * * root /usr/bin/freshclam --on-update-execute=`/bin/cp -u /var/lib/clamav/*.cvd /var/www/html/`
  20. ¦p¦ó¨Ï¥ÎmailÀÉ®×,Âà±H³æ¤@¶l¥ó,¦ý¤£Åܧó­ì©l±H¥óªÌ
    sendmail -ito ¦¬±HªÌ¦WºÙ < ¶l¥óÀÉ®×