我有一个运行libvirt / kvm和fail2ban (用于SSH攻击)的Ubuntu 9.04服务器。
libvirt和fail2ban都以不同的方式与iptables集成。 Libvirt使用(我认为)一些XMLconfiguration,并在启动(?)configuration转发到VM子网。 Fail2ban安装一个自定义链(可能在初始化时)并定期修改它以禁止/禁止可能的攻击者。
我还需要安装我自己的规则,将各种端口转发到运行在虚拟机和其他机器上的服务器,并设置基本的安全性(例如,除了我想打开的几个端口之外,放弃所有inputstream量),当然,我希望无需重新启动即可安全地添加/删除规则。
在我看来,iptables是一个强大的工具,缺乏某种标准化的方式来处理所有这些东西。 每个项目和每个系统pipe理员似乎都做了不同的事情! (而且我认为这里有很多“货物崇拜”pipe理员,人们会克隆粗暴的方法,比如“使用iptables – 像这样保存”。)
对于这些(和其他)工具如何操纵netfilter表,开发我自己的脚本或者只是手动执行iptables命令,我们没有办法弄清楚这两个工具(可能是其他的)究竟是什么样子的,这些其他工具? 任何新的标准或项目都是为了给这个领域带来理性? 即使我错过了一个有用的网页,可能至less包括这两个包在一起?
这是非常古老的,但是对于search和发现这个问题的人来说,fail2ban和许多其他实用程序是非常可configuration的。 你可以改变你的fail2ban动作文件,如iptables-multiport.conf来调用iptables,并以你想要的方式创build链。
例如。
actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
这在您的INPUT链中创build了一个规则,这是一种丑陋而难以pipe理的方式,但是您可以很容易地将其放在您自己的链条中。 你可以创build一个INPUTfilter,然后链接到其他的filterfail2ban,以保持所有的东西超出你的INPUT链如下。
actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT-FAIL2BAN -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
libvirt或Xen也是如此,其中有脚本被调用来完成工作。 例如,Xen使用/ etc / xen / scripts,你会发现网桥和其他iptables被调用的地方。 按照你的要求devise,最坏的情况是改变代码。 我为一个使用fail2ban修改中央防火墙,所有服务器都受到保护,这意味着在本地机器上的iptables不会显示规则。