因為 clamsmtp 實在太自作主張了,
今天考完 computer architecture 回家就把它移除,
著手安裝 amavisd-new,
它的設定還蠻複雜的...
由於 FreeBSD 從 ports 安裝的話,
預設就會有一份 amavisd.conf,
裡面的設定就是假設你用的是 spamassassin + uvscan 的環境,
所以要先把 spamassassin 關掉,
在前面加上一行 @bypass_spam_checks_maps = (1); 就可以了,
其它就是照大多數 google 搜得到的去設定那幾項...
postfix 的 master.cf 就在後面加上:
1 |
smtp-amavis unix - - n - 2 smtp -o disable_dns_lookups=yes |
和
1 2 3 4 5 6 7 8 9 10 11 |
127.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 |
然後 main.cf 最後補一行
1 |
content_filter = smtp-amavis:127.0.0.1:10024 |
就可以了。
再來就是要讓執行 clamav daemon 的 user 和 amavisd 一樣,
我覺得改 clamav 的 user 比較簡單,
就把 clamav 相關設定檔裡的帳號改成 vscan,
然後去 /var 下面找到相對應的幾個目錄 chown 一下...
由於 amavisd 還會很雞婆的去用 regexp 掃一堆東西然後把信丟掉或是做額外的標記處理,
所以又加上了:
1 2 |
@bypass_banned_checks_maps = (1); @bypass_header_checks_maps = (1); |
把這些多餘的行為濾除掉...
要知道怎樣設定這些東西,
必須看 amavisd.conf-default 的內容才知道,
這裡面有最完整的解說,
以及各選項變數的預設值...
再來就是我很不喜歡 MTA 主動把信丟掉,
丟或不丟的處理應該由 MUA 來負責才對,
MTA 只應該盡到告知的義務即可,
所以全部的情形都把它設定成 D_PASS:
1 2 3 4 |
$final_virus_destiny = D_PASS; $final_banned_destiny = D_PASS; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS; |
雖然只有用到 virus,不過既然看到就順手改一改...
這樣如果掃出來是病毒信,
amavisd-new 會產生一封新信件,
把原信當成附件送給 user,
新信件的內容會寫出病毒名稱,
header 會出現以「X-Amavis-Alert: INFECTED」為開頭的字串,
所以只要在 MUA 設定成去檢查它來分類信件就可以了...
雖然只有用到 virus,不過既然看到就順手改一改...這樣如果掃出來是病毒信,amavisd-new 會產生一封新信件,把原信當成附件送給 user,新信件的內容會寫出病毒名稱,header 會出現以「X-Amavis-Alert: INFECTED」為開頭的字串,所以只要在 MUA 設定成去檢查它來分類信件就可以了...
接下來就會發現到 amavisd-new 會把病毒信留一份副本起來,
所以要另外加一行:
1 |
$virus_quarantine_method = ''; |
這樣就讓它不會畫蛇添足了...
最後因為移除 clamsmtp 和停掉 postfix 的關係,
造成 mail queue 裡有一些遺跡,
一直在 maillog 看到煩死人的 warning:
1 |
postfix/qmgr[604]: warning: connect to transport scan: Connection refused |
跑去 /var/spool/postfix 把下面各目錄裡的檔案用直覺清一清,就解決了...
整體來說 clamav 抓病毒的能力還算是滿意,
至少可以認出這陣子在系上非常猖獗的病毒,
也丟了前陣子網路上很流行拿來測防毒軟體能力的 101 隻病毒,
懶得算抓到幾隻,不過為數不少就是了...