iptables属于一个强大的Linux 防火墙工具,可以设置、维护和检查IP数据包过滤规则。通过iptables可以创建规则实现网络流量、过滤数据包、复杂网络安全策略设置等。在本文华纳云总结iptables常见的设置规则示例和用法。
基本命令结构中,查看当前规则:
iptables -L
-L列出当前所有规则:
清楚所有规则:
iptables -F
-F删除所有规则。
查看特定链的规则:
iptables -L INPUT
常见规则中,允许特定端口流量,如允许SSH(端口22)的流量:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT 添加规则到 INPUT 链。
-p tcp 指定协议为 TCP。
--dport 22 指定目标端口为 22。
-j ACCEPT 允许流量通过。
允许HTTP(端口80)和HTTPS(端口443)的流量:
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
拒绝特定IP的流量地址,如拒绝来自 IP 地址 192.168.1.100 的所有流量:
iptables -A INPUT -s 192.168.1.100 -j DROP
-s 192.168.1.100 指定源 IP 地址。
-j DROP 丢弃流量。
允许本地回环接口的流量,允许来自本地回环接口(lo)的流量:
iptables -A INPUT -i lo -j ACCEPT
限制每秒的连接次数,限制每秒对SSH端口的连接数为3:
iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/s -j ACCEPT
设置默认策略,把默认策略设置为拒绝所有输入流量:
iptables -P INPUT DROP
-P INPUT DROP 将 INPUT 链的默认策略设置为 DROP。
把默认策略设置成允许所有输出流量:
iptables -P OUTPUT ACCEPT
保存当前规则到文件(Ubuntu):
iptables-save > /etc/iptables/rules.v4
恢复规则:
iptables-restore < /etc/iptables/rules.v4
进阶配置中,可以通过设置NAT,允许转发并设置NAT,如允许局域网通过本地服务器上网:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
配置端口转发,将来自端口8080的流量转发到本地的80端口:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:80
启用IP转发,启用内核IP转发功能:
sysctl -w net.ipv4.ip_forward=1
-A:追加规则到指定链。
-D:删除指定链中的规则。
-I:在指定链的最前面插入规则。
-R:替换指定链中的规则。
-t:指定表(如 filter、nat、mangle)。
-j:指定目标动作(如 ACCEPT、DROP、REJECT、LOG)。
不同的 Linux 发行版中,保存和恢复 iptables 规则的方法可能会有所不同。确保在配置完成后,保存规则以便重启后能自动加载。
在 Ubuntu/Debian 上保存:
iptables-save > /etc/iptables/rules.v4
CentOS/RHEL 上保存:
service iptables save
以上就是iptables的基本操作和规则,可以帮助您配置和管理好网络流量。提升服务器的安全性,如果是需要更复杂的规则或者是网络配置操作,可以参考iptables官方文档或是华纳云帮助中心相关安全新闻。