设为首页 收藏本站
查看: 1243|回复: 1

[经验分享] iptables按时间限制访问的讲解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-8-27 09:05:17 | 显示全部楼层 |阅读模式

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

[backcolor=white !important]

[backcolor=white !important]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限制的功能可以按照时间段限制对端口的访问和协议的使用,在某些应用场景下还是很有用处的。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-8728-1-1.html 上篇帖子: Linux下chkconfig命令详解 下篇帖子: Clonezilla的PXE安装实验笔记 查询系统 信息

尚未签到

发表于 2013-12-19 15:16:42 | 显示全部楼层
一 个 人 享 受 寂 寞 、 也 是 种 别 致 的 < 美 ヽ

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表