基于Sendmail和Perl的邮件附件过滤系统(4)
$Administrator = '[email protected]';
$DaemonAddress = '[email protected]';
$Stupidity{"flatten"} = 0;
$Stupidity{"NoMultipleInlines"} = 0;
sub filter_begin {
}
sub filter {
my($entity, $fname, $ext, $type) = @_;
if (re_match_ext($entity, '^\.(exe|com|bat|vbs|scr|shs|dll|vxd|pif|reg|ocx)$')) {
action_discard();
action_notify_sender("Your message with attachment '$fname' had been deleted by our mail server because of security issue\n");
return action_quarantine($entity, "The message with attchment '$fname' was deleted by mail server.");
}
return action_accept();
}
1;
上面的过滤规则表示删除带上面所列出的扩展名的邮件且通知发送者邮件被删除,接收其它所有的邮件。我也更改/usr/local/bin/mimedefang.pl文件以致不要保留邮件附件在/var/spool/MIMEDefang目录中,该文件有详细的自我解释,请编辑该文件去掉保留一份被删除邮件附件在硬盘上的部分。
f. 启动系统并测试
简单地拷贝example目录下的为redhat而写的redhat-sendmail-init-script到 /etc/rc.d/init.d/sendmail并且更改Sendmail启动部分为
/usr/sbin/sendmail -L sm-mta -bd -q30m
/usr/sbin/sendmail -L sm-msp-queue -Ac -q30m
如果你的邮件服务器每天需要处理成千上万的邮件,则考虑拷贝另一个脚本redhat-sendmail-init-script-with-multiplexor到/etc/rc.d/init.d/sendmail,加快处理速度。
最后用/etc/rc.d/init.d/sendmail start启动sendmail,发送带.exe的附件进行测试。
- 最新评论