Linux防火墙系统集成实践
一 选型与总体架构
二 与系统服务集成
sudo firewall-cmd --permanent --zone=public --add-service=ssh --add-service=http --add-service=https && sudo firewall-cmd --reload。sudo ufw enable && sudo ufw allow 22/tcp && sudo ufw allow 80,443/tcp。sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH: "。/etc/rsyslog.conf 或 /etc/rsyslog.d/iptables.conf 中添加)::msg, contains, "SSH" -/var/log/iptables.log,随后 sudo systemctl reload rsyslog。sudo aa-enable /etc/apparmor.d/usr.sbin.sshd(AppArmor);SELinux 可用 sestatus、setenforce 等命令查看与切换模式。三 与容器和云平台集成
sudo firewall-cmd --permanent --new-zone=docker && sudo firewall-cmd --permanent --zone=docker --add-interface=docker0 && sudo firewall-cmd --permanent --zone=docker --add-source=172.17.0.0/16 && sudo firewall-cmd --permanent --zone=docker --set-target=ACCEPT && sudo systemctl restart docker firewalld。四 持久化、启动与变更管理
firewall-cmd --reload 使永久配置生效;通过 firewall-cmd --get-active-zones 与 firewall-cmd --list-all-zone 校验生效范围与策略。sudo systemctl start nftables && sudo systemctl enable nftables;变更后 sudo nft -f /etc/nftables.conf 重载。iptables-save > /etc/iptables/rules.v4 与 iptables-restore < /etc/iptables/rules.v4 做持久化;在 Debian 系可借助网络接口事件脚本(如 /etc/network/if-pre-up.d/iptables)在接口就绪时自动恢复规则,确保重启后策略不丢失。五 典型场景快速参考
sudo systemctl start firewalld && sudo systemctl enable firewalldsudo firewall-cmd --permanent --zone=public --add-service=ssh --add-service=http --add-service=https && sudo firewall-cmd --reload/var/log/firewalld.log),sudo systemctl reload rsyslogfirewall-cmd --list-all --zone=publicecho "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf && sudo sysctl -psudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source <公网IP>sudo iptables-save > /etc/iptables/rules.v4sudo apt update && sudo apt install fail2ban && sudo systemctl enable --now fail2ban/etc/fail2ban/jail.local,为 sshd 等启用监狱并指定动作(如 iptables/firewalld),重启 fail2ban 生效。