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		#查看标记为类型
posted @ 2021-08-27 15:32  Cai_HL  阅读(258)  评论(0编辑  收藏  举报
>