iptables扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables扩展相关的知识,希望对你有一定的参考价值。

显式扩展:必须显式指明使用的扩展模块(rpm-ql iptables | grep "\.so")

CentOS6: man iptables

CentOS7: man iptables-extensions

1、multiport扩展

以离散方式定义多端口匹配;最多指定15个端口;

[!]--source-ports,--sports port[,port|,port:port]...:指明多个源端口;

[!]--destination-ports,--dports port[,port|,port:port]...:指明多个离散的目标端口;

[!]--ports port[,port|,port:port]...

iptables -I INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m multiport--dport 22,80 -j ACCEPT

iptables -I OUTPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m multiport--sport 22,80 -j ACCEPT

2、iprange扩展

[!]--src-range from[-to]:指明连续的源IP地址范围;

[!]--dst-range from[-to]:指明连续的目标IP地址范围;

iptables -I INPUT -d 172.16.100.9 -p tcp -m multiport --dports 22:23,80-m iprange --src-range 172.16.100.1-172.16.100.120 -j ACCEPT

iptables -I OUTPUT -s 172.16.100.9 -p tcp -m multiport --sports 22:23,80-m iprange --dst-range 172.16.100.1-172.16.100.120 -j ACCEPT

3、string扩展

检查报文中出现的字符串;

--algo{bm|kmp}

bm= Boyer-Moore

kmp= Knuth-Pratt-Morris

[!]--string pattern

iptables -I OUTPUT -m string --algo bm --string ‘movie‘ -j REJECT

4、time扩展

根据报文到达的时间与指定的时间范围进行匹配;

--datestart

--datestop

--timestart

--timestop

--monthdays

--weekdays

iptables -I INPUT -d 172.16.100.1 -p tcp --dport 80 -m time --timestart00:00--timestop 08:00 -j REJECT

5、connlimit扩展(centos7)

根据每客户端IP(也可以是地址块)做并发连接数数量匹配;

--connlimit-aboven:连接的数量大于n

--connlimit-upton: 连接的数量小于等于n

6、limit扩展

基于收发报文的速率做检查;

令牌桶过滤器

--limitrate[/second|/minute|/hour|/day]

--limit-burstnumber

iptables -I INPUT -d 172.16.100.1 -p icmp --icmp-type 8 -m limit--limit-burst 5 --limit 30/minute -j ACCEPT

iptables -I OUTPUT -s 172.16.100.1 -p icmp --icmp-type 0 -j ACCEPT

7、state扩展

根据连接追踪机制检查连接的状态;

调整连接追踪功能所能够容纳的最大连接数量:

/proc/sys/net/nf_conntrack_max

已经追踪到并记录下的连接:

/proc/net/nf_conntrack

不同协议或连接类型追的时长:

/proc/sys/net/netfilter/

可追踪的连接状态:

NEW:新发出的请求;连接追踪模板中不存此连接相关的信息条目,因此,将其识别为第一次发出的请求;

ESTABLISHED:NEW状态之后,连接追踪模板中为其建立的条目失效之前期间内所进行的通信的状态;

RELATED:相关的连接;如ftp协议的命令连接与数据连接之间的关系;

INVALIED:无法识别的连接;

--stateSTATE1,STATE2,...

iptables -I INPUT -d 172.16.100.1 -p tcp --dport 22 -m state --stateNEW,ESTABLISHED -j ACCEPT

iptables -I OUTPUT -s 172.16.100.1 -p tcp --sport 22 -m state --stateNEW,ESTABLISHED -j ACCEPT

iptables -I INPUT 2 -s -d 172.16.100.1 -p tcp -m multiport --dports2,80-m state --state NEW -j ACCEPT

本文出自 “勤能补拙” 博客,请务必保留此出处http://echoroot.blog.51cto.com/11804540/1964088

以上是关于iptables扩展的主要内容,如果未能解决你的问题,请参考以下文章

iptables详解(12):iptables动作总结之一

iptables详解:iptables匹配条件总结之二(常用扩展模块)

第二十五天 IPtable基础框架扩展匹配及防火墙原理iptable入门

iptables详解:iptables扩展模块之state扩展

Linux防火墙iptables详解

Linux防火墙之iptables常用扩展处理动作