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等工具进一步优化。