iptables按时间限制访问的讲解

iptables有很多扩展功能的patch,打上这些patch后可以支持许多扩展功能,就比如时间限制功能。如何使用这个功能?这也是曾经的一个面试题,一个朋友问过我,今天演示一下。

首先你的kernel要支持“time match”也就是iptables策略里可以通过时间的匹配规则。

我的操作系统的内核版本是2.6.32.22

 

1.查看内核是否支持

#cd /usr/src/linux

#make menuconfig  执行之后出现选择内核模块的界面,通过相应的菜单,选择需要加载的模块 

 
 

133501213.png

1.2 Networking support -->>Networking Options -->>Network packet filtering framework -->>Core Netfilter Configuration ,如图所示

194206433.jpg

可以看的到默认是支持对时间的匹配功能的

2.1卸载系统默认用rpm包安装的iptables

 
 

卸载前我们先把iptables的启动脚本及脚本配置文件备份到/tmp目录

#cp /etc/init.d/iptables /tmp

#cp /etc/sysconfig/iptables-config /tmp

卸载iptables,在卸载时会存在包的依赖关系无法卸载

#rpm -e --nodeps iptables-ipv6 iptables iptstate

2.2接着编译安装iptables,用的iptables版本是1.4.20,写博文时是最新的iptables版本

 
 

#cd /usr/src

#tar jxvf iptables-1.4.20.tar.bz2

#cd iptables-1.4.20

#./configure --prefix=/usr --with-ksource=/usr/src/linux

#make

#make install

3.1 修改iptables启动脚本

 
 

首先将脚本跟配置文件复制到相应的目录然后再做修改  

#cp /tmp/iptables-config /etc/sysconfig/  

#cp /tmp/iptables /etc/init.d/  

#chmod a+x /etc/init.d/iptables  

#vim /etc/init.d/iptables 把所有/sbin/$IPTABLES替换为/usr/sbin/$IPTABLES   在vim命令模式下:%s@/sbin/$IPTABLES@/usr/sbin/$IPTABLES@g  然后保存退出

3.2 重新启动iptables

 
 

#service iptables restart

测试时间限制功能

首先查看两台主机的时间,由于截图的时间间隔,存在秒级别

主机名tomcat1的时间

200722644.jpg

主机名tomcat2的时间

200803469.jpg

当前的时间是2013年8月26日星期一20点06分左右,在tomcat2上去ping主机tomcat1

202652736.jpg

看到没有问题,网络是通的,icmp包都有返回响应

现在在tomcat1上,增加一条iptables策略

iptables -A INPUT -p ICMP --icmp-type 8 -m time --timestart 00:00:00 --timestop 23:59:59 --weekdays Mon -j DROP

限制在每个星期一的0点0分0秒到23点59分59秒这个时间段内,所有icmp协议报文的应答都会拒绝,8代表echo-reply,另外0代表echo-request。

注意:weekdays参数,很多文章写成days,但是days是无法被识别的,weekday的写法可以是数字1-7或者英文星期的缩写Mon-Sun。

再次从tomcat2上去ping主机tomcat1,18个包全部丢失,丢失率100%

203443639.jpg

 如果在主机tomcat1上修改时间为2013年8月31日,iptables不变,如下图所示

224119313.jpg

主机tomcat2系统时间不变再次去ping主机tomcat1,可以ping通,说明没有被限制。

230304931.jpg

 

对于其它协议的时间限制方法也类似,利用time限制的功能可以按照时间段限制对端口的访问和协议的使用,在某些应用场景下还是很有用处的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iptables是一个在Linux系统中管理网络安全的工具,它可以用来过滤、阻止、转发和修改网络数据包。iptables可以用来控制网络流量,允许或拒绝特定的网络连接、端口或协议。它可以对入站和出站流量进行过滤,还可以对网络地址和端口进行转换。 iptables的基本工作原理是将网络数据包与一系列规则进行匹配。如果数据包与规则匹配,则根据规则执行相应的操作。iptables使用链来组织规则,链是一系列规则的集合,这些规则按顺序执行。iptables有五个预定义的链: 1. INPUT:控制输入流量,即进入本机的流量。 2. OUTPUT:控制输出流量,即从本机出去的流量。 3. FORWARD:控制转发流量,即从本机转发到其他机器的流量。 4. PREROUTING:控制在路由决策之前的流量。 5. POSTROUTING:控制在路由决策之后的流量。 iptables的规则由三部分组成:规则链、匹配条件和操作。规则链指定要应用规则的链,匹配条件指定要检查的数据包的属性,操作指定如果数据包匹配规则应该执行的操作。例如,以下规则将拒绝所有从IP地址为192.168.1.1的主机发送到本机的TCP连接: ``` iptables -A INPUT -s 192.168.1.1 -p tcp -j DROP ``` 该规则将被添加到INPUT链的末尾,当数据包的源地址是192.168.1.1,协议是TCP时,数据包将被丢弃。 iptables非常强大和灵活,但同时也非常复杂。如果你需要使用iptables来管理网络安全,请务必仔细阅读相关文档,并且在测试过程中小心谨慎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值