下载中心  |   网站地图  |   站内搜索  |   加入收藏
最新更新
安恒动态
产品信息
业界动态
技术文章


安恒公司 / 技术文章 / 安恒公司网管员手记 / qmail 白名单功能以及iptables防火墙联动
qmail 白名单功能以及iptables防火墙联动
2007-10-17    刘世伟       阅读:

给邮件服务器加了一个白名单功能.
邮件服务器环境:用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` ");//优化表
?>

责任编辑: admin

相关文章
debian lenny openvpn 不能启动 version_2.1~rc9-3  08-07-26 - 阅: 6890
Hp 激光打印机 P1008在linux下的驱动  08-01-16 - 阅: 17368
debian下的netflow工具  07-12-21 - 阅: 15641
多款设备采用Qtopia软件,奇趣科技统领VoIP设备Linux开发平台  07-12-17 - 阅: 22245
debian下的无盘linux系统安装要点  07-12-09 - 阅: 16939
linux下的后门检查程序rkhunter和杀毒程序clamav  07-04-22 - 阅: 76810
debian 系统时间和cmos时间  07-04-14 - 阅: 11756
debian下安装qmail+clamav+webmail  07-04-03 - 阅: 73351
linux下读写ntfs分区中文编码问题  07-03-11 - 阅: 15612
linux下的DV磁带视频采集和dvd刻录  07-02-13 - 阅: 84129
debian远程安装kvm虚拟机  07-01-13 - 阅: 76388
linux内核虚拟机 kvm  07-01-05 - 阅: 90141
在debian下用eaccelerator加速php性能 --安恒网管员手记  06-06-28 - 阅: 117072
linux下raid5磁盘阵列实施  06-03-13 - 阅: 99486
linux在安恒公司的应用 ---安恒网管员手记  06-01-16 - 阅: 144365
qmail+debian --安恒网管员手记  06-01-15 - 阅: 113755
debian Etch版 010908312D230C5F 错误  05-12-31 - 阅: 86047
debian下应用raid5提高数据安全性--安恒网管员手记  05-05-02 - 阅: 131857
打印机共享器跟linux的连接 --安恒网管员手记  05-04-20 - 阅: 132918
Tcpdump命令的使用与示例——linux下的网络分析  05-04-08 - 阅: 160089

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