第二篇:CentOS7 iptables命令使用详情

iptables命令的语法规则

iptables [-t table] COMMAND [chain] MATCH -j ACTION

-t table------是指操作的表,filter、nat、mangle、raw, 默认使用filter

filter : 控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output
nat : 控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting
mangle : 修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting
raw : 控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output

COMMAND------子命令,定义对规则的管理

chain------指明链路,PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

PREROUTING : 路由前
INPUT : 数据包流入口
FORWARD : 转发管卡
OUTPUT : 数据包出口
POSTROUTING : 路由后

MATCH------匹配的条件或标准

-j ACTION------操作动作,ACCEPT、DROP、REJECT

ACCEPT : 接受
DROP : 忽略
REJECT : 拒绝

查看规则及链管理

iptables [参数]

-L, --list [chain] : 列出规则;
-v, --verbose : 详细信息;
  -vv, -vvv 更加详细的信息
-n, --numeric : 数字格式显示主机地址和端口号;
-x, --exact : 显示计数器的精确值;
–line-numbers : 列出规则时,显示其在链上的相应的编号;
-S, --list-rules [chain] : 显示指定链的所有规则;

#iptables -nL
#iptables -nL –line-numbers

-N, --new-chain chain : 新建一个自定义的规则链;
-X, --delete-chain [chain] : 删除用户自定义的引用计数为0的空链;
-F, --flush [chain] : 清空指定的规则链上的规则;
-E, --rename-chain old-chain new-chain : 重命名链;
-Z, --zero [chain [rulenum]] : 置零计数器;  
-P, --policy chain target : 设置链路的默认策略

规则管理-COMMAND

-A, --append chain rule-specification: 追加新规则于指定链的尾部;
-I, --insert chain [rulenum] rule-specification : 插入新规则于指定链的指定位置,默认为首部;
-R, --replace chain rulenum rule-specification : 替换指定的规则为新的规则;
-D, --delete chain rulenum : 根据规则编号删除规则,用–line-numbers查看;

匹配的条件或标准-MATCH

匹配条件包括通用匹配条件扩展匹配条件

通用匹配条件是指针对源地址、目标地址的匹配,包括单一源IP、单一源端口、单一目标IP、单一目标端口、数据包流经的网卡以及协议。

通用匹配条件

-s, --source address[/mask][,…] : 检查报文的源IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
-d, --destination address[/mask][,…] : 检查报文的目标IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
-p, --protocol protocol : 匹配报文中的协议,可用值tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh 或者 “all”, 亦可以数字格式指明协议;
-i, --in-interface name : 限定报文仅能够从指定的接口流入;only for packets entering the INPUT, FORWARD and PREROUTING chains.
-o, --out-interface name : 限定报文仅能够从指定的接口流出;for packets entering the FORWARD, OUTPUT and POSTROUTING chains.

#iptables -A INPUT -s 10.10.10.10 -p tcp --dport 10000 -j ACCEPT

扩展匹配条件

扩展匹配条件指通用匹配之外的匹配条件。

隐含扩展匹配条件

-p tcp : 可直接使用tcp扩展模块的专用选项;
  –sport port[:port] --source-port匹配报文源端口;可以给出多个端口,但只能是连续的端口范围 ;
  –dport port[:port] --destination-port匹配报文目标端口;可以给出多个端口,但只能是连续的端口范围 ;
  –tcp-flags mask comp 匹配报文中的tcp协议的标志位;Flags are: SYN ACK FIN RST URG PSH ALL NONE;
    mask:要检查的FLAGS list,以逗号分隔;
    comp:在mask给定的诸多的FLAGS中,其值必须为1的FLAGS列表,余下的其值必须为0;
  –syn --tcp-flags SYN,ACK,FIN,RST SYN

-p udp: 可直接使用udp协议扩展模块的专用选项:
  –sport port[:port] --source-port
  –dport port[:port] --destination-port

-p icmp
  –icmp-type {type[/code]|typename}

显式扩展匹配条件

-m option选项指定扩展匹配的类型

1、multiport

以离散或连续的 方式定义多端口匹配条件,最多15个;

–sports port[,port|,port:port]… --source-ports :指定多个源端口;
–dports port[,port|,port:port]… --destination-ports:指定多个目标端口;

#iptables -A INPUT -s 10.10.10.10 -p tcp -m multiport --dports 7777,8888,9999  -j ACCEPT
2、state限制收发包的状态

–state [state:NEW, ESTABLISHED, INVALID, RELATED、UNTRACKED].

NEW: 新连接请求;
ESTABLISHED:已建立的连接;
INVALID:无法识别的连接;
RELATED:相关联的连接,当前连接是一个新请求,但附属于某个已存在的连接;
UNTRACKED:未追踪的连接;

#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3、limit

限制收发数据包的速率

–limit rate[/second|/minute|/hour|/day] 某段时间内封包的平均流量
–limit-burst number 一次同时涌入的封包是否超过给定值

#iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
4、comment

–comment “内容” 添加注释

#iptables -A INPUT -s 10.10.10.10 -p tcp -dport 18888 -m comment --comment "监控" -j ACCEPT
5、iprange

以连续地址块的方式来指明多IP地址匹配条件;

–src-range from[-to]
–dst-range from[-to]

# iptables -I INPUT -d 10.10.10.10 -p tcp -m multiport --dports 22,80,139,3306 -m iprange --src-range 172.16.0.61-172.16.0.70 -j REJECT
6、time

匹配数据包到达的时间

–timestart hh:mm[:ss]
–timestop hh:mm[:ss]
–weekdays day[,day…]
–monthdays day[,day…]
–datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
–datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
–kerneltz:使用内核配置的时区而非默认的UTC;

7、string

匹配数据包中的字符

–algo {bm|kmp}
–string pattern
–hex-string pattern
–from offset
–to offset

# iptables -I OUTPUT -m string --algo bm --string "gay" -j REJECT
8、connlimit

用于限制同一IP可建立的连接数目

–connlimit-upto n
–connlimit-above n

# iptables -I INPUT -d 10.10.10.20 -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值