Chinaunix
标题:
Postfix+ClamAV+Amavisd-new
[打印本页]
作者:
剑心通明
时间:
2008-04-09 08:52
标题:
Postfix+ClamAV+Amavisd-new
從 2004 年初到現在 2004 年 3月15 日止,網路上病毒滿天飛,蠻多同仁因為誤開了有毒的 e-mail,而造成病毒到處流竄央及其他同事,累壞了不少 MIS 人員,這真是極大的困擾,所以郵件伺服器防毒的工作,將是事在必行的。雖然說:Server 上郵件防毒過濾,並不能百分之百的阻礙病毒的流竄,但是多一道防線總是多一份安心,Clamav 經過網路上朋友的測試報告結果,雖然為免費的軟體但其防毒效益達將進 99% ,因此,我將現有的 Postfix Mail 加裝免費的郵件防毒軟體 Clamav ,來防禦病毒郵件。
Environment :
硬體:i386 PC Intel P3 500
記憶體網卡:512M RAM + Intel 網卡
作業系統:FreeBSD 6.0 Release
Flowchart :
e-mail --> [postifx (*:25)] -->[amavisd-new (127.0.0.1:10024)] -->[postfix (127.0.0.1:10025)] -->[delivery agent (local/smtp/...)]
Setp 1.
加裝 Clamav
#cd /usr/ports/security/clamav
#make install clean # 全都沒選
Options for clamav 0.87.1
[ ] MILTER Compile the milter interface
[ ] CURL Support URL downloading
[ ] LIBUNRAR Support for external Unrar library
編輯啟動檔 #vi /etc/rc.conf
clamav_clamd_enable="YES" # 讓 clamav 於開機時自動啟動
clamav_freshclam_enable="YES" # 讓 freshclam 於開機時自動以 daemon 方式啟動
#cd /usr/local/etc
#cp freshclam.conf.default freshclam.conf # freshclam 是 clamav 病毒更新程式
編輯設定檔: #vi /usr/local/etc/clamd.conf # 內容沒有甚麼大的更改,大約開了下面這些東西:
LogFile /var/log/clamav/clamd.logLogFileMaxSize 2MLogTimeLogSyslogLogVerbosePidFile /var/run/clamav/clamd.pidLocalSocket /var/run/clamav/clamdStreamSaveToDiskMaxDirectoryRecursion 15User clamavAllowSupplementaryGroupsScanMailScanArchiveArchiveMaxFileSize 10MArchiveMaxRecursion 5ArchiveMaxFiles 1000ClamukoScanOnOpenClamukoScanOnCloseClamukoScanOnExecClamukoIncludePath /homeClamukoMaxFileSize 1MClamukoScanArchive
Setp 2.
再加裝 Amavisd-new
#cd /usr/ports/security/amavisd-new/
#make install clean # 全都不選
Options for amavisd-new 2.3.3,1
[ ] MYSQL MySQL support
[ ] PGSQL PgSQL support
[ ] LDAP LDAP support
[ ] MILTER sendmail milter support
編輯設定檔:#cp /usr/local/etc/amavisd.conf-sample /usr/local/etc/amavisd.conf
#vi /usr/local/etc/amavisd.conf # 總共有八個 Section可編輯,內容如下:
# Section I$mydomain = 'ms1.ntut.idv.tw';$forward_method = 'smtp:127.0.0.1:10025';$notify_method = $forward_method;# Section II 沒更改變使用預設# Section III $DO_SYSLOG = 0; # 由 1 改 0# Section IV沒更改變使用預設# Section V沒更改變使用預設# Section VI沒更改變使用預設# Section VII沒更改變使用預設# Section VIII沒更改變使用預設
新增 log 檔所要使用的目錄及改變目錄權限:
#mkdir /var/log/amavis
#chown vscan:vscan amavis
#cd amavis
#touch amavis.log
#chown vscan amavis.log
#cd /var
#chown -R vscan:clamav amavis
編輯啟動檔 #vi /etc/rc.conf 增加:
amavisd_enable="YES" # rc.conf 裡讓 amavisd 開機自動 up
Setp 3.
#vi /usr/local/etc/postfix/master.cf # 注意下面 -o 之前必須要空一格 postfix 才會正常啟動
smtp-amavis unix - - n - 2 smtp -o disable_dns_lookups=yes127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes
#vi /usr/local/etc/postfix/main.cf
content_filter = smtp-amavis:[127.0.0.1]:10024
#cd /usr/local/etc/postfix/
#vi aliases # 編輯 aliases 這個 DB 檔內容如下:
virusalert: root # 將寄給 virusalert 的病毒警告信,轉給 root 這位管理者。
#postalias aliases # 將資料導入 postfix 的 DB
#postfix reload # 重跑 postfix
#reboot # 重開機讓 amavisd-new 及 clamav ,freshclam 開機時跑起來
測試:
# telnet localhost 10024
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.ms1.ntut.idv.tw.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
quit
# telnet localhost 10025
Trying 127.0.0.1...
Connected to localhost.ms1.ntut.idv.tw.
Escape character is '^]'.
220 ms1.ntut.idv.tw ESMTP Postfix
quit
參考資料:
http://www.clamav.net/
http://www.ijs.si/software/amavisd/
http://www.voyager.gr.jp/~sampei/freebsd/amavis_m.html
http://mail.x-si.org/articles/av.html
To Add .
2004/04/13 遇到一個問題,很多 Mail 被錯判為 SpamMail,所以找到 /usr/local/etc/amavisd.conf 裡的這幾段,並且除了 $final_virus_destiny 之外,其餘全設定為 D_PASS ,將垃圾郵件過濾機智關掉只留下防毒,以防止錯判。
$final_virus_destiny = D_BOUNCE; # (defaults to D_BOUNCE)$final_banned_destiny = D_PASS; # (defaults to D_BOUNCE)$final_spam_destiny = D_PASS; # (defaults to D_REJECT)$final_bad_header_destiny = D_PASS; # (defaults to D_PASS)
本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u/4206/showart_522904.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2