iptables用法实例

  • A+
所属分类:linux
iptables用法实例

参考iptables简介

iptables 填写地址是可以填写多个,或者指定IP段

iptables -I INPUT -p tcp -s 192.168.1.148,192.168.1.0/24,192.168.1.147 -j ACCEPT
iptables用法实例
可以看到图中同时生成了3条规则
iptables -I INPUT -p tcp ! -s 192.168.1.150 -j ACCEPT
iptables用法实例
!代表取反
意思是只要发往本机的报文不是192.168.1.150,就accept接受

iptables 扩展

--dport --sport

iptables -I INPUT -p tcp -m tcp --dport 22 -s 192.168.3.33 -j REJECT
-p指定协议,-m指定模块,--dport指定端口(-m可以省略,省略是代表使用-p指定的协议的模块)
iptables用法实例

指定时可以指定连续的端口范围,比如22:25,同时支持取反“!”

multiport 指定不连续的端口

INPUT -p tcp -m multiport --dports 22,45,67,80:85 -j REJECT
iptables用法实例
注意是--dports和--sports
此时无法省略-m 原因是--dports属于 multiport模块,省略相当于使用-m tcp模块,而此模块没有--dports
同时multiport只能用于tcp和udp

-s -d可以指定多个IP,但是无法指定连续的IP,iprange扩展模块可以指定

iprange

--src-iprange

--dst-iprange

iptables -I INPUT -p tcp -m iprange --src-range 192.168.1.1-192.168.1.100 -j ACCEPT
iptables用法实例

string扩展

iptables -A OUTPUT -p tcp -m string --string "www.test.com" --algo bm -j DROP

指定-m string模块 --string指定字符串 --algo 指定算法

iptables用法实例

time模块

顾名思义,根据时间来匹配报文

--timestart --timestop

--weekdays

--datestart --datestop

--monthdays

iptables -I OUTPUT -m time -p tcp --dport 80 --monthdays 1 --timestart 09:00:00 --timestop 18:00:00 -j REJECT
iptables用法实例
output链中显示每月1号上午9点到下午6点reject 80端口
iptables -I OUTPUT -m time -p tcp --dport 80 --datestart 2019-01-10 --datestop 2019-01-20 -j REJECT
iptables用法实例

connlimit扩展

此扩展可以限制每个IP链接到server的连接数

iptables -I INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
--connlimit-above和--connlimit-upto类似
--connlimit-mask限制网段
iptables用法实例
限制每个IP链接22端口的连接数上限为2

limit扩展

报文到达的速率限制,可以针对秒,分,时,天


iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT

state扩展

5种状态

  • NEW 新连接
  • ESTABLISHED 已经建立的连接
  • RELATED 关系连接
  • INVALID 无效连接
  • UNTRACKED 未被追踪的连接
iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables用法实例

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: