nftables 防火墙的详细使用示例,涵盖基础规则配置、NAT、端口转发、访问控制等核心操作:
二、nftables 防火墙 (现代替代工具)
1. 基础规则管理
查看规则集
nft list ruleset
清除规则
nft flush ruleset
2. 创建表与链
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
3. 定义规则
允许特定流量
nft add rule inet filter input tcp dport 22 ct state new,established accept
nft add rule inet filter input ip saddr 192.168.1.100 tcp dport 80 accept
nft add rule inet filter input iif "lo" accept
阻止流量
nft add rule inet filter input meta l4proto icmp drop
nft add rule inet filter input ip saddr 10.0.0.0/24 drop
4. NAT 与端口转发
共享网络(MASQUERADE)
nft add table nat
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
nft add rule nat postrouting oif eth0 masquerade
端口转发(DNAT)
nft add chain nat prerouting { type nat hook prerouting priority -100 \; }
nft add rule nat prerouting iif eth0 tcp dport 8080 dnat to 192.168.1.10:80
nft add rule inet filter forward ip daddr 192.168.1.10 tcp dport 80 accept
5. 规则持久化
nft list ruleset > /etc/nftables.conf
systemctl enable nftables