我们正在使用 Proxmox VE (OpenVZ + KVM) 服务器进行虚拟化。我们的防火墙计划是使用 CSF (http://configserver.com/cp/csf.html) 在主机上运行,因为我们过去对它有着相当好的体验。
除此之外,我们还计划在虚拟机(主要是具有相同内核的 OpenVZ 容器)上制定简单的防火墙规则,也许还计划制定 fail2ban 简单的特定规则。
我很感激有类似经历的人的评论?
我知道所有流量都是通过主机传输的,因此那里的组合防火墙和虚拟机上的特定防火墙应该可以工作,尽管一些 iptables 规则很难在 OpenVZ 容器上运行。
答案1
我的建议是在硬件节点上执行以下操作:
- 如果您的 HN 有两个接口,请将它们都配置为网桥(在我的情况下,我有 vmbr0 和 vmbr1)
- 在 csf.conf 中,将您的 ETH_DEVICE 配置为“vmbr+”
创建一个名为csfpost客户端在/etc/csf/仅允许转发:
#!/bin/sh IPT=/sbin/iptables $IPT -F FORWARD $IPT -P FORWARD ACCEPT
现在您的 HN 在所有接口上都受到保护,但可以透明地传递往返于您的容器的流量。
- 使用 CSF 配置您的容器以保护它们。
笔记
确保 CSF 所需的模块可供您的 VE 使用,方法是将以下内容放入您的/etc/vz/vz.conf:
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 个)。我不太确定这是否有必要。希望这能有所帮助!
答案2
如果您使用 CSF,则不需要 fail2ban。CSF 附带 LFD,它可以完成 fail2ban 的所有功能(甚至更多!)。我认为您提议的设置不会出现任何问题,但我建议在主机上设置最少的防火墙规则,以防止任何形式的开销。