基于Postfix带有病毒邮件过度的webmail
部署线上邮件服务器的必须准备的步骤:
1、必有一个合法的域名,并且对域名做好MX的记录解析,该记录解析到将要部署的邮件服务器的IP
2、邮件服务器的时间必须正确。
如果是本地临时的邮件服务器的部署,仅仅需要绑定一个FQDN主机名,把主机名和IP绑定在hosts文件
10.1.1.21mail.upl.com www.upl.com
一、把postfix的基本接发邮件功能部署好
# yum install postfix -y
# vim /etc/postfix/main.cf
myhostname = mail.upl.com
mydomain = upl.com
myorigin = $mydomain
inet_interfaces = all <---把原来的localhost注释掉
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
mynetworks = 127.0.0.0/8,10.1.1.0/24,172.16.0.0/16
二、安装杀毒软件
1、建立相关身份
# groupadd -g 108 clamav
# useradd -g clamav -u 108 clamav
2、编译安装
# tar xvf clamav-0.97.6.tar.gz -C /usr/src
# cd /usr/src/clamav-0.97.6
# ./configure
# make -j2 && make install
3、配置
1)配置更新杀毒软件的配置文件
shell> vim /usr/local/etc/freshclam.conf
# Example <---删除或者注释掉
DatabaseDirectory /var/lib/clamav
DatabaseOwner clamav <---病毒库相关文件的拥有者,肯定是和杀毒软件的运行身份一样
DatabaseMirror db.cn.clamav.net
DatabaseMirror database.clamav.net
Checks 24
NotifyClamd /usr/local/etc/clamd.conf
# mkdir -p /var/lib/clamav
# chown clamav:clamav /var/lib/clamav/
把笔记提供过去某个版本的病毒库解压到病毒库目录,否则全新升级很慢
# tar xvf clamav-db.tar -C /var/lib/clamav/
升级
# freshclam
2) 配置主配置文件
shell> vim /usr/local/etc/clamd.conf
#Example
LogFile /tmp/clamd.log
PidFile /var/run/clamd.pid
DatabaseDirectory /var/lib/clamav
LocalSocket /tmp/clamd.socket
User clamav
把笔记提供的启动脚本拷贝到相应目录
# cp clamd /etc/rc.d/init.d/
# chmod 755 /etc/rc.d/init.d/clamd
启动杀毒软件
# service clamd start
# ls /tmp/clamd.socket
/tmp/clamd.socket <---如有,就代表启动成功
只要病毒库更新完毕,可以测试杀毒功能
# clamscan /usr/src/clamav-0.97.6/test/ 仅仅扫描
# clamscan --remove=yes /usr/src/clamav-0.97.6/test/ 删除感染了病毒的文件
三、把杀毒软件和postfix进行整合
需要安装一个插件clamstmp
# tar xvf clamsmtp-1.10.tar.gz -C /usr/src
# cd /usr/src/clamsmtp-1.10/
# ./configure && make -j 2 && make install
# cp scripts/clamsmtpd.sh /etc/rc.d/init.d/clamstmpd
# chmod 755 !$
# cp scripts/virus_action.sh /usr/local/bin/virus_action.sh
# chmod 775 /usr/local/bin/virus_action.sh
# cp doc/clamsmtpd.conf /usr/local/etc/
编辑插件的配置
# vim /usr/local/etc/clamsmtpd.conf
OutAddress: 10026 <----把杀毒软件过滤后,没有问题的邮件发送本机10026端口
Listen: 0.0.0.0:10025
ClamAddress: /tmp/clamd.socket
Header: X-Virus-Scanned: ClamAV using ClamSMTP
Action: drop
Quarantine: on
User: clamav
VirusAction: /usr/local/bin/virus_action.sh
# vim /usr/local/bin/virus_action.sh
file="/tmp/virus.log"
dir="/tmp/quarantine/"
# mkdir -p /tmp/quarantine/
# chown clamav:clamav /tmp/quarantine/
# /etc/rc.d/init.d/clamstmpd start <---没有返回报错就对了
# lsof -i:10025
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clamsmtpd 32275 clamav 3u IPv4 98568 0t0 TCP *:10025 (LISTEN)
以上的配置只是把插件和clamav杀毒软件整合了,还必须把它和postfix整合
# vim /etc/postfix/master.cf
。。。。在配置文件最后添加:让postfix监听10026端口.....
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
127.0.0.1:10026 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_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
# vim /etc/postfix/main.cf
content_filter = scan:[127.0.0.1]:10025 <---增加内容过滤的配置
总结:
mail邮件 ---> 25:Postfix ---> 10025:clamstmpd ---> /tmp/clamd.socket 杀毒软件来扫描 ----> 10026:Postfix
重启postfix,让配置生效
# service postfix restart
注意:
注意开机之后服务启动顺序:
# service clamd start
# service clamstmpd start
# service postfix start
测试:
发送一封本地普通邮件
发送一封本地带有病毒的邮件
# mutt -f /var/mail/root <--用root身份发送邮件
发送远程邮件
四、给postfix安装一个webmail界面
# yum install perl-Text-Iconv perl-suidperl perl-CGI -y
# useradd -s /sbin/nologin tchung
# rpm -ivh openwebmail-2.53-1.i386.rpm openwebmail-data-2.53-1.i386.rpm
初始化
# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
如果提示错误,要求修改某个文件,按照提示去修改
Welcome to the OpenWebMail!
Send the site report?(Y/n) n 不需要发送报告
启动apache
# service httpd restart
登录
http://10.1.1.21:8081/webmail 只能使用普通帐号登录
不能root管理
# passwd tom
本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1243779,如需转载请自行联系原作者