Iptables策略
一、四表五链
四表:
raw::                  #主要做连接追踪
mangle:                #对数据包进行修改,例如给数据包打标记MARK
nat:                   #主要修改数据包的地址和端口,例如源地址或目标地址
filter:                #实现对数据包的过滤
五链:
PREROUTING              #数据包进入路由之前
INPUT                   #目的地址为本机
FORWARD                 #实现转发
OUTPUT                  #原地址为本机,向外发送,不经过网卡
POSTROUTING             #发送到网卡之前,源地址转换,在路由之后
二、语法
iptables [-t 要操作的表]<操作命令>[要操作的链][规则号码][匹配条件][-j 匹配后的动作]
            小写         大写        大写                  小写        大写
常见操作命令:
 -L                #查看,v详细,n不反解  --line-number
 -A                #追加,默认放置最后一条
 -I                #插入,默认插入第一条
 -D                #删除
 -F                #清空规则flush
 -P                #设置默认策略policy
匹配的条件:
 -s                            #源地址
 -d                            #目标地址
 -p tcp|udp|icmp               #协议
 -i lo                         #input     从lo接口进入的数据包
 -o eth0                       #output  从eth0接口出去的数据包
 -p tcp --dport 80             #目标端口是80,必须和-p tcp|udp 连用
 -p udp --dport 53             #目标端口是53/udp
处理动作:
filter:
 -j ACCEPT              #允许
 -j DROP                #丢弃
 -j REJECT              #拒绝
 -j LOG                 #写日志
nat:
 -j SNAT                #原地址转换  POSTROUTING
 -j DNAT                #目标地址转换 PREROUTING
state:
 NEW                    #新生态
 ESTABLISHED            #连接态
 RELATED                #衍生态
 INVALID                #无效态
三、扩展匹配
-m icmp :
iptables -t filter -I INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT	
#icmp状态匹配 ping 请求状态为echo-request(ping),回复状态为echo-reply(pong)
iptables -m icmp -h 		#查看匹配的类型
-m iprange :
iptables -t filter -I INPUT -m iprange --src-range 172.16.1.10-172.16.1.20 -j REJECT
#ip地址范围匹配
iptables -m iprange -h		#查看匹配的ip格式
-m multiport :
iptables -t filter -I INPUT -p tcp -m multiport --dports 20,21,22,25,80,443 -j ACCEPT			
#多端口匹配,不是同时匹配
iptables -m multiport -h	#查看匹配的端口格式
-m tos: #ip协议头部type of service
iptables -t filter -I INPUT -p tcp --dport 22 -m tos --tos 0x10 -j REJECT
#仅拒绝ssh连接登录,不拒绝scp、rsync等传输文件
iptables -m tos -h		#查看tos类型
-m tcp :
iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST,ACK,FIN SYN --dport 80 -j ACCEPT	
#检查SYN,RST,ACK,FIN四个标记位,但是只有SYN标记位,其他三个位都没有的才匹配
iptables -m tcp -h		#查看标记为类型

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号