LinuxSir.cn,穿越时空的Linuxsir!

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

如何控制好局域网内上网?

[复制链接]
发表于 2006-3-8 23:15:57 | 显示全部楼层 |阅读模式
比如我的局域网有100台机当中的30台可以上网,并且这100台可以收发邮件
我知道是用FORWARD链来控制
iptables -P FORWARD DROP
iptables -A FORWARD -f -j ACCEPT;
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.2/32 --dport 80 -i eth1(内网卡) -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.12/32 --dport 80 -i eth1(内网卡) -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.82/32 --dport 80 -i eth1(内网卡) -j ACCEPT
..............
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 25 -i eth1 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 110 -i eth1 -j ACCEPT

iptables -A FORWARD -p icmp -s 192.168.0.2/32 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.0.12/32 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.0.82/32 -j ACCEPT
...............


问题是:如果30台机可以上网iptables -A FORWARD -p icmp -s 192.168.0.2/32 -j ACCEPT
就要写30条,能不能再简单点?即是说可以访问WWW的就可以PING通外网,不能访问WWW的就不能PING如果我写上这一句的话iptables -A FORWARD -p icmp -s 192.168.0.0/24 -j ACCEPT就无法控制变成无论可不可以访问WWW都能PING通外网.请问大家我应该怎样写才比较好?
发表于 2006-3-9 08:30:41 | 显示全部楼层
你如果想简化书写,你可以使用脚本!
使用一个变量保存能访问WWW的机器
比如:
WWW_HOSTS="192.168.0.2 192.168.0.12"
for host in ${WWW_HOSTS} ; do
   iptables -A FORWARD -p tcp -s $host --dport 80 -i eth1(内网卡) -j ACCEPT
   iptables -A FORWARD -p icmp -s $host -j ACCEPT
done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-9 09:08:53 | 显示全部楼层
Post by springwind426
你如果想简化书写,你可以使用脚本!
使用一个变量保存能访问WWW的机器
比如:
WWW_HOSTS="192.168.0.2 192.168.0.12"
for host in ${WWW_HOSTS} ; do
   iptables -A FORWARD -p tcp -s $host --dport 80 -i eth1(内网卡) -j ACCEPT
   iptables -A FORWARD -p icmp -s $host -j ACCEPT
done


有空试下脚本,谢了楼主!大家可不可以发表下高见,假若是你的话,不用脚本应该怎样写?
回复 支持 反对

使用道具 举报

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

本版积分规则

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