编写/etc/postfix/client_access文件,内容如下
192.168.1.23 reject
这代表来自192.168.1.23这台主机将不能通过postfix服务器进行发信。本文件的格式前面为client的ip ,后面为动作“ok”或“reject”。
此时一定要记得使用“postmap”命令将client_access生成hash数据库。命令如下:
#cd /etc/postfix
#postmap client_access
然后重新启动postfix服务器。
2). smtpd_sender_restrictions
针对client进行限制,编辑/etc/postfix/main.cf,添加以下参数
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
这条语句的意思是要我们将把客户端的限制策略加入一条限制规则“check_sender_access”:把针对客户的限制写在sender_access文件中,并且以hash数据库的形式存储。
编写/etc/postfix/sender_access文件,内容如下
abc@beijing.com reject
163.com reject
这代表诸如用户名像“abc@163.com” 这样以“163.com”结尾的用户都不能使用该服务器发信。
此时一定要记得使用“postmap”命令将sender_access生成hash数据库。命令如下:
#cd /etc/postfix
#postmap sender_access
3). smtpd_recipient_restrictions
针对recipient进行限制,编辑/etc/postfix/main.cf,添加以下参数
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access,permit_sasl_authenticated,reject_unauth_destination,注意规则的顺序,先检查收件人是否拒绝,如果不拒绝则再向后检查下一个规则是否为合法用户。
4) 针对mail的”header” 与 “body” 进行检查
针对邮件内容进行限制,编辑/etc/postfix/main.cf,添加以下参数
header_checks = regexp:/etc/postfix/header_checks
这条语句的意思是要我们针对mail的“主题”进行检查,如果“主题”中包含了“/etc/postfix/header_checks”文中按照正则表达式规定的关键字,将会按照” /etc/postfix/header_checks”文中的动作进行处理。
编写/etc/postfix/header_checks文件,内容如下:
/hello/ reject go out
“/ /”正则表达式内的匹配关键字要写在里面,本例中,如果主题包括hello则拒绝该邮件,同时显示“go out”警告。不需要生成数据库文件。
重新启动postfix ,进行测试会看到以下警告信息。
body_checks = regexp:/etc/postfix/body_checks
这条语句的意思是我们要针对mail的“body”进行检查,如果“body”中包含了“/etc/postfix/body_checks”文中按照正则表达式规定的关键字,将会按照” /etc/postfix/body_checks”文中的动作进行处理。
编写/etc/postfix/body_checks文件,内容如下:
/sex/ reject go out
“/ /”正则表达式内的匹配关键字要写在里面,本例中,如果mail内容出现包括sex的关键字则拒绝该邮件,同时显示“go out”警告。使用telnet方法发信能看出效果。
正则表示式的功能非常强大,建议读者自行去学习研究,然后定制出自己的mail检查方法。
以上只是邮件的初步过滤,对于网上发垃圾、病毒邮件的高手总能绕过我们的策略,我们使用流行的反垃圾防病毒。
===========================================
10. 反垃圾病毒邮件软件
安装amavisd-new
yum install amavisd-new
中文过滤规则
cp Chinese_rules.cf /usr/share/spamassassin/
service amavisd start
lsof -i:10024
安装ClamAV
yum install clamd
vim /etc/clamd.conf
去掉 ‘LocalSocket /var/run/clamav/clamd.sock’的注释,并注释掉 ‘TCPSocket 3310’,我们将使用unix socket而不是TCP,两者不可并存
设置相关目录权限:
将clamav加到amavis运行组里,并调整目录权限,否则clamav将无法扫描amavisd-new产生的临时文件
usermod -G amavis clamav
chown amavis.amavis /var/spool/vscan
chmod 750 /var/spool/vscan
chown amavis.amavis /var/spool/vscan/tmp
chmod 750 /var/spool/vscan/tmp
启动ClamAV及更新病毒库
service clamd start
配置amavisd.con文件
vim /etc/amavisd/amavisd.conf
21 $mydomain = 'lx.com';
153 $myhostname = 'mail.lx.com';
54 @local_domains_maps = qw(.); //对所有的域检查
修改投递/拦截的方法:
158 $final_virus_destiny = D_REJECT;
160 $final_spam_destiny = D_REJECT; //邮件不会被投递给收件人,但会通知发件人邮件被拒绝
99 $sa_tag2_level_deflt = 19.2; 超过这个分数,允许在邮件标题加入[SPAM] 标记
100 $sa_kill_level_deflt = 19.9; 超过这个分数,直接將信件备份后删除
配置Amavisd与Clamav结合
在
“); 在配置项上面添加
@av_scanners_backup = (”