Linux 防火墙的核心模块是 Netfilter,它是内核级别的框架,而用户态工具 iptables/nftables 用于配置规则。以下是详细解析:
bash
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH流量
filter(默认)、nat、mangle、raw。INPUT、OUTPUT、FORWARD(filter 表);PREROUTING、POSTROUTING(nat 表)。ACCEPT、DROP、REJECT、LOG。bash
nft add rule ip filter INPUT tcp dport 22 accept # 同等规则
zones 和 services 抽象化规则。
bash
firewall-cmd --add-service=ssh --permanentbash
ufw allow 22/tcpnf_conntrack:跟踪网络连接状态(如 ESTABLISHED、RELATED)。iptable_filter:实现基础过滤功能。iptable_nat:提供 NAT 功能(需加载模块 modprobe iptable_nat)。lsmod | grep nf_conntrack。systemctl status firewalld。nf_conntrack 哈希表冲突:调整 /proc/sys/net/nf_conntrack_max。nftables 替代 iptables(更少开销)。bash
iptables -L -v -n # iptables
nft list ruleset # nftablesbash
dmesg | grep DROP # 查看内核丢弃的包nf_conntrack)。