首页 > 代码库 > iptables规则总结

iptables规则总结

INPUT    # 进入
FORWARD  # 转发
OUTPUT   # 出去
ACCEPT   # 将封包放行
REJECT   # 拦阻该封包
DROP     # 丢弃封包不予处理
-A     # 在所选择的链(INPUT等)末添加一条或更多规则
-D       # 删除一条
-E       # 修改
-p     # tcp、udp、icmp0相当于所有all!取反
-P       # 设置缺省策略(与所有链都不匹配强制使用此策略)
-s     # IP/掩码(IP/24)主机名、网络名和清楚的IP地址 !取反
-j     # 目标跳转,立即决定包的命运的专用内建目标
-i     # 进入的(网络)接口 [名称] eth0
-o     # 输出接口[名称] 
-m     # 模块
--sport  # 源端口
--dport  # 目标端口
iptables-restore < 规则文件        # 导入防火墙规则
/etc/init.d/iptables save          # 保存防火墙设置
iptables -t filter -D INPUT -p icmp -j REJECT  #删除入站icmp都会被拒绝的链条
iptables -t filter -I INPUT -p icmp -j REJECT  #-I在链表开头插入,-A在链表之后添加
iptables -D INPUT 1   //删除INPUT第一条规则
iptables  -A  OUTPUT  -p icmp -j REJECT   #添加链条OUTPUT禁止icmp出站
iptables -F    #清除所有表的所有连的规则
iptables -t nat -F  #指定清除NAT表的链规则
iptables  -t filter -P FORWARD DROP    #filter转发默认被丢掉
iptables  -t filter -P FORWARD DROP    #filter入站默认被丢掉
iptables -A FORWARD -p icmp -j ACCEPT   #"!"取反,转发除icmp外所有包。
iptables -I INPUT -s 10.20.30.1 -j drop   #丢弃来自10.20.30.1的包
iptables -I OUTPUT -d 8.8.8.8 -j drop  #丢弃目标地址为8.8.8.8的数据包
iptables -I INPUT -s 192.168.26.0/24 -j REJECT   #拒绝来自26网段的ip
iptables -A FORWARD -s 192.168.26.0 -j DROP   #丢弃来自26网段的数据包
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放80端口
iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT  #开放20至22端口的tcp数据传输
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCERT #接受来自24网段的在53端口的udp数据转发
iptables -A FORWARD -d 192.168.24.0/24 -p udp --sport 53 -j ACCPT #接受目标24网段的在53端口的udp数据转发
iptables -I INPUT -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP    #TCP丢弃TCP标示符SYN,RST,ACK SYN
iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT   #开放多个端口
iptables -I FORWARD -p tcp -m iprange --src-range 192.168.21.21-192.168.21.180 -j ACCEPT    #ip地址匹配
iptables -A INPUT -m mac --mac-source 00:0c29:c0:55:3f -j DROP    #mac地址匹配
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP   #禁止转发与正常TCP连接无关的非--syn请求数据包
iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state ESTALISHED -j ACCEPT
iptables -p INPUT DROP
#除了请求80端口的数据包全都丢掉
iptables -t nat -A POSTROUTING -s 192.168.22.0/24 -o eth0 -j SNAT --to 192.168.1.118   #共享上网或者vpn转发
echo 1 > /proc/sys/net/ipv4/ip_forward       # 在内核里打开ip转发功能
route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.20.111     # 内网需要添加默认网关,并且网关开启转发
iptables -t nat -A PREROUTING -d 192.168.10.158  -p tcp --dport 9999 -j DNAT --to 10.10.20.55:22   #sshz转发
iptables -t nat -A PREROUTING  -i eth0  -d 22.22.22.123  -p tcp --dport 80  -j DNAT --to-destination 192.168.1.100  #发布服务器
iptables -t nat -nL                # 查看转发


本文出自 “龙爱雪琪” 博客,转载请与作者联系!

iptables规则总结