iptables(3)擴展
顯式擴展:必須顯式指明使用的擴展模塊(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(3)擴展