1、linux-postfix服务器-电子邮件过滤和防病毒-技术笔记 电子邮件过滤和防病毒 postfix邮件服务系统可以针对SMTP会话中的地址,名称等信息进行检查,并根据main.cf的配置参数将某一类型的数据发送到指定的策略配置文件,由该文件配置执行的动作,该文件经过hash加密导入数据库。 1. 根据客户端的主机名地/址过滤邮件,可以是单个ip,网段ip,域名,主机名。 vi /etc/postfix/main.cf smtpd_client_restrictions = check_client_access hash:/etc/postfix/access /
2、/指定策略文件和hash数据库位置 下面设置策略文件: vi /etc/postfix/access 192.168.4 REJECT //也可以使用DISCARD丢弃 192.168.4.1 OK REJECT postmap /etc/postfix/access //该命令用于将策略文件hash一下加入数据库 //客户端地址可能是邮件真实的来源地,而helo信息只是客户端告知的地址 //客户端的信息是 2根据hello信息中的主机名地址过滤 配置main.cf smtpd_helo_required
3、 yes //要求必须使用helo命令 smtpd_helo_restrictions = reject_invalid_hostname //拒绝使用无效主机名的主机 3根据发件人地址过滤邮件 smtp_sender_login_maps = mysql:/etc/postfix/mysql_virtual_sender_maps.cf, //指定mysql类型的查询表文件和别名文件 mysql:/etc/posfix/mysql_virtual_alias_maps.cf smtpd_sender_restrictions = permit
4、mynetworks, reject_sender_login_mismatch, //发件人与登录用户不匹配时拒绝 reject_non_fqdn_sender, //发件人地址不属于合法FQDN时拒绝 reject_unknown_sender_domain, //发件人地址未知或不存在时拒绝 //以上可以防止通过发信认证的用户伪造mail from 信息 check_sender_access hash:/etc/postfix/sender_a
5、ccess //用于指向含有邮件地址域名地址的查询表,即rcpt to: 提供的信息 ---实际上是收件人地址 如:vi /etc/postfixsender_access REJECT marketing@ REJECT REJECT REJECT postmap /etc/postfix/sender_access 4根据收件人地址过滤 smtpd_recipient_restrictions = permit_mynetworks, //允许本邮件系统发出的邮件 permit_sasl_authenticate
6、d, //允许通过sasl认证的用户作为发件人 reject_unauth_destination, //收件人地址域不包括在postfix授权网络内时拒绝 reject_non_fqdn_recipient, //收件人地址域不属于合法FQDN时拒绝 reject_unknow_recipient_domain //收件人地址域或不存在时拒绝。 //通过中国互联网协会发垃圾邮件中心的网站,http://iscbl.anti- 可以根据ip查询谋个邮件服务器是否在其黑名单中 基于邮件内容过滤防毒 采用MailScanner 调度软件将接收到的
7、全部邮件放入hold队列,mailscanner接着调用SpamAssassin对内容检查,根据预设规则评分,MailScanner采取相应处理,比如分数高于谋个值直接丢弃,在谋个范围进行调用F-port扫毒,或者低于谋个值直接投递 安装Mailscanner软件包Mailscanner-4.75.11-1.rpm.tar.gz 其中有数十个rpm包和Perl软件包,但解压后只需执行./install.sh脚本即可自动安装 修改配置文件MailScanner.conf vi /etc/MailScanner/MailScanner.conf Run As User = pos
8、tfix //将运行程序的身份设为postfix Run As Group = postfix Incoming Queue Dir = /var/spool/postfix/hold //设置待过滤处理的邮件队列目录 Outgoing Queue Dir = /var/spool/postfix/incoming //设置过滤处理后的邮件队列目录 MTA = postfix //设置MTA服务器名称 Required SpamAssassin Score = 7 //高于此值的视为垃圾邮件,默认为6 High SpamAssassin Scor
9、e = 10 //高于此值的视为高分垃圾邮件 Spam Actions = deliver header “X-Spam-status: Yes” //对非高分垃圾邮件采取的动作继续投递,但在标头信息中添加引号中的信息 High Scoring Spam Actions = delete forward //对非高分邮件采取的动作,删除,同时发给指定用户邮箱集中处理 下面配置Postfix对mailscanner的支持 在main.cf文件添加 header_checks = regexp:/etc/postfix
10、/header_checks //设置使用模式查询表 编辑header_checks文件,添加 /^Received:/ HOLD 调整邮件过滤队列目录的属主属组并启动Mailscanner服务 chown –R postfix.postfix /var/spool/MailScanner/incoming chown –R postfix.postfix /var/spool/MailScanner/quarantine service MailScanner start chkconfig --level 35 MailScanner on 安装并配置Spa
11、m Assassin 垃圾邮件过滤器 Rhel5光盘含有SpamAssassin 的RPM包 SpamAssassin为Perl语言编写,依赖的perl语言软件包较多 安装时可能会提示需要安装谋个依赖软件包,可能提示的软件包如下: perl-Archive-Tar*,perl-Digest-SHAl*,perl-IO-Socket-INET6* Perl-IO-Socket-SSL,perl-Net-DNS*, per-Archive-Tar*,perl-IO-Socket-SSL*,perl-IO-Zlib* Perl-Socket6*,perl-Net-SSLeay*,perl
12、Digest-HMAC* SpamAssassin配置文件位于/etc/mail/spamassassin/local.cf ----一般不需任何修改保持默认 启动服务 service spamassassin start chkconfig –level 35 spamassassin on 安装配置F-Pro 可用于邮件病毒查杀的软件包括F-Port McAFee ClamAV Trend 等 F-Port使用于多种系统平台Linux系统可以使用其免费的workstation版本 可解压到系统的opt目录 ./install-f-prot.pl fpupda
13、te 为其中的病毒库更新程序,可手动执行更新 可为其启用计划任务设置每天指定时间更新 service crond start 测试邮件内容过滤: 在服务器给自己发一封邮件 正文包含引号内内容 “XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X” 收到的邮件主题将带有Spam?标记,说明被评为垃圾邮件 测试防病毒机制 再给自己发一封正文包括如下引号内内容 “X5o!p%@AP[4\PZX54(P^)7CC )7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*” 查看、var/log/maillog将发现病毒记录






