在虚拟机上使用CSF + iptables规则的虚拟环境防火墙?

我们正在使用Proxmox VE(OpenVZ + KVM)服务器进行虚拟化。 我们的防火墙计划是在主机上运行CSF( http://configserver.com/cp/csf.html ),因为我们过去已经有了合理的经验。

除此之外,我们在虚拟机上(主要是OpenVZ容器有相同的内核)规划简单的防火墙规则,也许有一些简单的特定规则。

我会感谢任何有类似经验的人的意见?

我知道所有的stream量都来自主机,所以在虚拟机上configuration特定防火墙的防火墙应该可以工作,但是一些iptables规则很难在OpenVZ容器上工作。

我的build议是在硬件节点上执行以下操作:

  1. 如果你的HN有两个接口,把它们都configuration成网桥(在我的情况下,我有vmbr0和vmbr1)
  2. 在csf.conf中,configuration你的ETH_DEVICE为“vmbr +”
  3. / etc / csf /中创build一个名为csfpost.sh的文件,它只是允许转发:

    #!/bin/sh IPT=/sbin/iptables $IPT -F FORWARD $IPT -P FORWARD ACCEPT 
  4. 现在,您的HN在所有接口上都受到保护,但会透明地将stream量传递到容器。

  5. 使用CSFconfiguration您的容器以保护它们。

笔记
通过在/etc/vz/vz.conf中放置以下内容,确保CSF所需的模块可用于您的VE:

  IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc ipt_REDIRECT" 

还要确保你的“numiptent”值大约在256或者更高,默认值或者128会导致CSF在你的VE上半载(参见/ proc / user_bean_counters来查看你是否达到了numiptent的限制)

我还将上面的netfilter模块添加到我的/ etc / modules(每行1个)。 我不完全确定这是否有必要。 希望这可以帮助!

如果您使用CSF,则不需要fail2ban。 CSF带有LFD,它可以做所有fail2ban(甚至更多)所做的一切。 我没有看到您提出的设置会发生任何问题,但我会build议在主机上设置最less的防火墙规则,以防止出现任何types的开销。