1 最后由 zl2826 (2011-08-14 12:04:16) 编辑

主题: fail2ban.sh函数阻挡防火墙后邮件服务器正常使用

服务器环境:rhel5.6 + 硬件防火墙地址映射(172.18.81.20)
邮件服务器版本:iredmail-0.7.30-rc2

问题提出:本邮件服务器在防火墙后面,且外部访问被统一映射成了一个地址(172.18.81.20),在受到恶意访问时激发了fail2ban服务的ban和unban(禁止和解禁)机制,造成服务器随机出现访问中断,解禁时间间隔60分钟(查看日志知道的)。现阶段还不具备将邮件服务器迁至DMZ区,故暂时禁用failban服务。

建议改进:查看管理员邮件日志里的amavis部分,发现映射地址(172.18.81.20)后可以显示真实的来源地址(125.44.244.76),如下:
##################################################################
  --------------------- amavis Begin ------------------------
11 messages checked and passed.

**Unmatched Entries**
Passed SPAM, MYNETS LOCAL [172.18.81.20] [125.44.244.76]

能否将fail2ban服务做个选项,通过真实的地址来判断是否是攻击源,来激发ban和unban机制。

回复: fail2ban.sh函数阻挡防火墙后邮件服务器正常使用

zl2826 写道:

能否将fail2ban.sh函数做个选项,通过真实的地址来判断是否是攻击源,来激发ban和unban机制。

所有外部访问都在防火墙这里被改变成了由防火墙访问邮件服务器,没法获取真实 IP。

回复: fail2ban.sh函数阻挡防火墙后邮件服务器正常使用

感谢老大回复,您说的我是明白的。amavis部分可以显示后面的地址(125.44.244.76),估计是寄邮件服务器的所属域地址,攻击地址不一定是邮箱域地址,对吗?甚至有时也无法分析出源域地址。
只是不理解fail2ban.sh是如何的防护机制?好像有计数器和计时器什么的。

回复: fail2ban.sh函数阻挡防火墙后邮件服务器正常使用

Postfix,syslog 里都只识别到防火墙过来的请求,所以不太可能在邮件服务器上获取到真实地址的。

5 最后由 zl2826 (2011-08-14 21:06:00) 编辑

回复: fail2ban.sh函数阻挡防火墙后邮件服务器正常使用

在此留下关闭fail2ban的方法(其实,我很不情愿,那是多么好的东东呀!)
由于是防火墙的映射地址(172.18.81.20)被阻挡,把这个地址除外就可以了,方法如下:
# vim /etc/fail2ban/jail.conf
其中,头部[DEFAULT]默认区,有个除外设置
ignoreip = 127.0.0.1 后加入 172.18.81.20 ,如下
ignoreip = 127.0.0.1 172.18.81.20
重启服务
# fail2ban-client reload (注:fail2ban 是通过 fail2ban-client 调用 fail2ban-server 服务及守护进程)
以上处理好像还没解决问题,还要在服务器启动时不启动fail2ban服务,具体在以下路径文件:
/etc/rc.d/rc3.d/S92fail2ban 改为 K92fail2ban(会linux的朋友,你懂得!)
# cd /etc/rc.d/rc3.d/
# mv S92fail2ban K92fail2ban
# fail2ban-client stop
这才算差不多了。

参考文章:使用 fail2ban 自动封IP  http://linux.chinaunix.net/techdoc/net/ … 9293.shtml