iptables命令
·
以下是 iptables 常用命令的总结,涵盖规则管理、查看、策略配置等核心操作:
1. 查看规则
-
列出所有规则(默认
filter表):iptables -L -n -v-L:列出规则。-n:显示数字格式(不解析域名和服务名)。-v:显示详细信息(如数据包计数)。
-
查看指定表(如
nat表)的规则:iptables -t nat -L -n -v
2. 重置规则
-
清空所有规则(慎用,可能导致服务中断):
iptables -F # 清空规则链 iptables -X # 删除用户自定义链 iptables -Z # 重置计数器 -
恢复默认策略(允许所有流量):
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
3. 设置默认策略
- 默认拒绝所有入站流量,允许出站和转发:
iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP
4. 允许/拒绝规则
-
允许特定端口(如开放 TCP 80 端口):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT -
允许特定 IP 访问(如允许 192.168.1.100 访问 SSH):
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT -
拒绝所有其他流量(需放在允许规则之后):
iptables -A INPUT -j DROP -
允许本地回环接口(lo):
iptables -A INPUT -i lo -j ACCEPT
5. 状态管理
- 允许已建立的连接和关联流量(防止断开当前会话):
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
6. 网络地址转换(NAT)
-
启用 IP 转发(需修改
/etc/sysctl.conf):sysctl net.ipv4.ip_forward=1 -
配置源地址转换(SNAT):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -
端口转发(将外部 8080 转发到内部 192.168.1.2:80):
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.2:80
7. 规则持久化
-
保存规则到文件(不同发行版方法不同):
iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu service iptables save # CentOS/RHEL -
开机自动加载规则:
iptables-restore < /etc/iptables/rules.v4
8. 高级用法
-
限制连接速率(防止暴力破解 SSH):
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP -
日志记录(记录被拒绝的流量):
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
示例:保护 SSH 端口
# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许特定 IP 访问 SSH(替换为你的 IP)
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
# 拒绝其他 SSH 访问
iptables -A INPUT -p tcp --dport 22 -j DROP
注意事项
- 规则顺序:iptables 按顺序匹配规则,第一条匹配的规则生效。
- 远程操作风险:配置防火墙时,确保留有 SSH 访问权限,避免被锁在服务器外。
- 测试规则:使用
iptables-apply或先设置临时规则再保存。
掌握这些命令后,可以灵活配置防火墙规则。如需更现代的工具,可学习 nftables(iptables 的替代品)。
参考文章
更多推荐
所有评论(0)