下载中心 | 网站地图 | 站内搜索 | 加入收藏

安恒公司 / 技术文章 / 安恒公司网管员手记 / qmail 白名单功能以及iptables防火墙联动

2007-10-17 刘世伟  阅:    下页:
qmail 白名单功能以及iptables防火墙联动

给邮件服务器加了一个白名单功能.
邮件服务器环境:用debian的4.0r1 邮件系统是qmail_1.03-44 用mysql方式来管理邮件账号.

白名单功能是在debian带的黑名单补丁的基础上做的.

qmail_omt.sh 从mysql的lastauth表格获取文本格式的白名单文件:/etc/qmail/okmailto

disable_mail.sh是从白名单取消邮件地址, 但不删除邮件账号, 在账号进行下一次pop3收信后会自动进入白名单.

anheng_qmail.diff是在debianqmail源码qmail_1.0.3-44的基础上进行的修补.

补丁下载


2007-12-13


今天增加了防火墙联动机制 2步操作

1.inotail 监视mail.info日志文件,然后把发送badmail的ip地址放进数据库vpopmail/badip

2.定时整理badip数据库, 建立封堵列表

具体的实施:

1.badip入库

建表 2个字段 ip (varchar), time (datetime) ,都建上索引

下面这条命令就不停的把badip入库了.

inotail -n 0 -f /var/log/mail.info |sed -n -u "s/.*badmailto:.*at \(.*$\)/insert into badip set ip='\1',time=now();/p" \
|mysql -u vpopmail -pxxxxxx vpopmail &

2.整理ip地址,更新iptables规则

首先修改iptables规则增加一个链:smtp专门用于放置smtp的规则. 方便清理和更新

iptables -n smtp

iptables -A INPUT -p tcp --dport 25 -j smtp

修改防火墙规则的命令行脚本:放入 /etc/crontab 每10分钟执行一次

-----------------badmail_iptables.sh

#!/usr/bin/php
<?php
mysql_connect("localhost",'root','xxxxxx')
or die("Could not connect: " . mysql_error());
mysql_select_db('vpopmail') or die("selectdb error:".mysql_error());
$beftime=date('Y-m-d H:i:s',time()-3600*4); // 4小时
//查找4小时内,发过badmail的ip,按发送次数倒序排列
$re=mysql_query("select ip,count(*) as count from badip where time>'$beftime' group by ip order by count desc limit 1000")
or die(mysql_error());
system("iptables -F smtp"); //清smtp链
while($ip=mysql_fetch_array($re))
{
if($ip[count]<2) break; //2次以上的才封堵
system("iptables -A smtp -s $ip[ip] -j REJECT"); //添加规则
}
mysql_query("delete from badip where time<'$beftime'");//清理4小时以外的badip
mysql_query("OPTIMIZE TABLE `badip` ");//优化表
?>

下页:   

相关文章
qmail错误: CNAME_lookup_failed_temporarily._ #4.4.3 - 16-02-26 - 阅读: 87517
在win下安装debian的方式 - 13-06-30 - 阅读: 148974
linux下使用ssd - 11-03-10 - 阅读: 244405
qmail-smtp增加smtp-auth认证 - 11-01-09 - 阅读: 156642
关于EtherScope II系列网络通Linux系统的几个常见问题(ES2-LAN,ES2-WLAN,ES2-PRO,ES2-LAN-SX/I,ES2-PRO-SX - 10-02-25 - 阅读: 197439
在linux下用bt协议修复远程的文件 - 09-03-13 - 阅读: 155141
linux下利用badblocks程序在线修复坏道 - 08-12-26 - 阅读: 186761
debian作无盘启动 - 08-11-24 - 阅读: 152336
debian lenny openvpn 不能启动 version_2.1~rc9-3 - 08-07-26 - 阅读: 148735
Hp 激光打印机 P1008在linux下的驱动 - 08-01-16 - 阅读: 222073
debian下的netflow工具 - 07-12-21 - 阅读: 170114
linux下的视频设备的复用 - 07-12-21 - 阅读: 149074
多款设备采用Qtopia软件,奇趣科技统领VoIP设备Linux开发平台 - 07-12-17 - 阅读: 215978
debian下的无盘linux系统安装要点 - 07-12-09 - 阅读: 188433
linux下的后门检查程序rkhunter和杀毒程序clamav - 07-04-22 - 阅读: 279308
debian 系统时间和cmos时间 - 07-04-14 - 阅读: 152071
debian下安装qmail+clamav+webmail - 07-04-03 - 阅读: 216774
linux下读写ntfs分区中文编码问题 - 07-03-11 - 阅读: 212045
linux下的DV磁带视频采集和dvd刻录 - 07-02-13 - 阅读: 206746
debian远程安装kvm虚拟机 - 07-01-13 - 阅读: 237747

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   dsp-lt.anheng.com.cn   All Rights Reserved    
北京市海淀区首体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877