iptables防火墙的详细使用示例,涵盖基础规则配置、NAT、端口转发、访问控制等核心操作:
一、iptables 防火墙 (传统工具)
1. 基础规则管理
查看规则
iptables -L -n -v
iptables -t nat -L -n -v
清除所有规则
iptables -F
iptables -t nat -F
iptables -X
iptables -Z
2. 链(Chain)操作
允许特定流量
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 80 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
阻止流量
iptables -A INPUT -s 10.0.0.5 -j DROP
iptables -A INPUT -s 172.16.0.0/24 -j REJECT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
3. NAT 与端口转发
共享网络(SNAT/MASQUERADE)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
端口转发(DNAT)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT
4. 规则持久化
保存与恢复规则
apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
service iptables save
systemctl enable iptables