我不会接受我不要的未来
哪怕是命中注定

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
可以看到图中同时生成了3条规则
iptables -I INPUT -p tcp ! -s 192.168.1.150 -j ACCEPT
!代表取反
意思是只要发往本机的报文不是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指定的协议的模块)

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

multiport 指定不连续的端口

INPUT -p tcp -m multiport --dports 22,45,67,80:85 -j REJECT
注意是–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

string扩展

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

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

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
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

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限制网段
限制每个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
赞(0)
未经允许不得转载:技术搬运工 » iptables用法实例
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我们不生产技术 我们只是技术的搬运工