我有两个接口:eth0(公共地址)和 lxcbr0,地址为 10.0.3.1。
我有一个 LXC 客户机,IP 为 10.0.3.10
这是我的 firehol 配置:
version 5
trusted_ips=`/usr/local/bin/strip_comments /etc/firehol/trusted_ips`
trusted_servers=`/usr/local/bin/strip_comments /etc/firehol/trusted_servers`
blacklist full `/usr/local/bin/strip_comments /etc/firehol/blacklist`
interface lxcbr0 virtual
policy return
server "dhcp dns" accept
router virtual2internet inface lxcbr0 outface eth0
masquerade
route all accept
interface any world
protection strong
#Outgoing these protocols are allowed to everywhere
client "smtp pop3 dns ntp mysql icmp" accept
#These (incoming) services are available to everyone
server "http https smtp ftp imap imaps pop3 pop3s passiveftp" accept
#Outgoing, these protocols are only allowed to known servers
client "http https webcache ftp ssh pyzor razor" accept dst "${trusted_servers}"
在我的主机上,我只能连接到端口 80 上的“受信任的服务器”。在我的客户机上,我可以连接到每个主机上的端口 80。我以为 firehol 会阻止这一点。
我可以添加/更改一些东西以便我的客户继承 eth0 接口的规则吗?
答案1
您需要打开net.bridge.bridge-nf-call-iptables
sysctl,它将在传递之前通过 iptables 运行桥接数据包。您可能需要设置单独的规则,具体取决于桥接的设置方式,但如果您打开该 sysctl,您肯定可以使用 iptables 通过桥接过滤数据包。