Iptables防火墙connlimit模块扩展匹配规则
connlimit模块的作用是限制请求报文对特定服务的并发连接数限制的,例如Telnet服务,默认情况下没有并发连接数的限制,可以允许n个客户端同时连接,如果应用了connlimit模块,可以对并发连接数进行限制。
connlimit模块常用参数:
--connlimit-upto
:如果现有连接数小于或等于设置的并发连接数值,那么就放行。--connlimit-above
:如果现有连接数大于设置的并发连接数值,那么就放行。
案例:每个客户端主机仅允许同时对本机发起两个ssh连接。
数据流入的操作,在INPUT链的filter表添加相应的规则。
1)编写具体的防火墙规则
[root@jxl-1 ~]# iptables -t filter -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
2)查看设置的规则
[root@jxl-1 ~]# iptables -L -n -v --line-number
Chain INPUT (policy ACCEPT 52358 packets, 43M bytes)
num pkts bytes target prot opt in out source destination
1 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 #conn src/32 > 2 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 52598 packets, 68M bytes)
num pkts bytes target prot opt in out source destination
3)测试效果
同时登陆两个ssh没问题,第三个时就提示无法连接了。
Iptables防火墙time模块扩展匹配规则
time模块的作用是根据时间范围来匹配报文,例如在上午的8点30到下午18点30关于浏览淘宝的报文都拒绝。
time模块的常用参数:
--timestart
:指定开始时间。--timestop
:指定结束时间。--monthdays
:指定一个月中的某一天。--weekdays
:指定一周中的周期,例如1-7。--kerneltz
:使用内核时区的时间。
可以在参数前面加!号表示去反。
time模块默认使用的实际UTC时间,UTC时间比我们正常的时间慢8小时。
案例:在周一到周五的8:00到18:00禁止访问淘宝网站。
此案例也是将防火墙看做了是路由器,在流量流出时定义防火墙规则,也就是在防火墙的OUTPUT链定义规则。
1)编写防火墙规则
在周一到周五的8点到18点时间段,所有发往taobao.com的TCP 80端口的报文都会被拒绝。
[root@jxl-1 ~]# iptables -t filter -I OUTPUT -p tcp -d taobao.com --dport 80 -m time --timestart 00:00 --timestop 10:00 --weekdays 1,2,3,4,5 -j DROP
2)查看设置的防火墙规则
淘宝网的地址有很多,写入防火墙后,会将解析出来的多个IP地址都写入到表中,如下图所示。
3)测试效果
在周一到周五的早上8点到晚上18点的范围之间,再想访问淘宝网,则会被拦截。
以上就是Iptables防火墙connlimit与time模块扩展匹配规则的详细内容,更多关于Iptables防火墙connlimit time的资料请关注编程网其它相关文章!