LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1200|回复: 8

iptable.如何设置时间限制

[复制链接]
发表于 2004-4-9 14:57:45 | 显示全部楼层 |阅读模式
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.1 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth0 -j MASQUERADE
我允许2台电脑通过上网,但我要限制2的机器,只能在早8点到晚8点期间上网,该如何设置,有谁知道的,请指教。
发表于 2004-4-9 15:20:48 | 显示全部楼层
用crontab行得通吗?
只是猜想不知能否行得通.
crontab -e
00 08 * * * /etc/rc.d/init.d/iptables start
00 20 * * * /etc/rc.d/init.d/iptables stop
 楼主| 发表于 2004-4-9 15:25:50 | 显示全部楼层
我是想让一台24小时上,而另外一台8:00-20:00,可否在参数里实现呢。因为IPTABLE不太熟悉,可否详细说明,谢谢。
发表于 2004-4-9 15:54:24 | 显示全部楼层

好象可以的

是不是先建立一个文件:/etc/sysconfig/alliptables,内容如下:
iptables -t nat -A POSTROUTING -s 192.168.0.1 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth0 -j MASQUERADE
建一个:/etc/sysconfig/oneiptables,内容如下:
iptables -t nat -A POSTROUTING -s 192.168.0.1 -o eth0 -j MASQUERADE

再建立一个shell:/sbin/for12.sh,内容如下:
cp /etc/sysconfig/alliptables /etc/sysconfig/iptables
service iptables restart
再建立一个shell:/sbin/for2.sh,内容如下:
cp /etc/sysconfig/oneiptables /etc/sysconfig/iptables
service iptables restart
在crontab中加入:
00 08 * * * root /sbin/for12.sh
00 20 * * * root /sbin/for2.sh
不知道行不行?你试试。可能CP运行不一定能执行。
发表于 2004-4-9 18:52:34 | 显示全部楼层

转帖http://www.chinaunix.net 作者:qpbvd

关于 iptables ----time  参数添加的过程实录(原创)

--------------------------------------------------------------------------------  

iptables  中有一个未直接包含的重要参数 time ,利用这个参数我们就可以按需要完成防火墙中需要定时的各种规则的配置。虽然有时我们也可以利用cron来完成相关的功能,但仅就防火墙的配置而言,time参数的利用会带来极大的便利。  

在成功之前经历了多次的失败,虽如此却使自己得到了提高。  
由于公开发布的linux内核文件中,有关iptables中的各种参数里并不包含time 参数,必须通过内核升级的方式打上这个补丁,因此工作前要下载相关的文件。
http://www.netfilter.org
以root登录

第一次实验的系统配置如下

red flag 4.0 桌面版
内核是kernel-2.4.20
iptables 版本是 iptables-1.2.7a
本人下载了相关的文件
1.  iptables-1.2.8.tar.bz2
2.  patch-o-matic-20030912.tar.bz2
进入下载文件所在目录,解压后开始升级
#cd patch-o-matic
里边有几个文件及好些个文件夹,每个文件夹中包含了若干个不同功能的iptables功能模块文件,其中所需的time模块在base文件下
打开README文件,里边提示了简捷的安装示例,运行命令如下:
KERNEL_DIR=/usr/src/linux-2.4  ./runme base

“/usr/src/linux-2.4  是本机系统内核文件所在目录”
命令运行后会出现一个模块选择界面,初次使用的人会摸不着头脑的,大致如下:

-----------------------------------------------------------
本区域中写出了相着的模块名、功能及语法示例
。。。。。。。。
。。。。。。。。
。。。。。。。。
。。。。。。。。
------------------------------------------------------------
本区域给出各种选项:
其中选项的功能是选择下一个模块,Y是确定Q是退出
Y/ N/ R/.........../ Q/ ?/_

具体方法就是首先看看当前的模块是否是你需要的,如果不是就按N键后回车,继续显示下一模块的相关信息。有意思的是time模块居然是最后一个,当出现了time模块后,将里边的相关语法示例抄录下来以备应用。
随后按Y键表示安装这一模块,最后按Q退出。

下一步是重新编译内核
进入到内核文件所在目录/usr/src/linux-2.4,执行如下命令
make mrproper (这一步起什么作用本人也不清楚,也是照着抄来的)
make menuconfig   
由于我在是kde下工作,所以这个命令有变化
make xconfig  
设置内核选项,
进入Networking options
打开IP: Netfilter Configuration  
你会发现里边增加了time选项,我直接选了Y 将time模块编入内核,这样就用不着在实际使用时modprobe time了选好后保存退出。  
make dep  
make bzImage  
编译失败 :cry:  

。。。

重装系统,仍是在这一步失败。利用同一系统在不同另外两台机器上也是在这一步失败。

第二次实验的系统配置如下

Red Hat 9.0  
内核是kernel-2.4.20
iptables 版本是 iptables-1.2.7a
本人下载了相关的文件
1.  iptables-1.2.8.tar.bz2
2.  patch-o-matic-20030912.tar.bz2
在不同的机器上仍是在
bzImage
这一步失败。 :cry:  :cry:  
。。。。
第三次实验的系统配置如下

Debian 3.0
内核是kernel-2.2.20
iptables 版本是 iptables-1.2.6a
本人下载了相关的文件
1.  iptables-1.2.8.tar.bz2
2.  patch-o-matic-20030912.tar.bz2
3.  kernle-source-2.4.21-5.686.tar.bg
首先在线对内内核升级
apt-get install kernle-image-2.4.21-5-686
升级完成后重起机器
进入
patch-o-matic目录
KERNEL_DIR=内核文件所在目录  ./runme base
按照实验一的步骤装入相关模块后,退出
开始编译内核
进入内核文件所在目录
make mrproper  
make xconfig     或  make menuconfig
make dep
make bzImage
make install
令人担心的事没有出现,一路顺风
下边是装入模块文件
make modules
make modules_install

最后升级iptables
f进入下载的并解压的iptables文件目录
make KERNLE_DIR=内核文件所在目录  
make install KERNLE_DIR=内核文件所在目录  
make install-devel   

最后reboot
检验
iptabls -A INPUT -m time --timestart 8:00 --timestop 12:00 --days su -j ACCEPT

没有出现错误提示
iptables -L 看到了time的相关记录

希望此文能对有此需要的朋友一点帮助,同时感谢在此实验过程中提供帮助的朋友。
发表于 2004-4-9 18:54:10 | 显示全部楼层
我按上面的帖,成功把time conlimit TTL这个三功能的内核模块编译好了.
我的系统是rh as 3.如果你也是,我可以发上来!
发表于 2004-4-9 19:22:09 | 显示全部楼层
发表于 2004-4-10 07:40:57 | 显示全部楼层
嘻嘻,不错 ,,!
发表于 2004-4-10 08:49:45 | 显示全部楼层
我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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