我使用ConfigServer Security & Firewall插件运行2台cPanel服务器。 该插件的function之一是通过iptables(临时和/或永久)阻止各种authentication(POP3 / IMAP,SMTP,FTP,webmail,mod_security等)失败的IP。
现在,我想推动这些IP块到边界路由器尽快丢弃数据包(并保护networking上的其他机器)。
请记住,N次login失败后,IP被阻塞5分钟,然后重新允许。 如果一小时内多次禁止IP,则永久封锁,并应“手动”解锁。 所以我需要一个接近实时的解决scheme。
我正在寻找的是比在cPanels和边界路由器上发射一些cronjob更好的方法来:
我知道,我将需要一些脚本来parsing和修改规则,因为cPanels有一个以太网接口和一些别名,而边界路由器有两个 ehternet接口和一些环回。
涉及的所有机器都使用Linux。
编辑按@pjmorse评论。
该插件由一堆perl和configuration文件组成。 我感兴趣的部分是扫描日志文件( lfd )并安装iptables规则(并发送警报邮件)的过程。 事实上,它经常升级(每周一到两次),本身就是> 7000线perl,所以我不习惯篡改它。
提供实时“传输”的一种解决scheme是将iptablesreplace为在路由器上调用iptables的脚本。
/path/to/override/iptables作为脚本运行 ssh root@routerhost iptables "$@" PATH="/path/to/override:$PATH" 现在每当插件去寻找iptables它都会在/path/to/override $PATH 。 当将脚本收到的所有parameter passing给routerhost上的iptables时,它将运行脚本。
但是,如果插件使用iptables的绝对path,您将不得不手动更改插件中的path。