我正在升级到 CentOS 7 并学习firewalld。
当我设置新服务器时,为了获得最佳安全性,我默认的 iptable 配置是(我相信这是一个非常标准的配置):
# IPv4
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/service iptables save
iptables -L -v
# IPv6
ip6tables -F
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/service ip6tables save
ip6tables -L -v
现在变成了:
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone public --remove-service dhcpv6-client
firewall-cmd --zone=public --change-interface=em1
firewall-cmd --reload
我相信这可行,但安全性较差。我觉得使用 BLOCK 区域会更合适,但 icmp 会破坏 ipv6。有没有建议最好的防火墙配置可以最好地反映旧的 iptable 规则?为了使这个问题保持通用性,我感兴趣的是只允许 SSH - 不破坏 IPv6 并且不允许任何其他东西。
谢谢!