Ubuntu郵件服務器設置反病毒軟件(以ClamAV+Postfix集成為例)
確保Ubuntu郵件服務器已完成基礎配置(如Postfix、Dovecot安裝),并具備root或sudo權限。
通過APT包管理器安裝ClamAV守護進程、病毒數據庫更新工具及Postfix郵件過濾器:
sudo apt update
sudo apt install clamav clamav-daemon clamav-freshclam clamav-milter -y
clamav:核心反病毒引擎;clamav-daemon:后臺守護進程,持續監聽掃描請求;clamav-freshclam:病毒數據庫自動更新工具;clamav-milter:Postfix兼容的郵件掃描接口(Milter協議)。編輯freshclam.conf文件,取消以下配置項的注釋并修改(若不存在則添加):
sudo nano /etc/clamav/freshclam.conf
UpdateLogFile /var/log/clamav/freshclam.log(啟用日志記錄);LogRotate yes(日志輪轉);DatabaseMirror database.clamav.net(默認鏡像,可保留);NotifyClamd /etc/clamav/clamd.conf(通知clamd守護進程更新)。手動觸發首次數據庫更新(后續會自動每日更新):
sudo freshclam
若出現“ERROR: Can’t create temporary directory”錯誤,需創建日志目錄并賦予權限:
sudo mkdir /var/log/clamav
sudo chown clamav:clamav /var/log/clamav
編輯clamd.conf文件,設置Milter套接字以與Postfix通信:
sudo nano /etc/clamav/clamd.conf
PidFile /var/run/clamav/clamd.pid(守護進程PID文件路徑);DatabaseDirectory /var/lib/clamav(病毒數據庫目錄);MilterSocket /var/spool/postfix/clamav/clamav-milter.ctl(Milter套接字路徑,需與Postfix配置一致);MaxConnectionQueueLength 200(最大連接隊列長度,根據服務器負載調整);ReadTimeout 300(讀取超時時間,單位秒)。創建ClamAV套接字目錄并賦予權限:
sudo mkdir -p /var/spool/postfix/clamav
sudo chown clamav:postfix /var/spool/postfix/clamav
sudo chmod 750 /var/spool/postfix/clamav
編輯Postfix主配置文件main.cf,添加內容過濾規則:
sudo nano /etc/postfix/main.cf
在文件末尾添加:
content_filter = scan:[127.0.0.1]:10025
receive_override_options = no_address_mappings
content_filter:指定郵件需經scan服務(127.0.0.1:10025)掃描;no_address_mappings:防止郵件地址在過濾過程中被修改。編輯Postfix master進程配置文件master.cf,添加scan服務定義:
sudo nano /etc/postfix/master.cf
在文件末尾添加:
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o disable_mime_output_conversion=yes
-o smtp_generic_maps=
127.0.0.1:10025 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
scan:定義轉發到本地10025端口的SMTP服務;127.0.0.1:10025:定義接收轉發郵件的SMTPD服務,禁用重復檢查。重啟所有相關服務以應用配置:
sudo systemctl restart clamav-daemon clamav-freshclam postfix
測試ClamAV掃描功能(可選):
/var/log/mail.log,若出現“Virus detected”字樣則表示配置成功。clamav-freshclam默認每日自動更新,可通過sudo freshclam手動觸發;/var/log/mail.log和/var/log/clamav/freshclam.log,排查掃描失敗或誤報問題;clamd.conf中的MaxConnectionQueueLength(避免連接堆積)和Postfix的receive_override_options(平衡安全性與兼容性)。通過以上步驟,Ubuntu郵件服務器可實現基于ClamAV的病毒掃描,有效攔截傳入/傳出郵件中的惡意軟件。如需更全面的反垃圾郵件功能,可結合SpamAssassin、Postgrey等工具進一步優化。