局域网内一部客户机专用防火墙规则的SCRIPT(请大家给出意见和建议)
局域网内一客户机 1.IP :202.195.2.10 NETWORK :202.195.2.0 NETMASK :255.255.255.0
2.接受除了MAC 为AA:BB:CC:DD:EE:FF的其他客户机的联机(在202.195.2.0网段内)
3.不接受其他客户机的PING
4.可以正常上网浏览网页
made by ppz
date:2007/04/12
made in suzhou
#!/bin/bash
PATH =/sbin:/bin:/usr/sbin:/usr/bin;EXPORT PATH
#清除所有已存在的规则
iptables -F
iptables -X
iptables -Z
#设定预设策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -p FORWARD ACCEPT
#开放本机的LO可以自由放行
iptables -A input -i LO -j ACCEPT
#只要已建立或者相关封包就可以通过,只要是不合法封包就丢弃
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
#不能被ping
iptables -A INPUT -P icmp -m icmp --icmp-type 8 -j DROP
#不接受MAC地址为AA:BB:CC:DD:EE:FF的客户机的联机
iptables -A INPUT -m mac --mac-source AA:BB:CCD:EE:FF -j DROP
#接受其他机器的联机
iptables -A INPUT -i eth0 -s 202.195.2.0/24 -j ACCEPT
#接受DNS查询
iptables -A INPUT -P tcp --sport 53 -j ACCEPT
iptables -A INPUT -P udp --sport 53 -j ACCEPT
请大家给出意见!
[ 本帖最后由 ppzlyg 于 2007-4-12 15:00 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
其实内网ping不ping我感觉没什么.
当然了,也不排除内网故意捣鬼,但是有时ping确实是个好东西.
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
这条不用加,DNS使用的是udp协议.
还有再添一条,允许访问网页:
/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
另外不论是发帖,还是写规则,养成好习惯,大小写分清楚.
你看你的规则,本该大写的你小写,该小写的你大写.
习惯是点点滴滴培养出来的.
谢谢你的提醒:
作修改如下:
局域网内一部客户机专用防火墙规则的SCRIPT(请大家给出意见和建议)
局域网内一客户机 1.IP :202.195.2.10 NETWORK :202.195.2.0 NETMASK :255.255.255.0
2.接受除了MAC 为aa:bb:cc:dd:ee:ff的其他客户机的联机(在202.195.2.0网段内)
3.不接受其他客户机的PING
4.可以正常上网浏览网页
made by ppz
date:2007/04/12
made in suzhou
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH
#清除所有已存在的规则
iptables -F
iptables -X
iptables -Z
#设定预设策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#开放本机的LO可以自由放行
iptables -A INPUT -i lo -j ACCEPT
#只要已建立或者相关封包就可以通过,只要是不合法封包就丢弃
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
#不能被ping
iptables -A INPUT -P icmp -m icmp --icmp-type 8 -j DROP
#不接受MAC地址为aa:bb:cc:dd:ee:ff的客户机的联机
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j DROP
#接受其他机器的联机
iptables -A INPUT -i eth0 -s 202.195.2.0/24 -j ACCEPT
#接受DNS查询
iptables -A INPUT -P tcp --sport 53 -j ACCEPT
iptables -A INPUT -P udp --sport 53 -j ACCEPT
#dns query 一般是使用 udp port 53,在 zone transfer 時使用 tcp port 53。
#还有就是你添加的
#/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
我感觉没有必要,这只是一客户机的script,并不提供WWW服务,只要可以上网浏览网页
不知道我说的对不对!我自己的是不加也可以浏览网页。请再次给些帮助!
请大家给出意见!
#/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
我感觉没有必要,这只是一客户机的script,并不提供WWW服务,只要可以上网浏览网页。
这条规则你不添加也可以浏览网页吗?
呵呵。。。。如果不添加也可以浏览网页的话,那就不添加。
iptables -A INPUT -P icmp -m icmp --icmp-type 8 -j DROP
针对协议的,小写p吧?你这里大写的P也可以吗?我一直是小写p,没测试过大写P。如果不出错的话,就可以了。
呵呵!居然还是有一个大写的p没有该过来!谢谢!下次绝对不会再出现这种情况了
#/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
这一句我确实没有加,但是可以浏览网页!
呵呵!
局域网内一部客户机专用防火墙规则的SCRIPT(请大家给出意见和建议)
局域网内一客户机 1.IP :202.195.2.10 NETWORK :202.195.2.0 NETMASK :255.255.255.0
2.接受除了MAC 为aa:bb:cc:dd:ee:ff的其他客户机的联机(在202.195.2.0网段内)
3.不接受其他客户机的PING
4.可以正常上网浏览网页
made by ppz
date:2007/04/12
made in suzhou
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH
#清除所有已存在的规则
iptables -F
iptables -X
iptables -Z
#设定预设策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#开放本机的LO可以自由放行
iptables -A INPUT -i lo -j ACCEPT
#只要已建立或者相关封包就可以通过,只要是不合法封包就丢弃
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
#不能被ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
#不接受MAC地址为aa:bb:cc:dd:ee:ff的客户机的联机
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j DROP
#接受其他机器的联机
iptables -A INPUT -i eth0 -s 202.195.2.0/24 -j ACCEPT
#接受DNS查询
iptables -A INPUT -P tcp --sport 53 -j ACCEPT
iptables -A INPUT -P udp --sport 53 -j ACCEPT
[ 本帖最后由 ppzlyg 于 2007-4-15 16:36 编辑 ]
应该说我的解释是有问题的!
你说要加入#/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
如果是在ipchains的时候是必须要加入的,因为tcp协议是双向流通的
但是在使用iptable的时候,可以使用状态模组功能来很好的处理双向流通的问题
既是:
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
RELATED 这个最常用,表示这个封包是与我们发送出去的封包有关。
ESTABLISHED 已经联机的
INVALID 无效的
至于说DNS使用的协议,大多数情况下使用的UDP ,但是在有些情况下还是需要TCP的
所以我加上了TCP协议。
至于说大小写问题呢!确实我在论坛写的时候,刚开始没怎么在意。不过在应用的时候确实不是这样的!呵呵
1、sport 和 dport 概念混淆,你上面的内容应该用 dport 而不是 sport
2、若做高级 DNS 服务(比如 MASTER 与 SLAVE 同步的话),确实需要 TCP/53 的
3、脚本内容与上面描述的需求不符,或描述存在逻辑问题,比如“3.不接受其他客户机的PING”,言外之意是否仍有 IP 可以 ping 到?你脚本的内容是“禁止所有 IP ping”
4、“接受除了MAC 为AA:BB:CC:DD:EE:FF的其他客户机的联机(在202.195.2.0网段内)”没有处理好,你的脚本描述的内容是“禁止 MAC 是 XXXXXX 的连接”,而非“在 202.X.X.X 网络内”,因此需要添加一个 -s 202.195.2.0/24 的描述,否则不是这个段地址的 MAC 地址符合的数据包也会被 DROP 掉
5、“可以正常上网浏览网页”是指谁?Linux 它自己还是谁?它在网络里充当什么角色?是一台独立主机还是一台网关机器?这点你没有描述清楚
6、针对 TCP/53 和 UDP/53 的开放与第 5 点有关,若这台机器不跑 DNS 服务就没必要开,若这台机器是网关那么开错了
7、若这台机器有 FTP 服务,那么还应该载入 ip_conntrack_ftp 模块,若这台机器是网关,那么应该载入 ip_nat_ftp 模块
目前就看到这么多,需求不够明确,不足以继续判断……
白大侠分析问题果然是大侠风范!
学习了.