我想从 切换iptables
到Brocade/Vyatta
,但在“转换”防火墙规则时遇到了问题。
这是我的 iptables,它可以正常工作:
# Default policy to drop 'everything' but our output to internet
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Allow established connections (the responses to our outgoing traffic)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow local programs that use loopback (Unix sockets)
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
# Allow traffic between VLAN servers
iptables -A INPUT -s 89.55.42.0/28 -j ACCEPT
# Allow SSH
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# Allow ICMP for monitoring
iptables -A INPUT -p icmp -j ACCEPT
这是我在 Brocade/Vyatta 上的尝试:
set security firewall name VLAN-200-IN default-action 'drop'
set security firewall name VLAN-200-IN rule 10 action 'accept'
set security firewall name VLAN-200-IN rule 10 source address '89.55.42.0/28'
set security firewall name VLAN-200-IN rule 20 action 'accept'
set security firewall name VLAN-200-IN rule 20 destination port '22'
set security firewall name VLAN-200-IN rule 20 protocol 'tcp'
set security firewall name VLAN-200-IN rule 30 action 'accept'
set security firewall name VLAN-200-IN rule 30 protocol 'icmp'
set security firewall name VLAN-200-OUT default-action 'accept'
它与我的 VLAN/VIF 相连:
interfaces {
bonding dp0bond1 {
address 77.51.23.1/23
mode lacp
vif 200 {
address 89.55.42.0/28
firewall {
in VLAN-200-IN
out VLAN-200-OUT
}
}
vrrp {
vrrp-group 2 {
...
}
}
}
...
我正在测试并希望保护 VLAN 200,但在我的示例中,我仍然能够通过 SIP 端口 5060 将数据包发送到网关后面的服务器。我误解了什么?
答案1
诚然,我不了解这些 Vyatta 盒子,但如果我们假设 VIF 配置在行为上与 Cisco 路由器上的 SVI(Vlan 接口)类似,那么规则的进出方向应该从路由器的 VLAN 接口的角度来考虑,而不是 VLAN 本身。
换句话说,在用于交通进入路由器 在此 VLAN 上,出去用于交通离开路由器在此 VLAN 上。IN 规则保护路由网络的其余部分免受在vif 200 接口。OUT 规则保护 vif 200 接口上的内容不受网络其余部分的影响。
现在您应该看到,通过非常宽松的 VLAN-200-OUT 策略,您可以允许任何内容通过 vif 200 接口路由到您的服务器。由于 5060 上的 SIP 流量可能是 UDP,因此它不需要双向 TCP 连接设置(这可能会被 IN 规则捕获),而是允许通过。
当然,我可能对这个特定平台的理解有误 - 而且您的实际网络拓扑并不完全清楚。Vyatta 盒子可能充当路由器吗?