基于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