免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3745 | 回复: 17
打印 上一主题 下一主题

求助,关于IPFW规则失效问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-18 15:27 |只看该作者 |倒序浏览
服务器配置了IPFW透明防火墙,
开机运行正常,
但是10几分钟后,防火墙就将所有网络连接全部切断,导致墙内机器无法访问。
除了 防火墙 rl0 的22 端口外,所有的连接全被 deny掉了。
登陆防火墙后,ipfw list ,规则全在,没有异常
但是执行
ipfw -q add 00010 allow ip from any to any in via sk0 setup keep-state
ipfw -q add 00020 allow ip from any to any in via sk1 setup keep-state

后,网络就又畅通了
但是这样 防火墙就起不到作用了
很是头疼!
我实在是找不到问题,是我的规则有问题么?
请大家帮帮忙,谢谢~~~

我的系统信息如下:
FreeBSD 6.2
网卡 两块 Dlink 530T ,做网桥,sk0接外网,sk1接内网;
一块Reltek 8139,用于连接该防火墙

kernel 中 :
options         BRIDGE
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=1000


rc.conf 中 :
firewall_enable="YES"
firewall_script="/etc/firewall.rule"
firewall_type="OPEN"
firewall_quiet="YES"
firewall_logging="YES"


sysctl.conf 中:
net.link.ether.bridge.config=sk0:0,sk1:0
net.link.ether.bridge.ipfw=1
net.link.ether.bridge.enable=1
net.inet.ip.fw.enable=1
net.inet.ip.fw.one_pass=1
net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5
net.inet.ip.fw.dyn_buckets=4096
net.inet.ip.fw.dyn_max=65535
net.inet.tcp.msl=7500
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1


/etc/firewall.rule 中
add allow tcp from any to any dst-port 80 in via sk0 setup keep-state
add allow tcp from any to any dst-port 80 in via sk1 setup keep-state
add allow tcp from any to any dst-port 22 in via rl0 setup keep-state
add allow ip from any to any in via sk1 setup keep-state
add allow ip from any to any out via sk0 setup keep-stat
add allow tcp from any to any dst-port 1433 in via sk0 setup keep-state
add allow tcp from any to any dst-port 1433 out via sk1 setup keep-state
add drop log all from any to any
add deny ip from any to any



请大家帮帮我,感谢~~~

[ 本帖最后由 ryanmm 于 2007-9-18 15:31 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-09-18 16:19 |只看该作者
ipfw list是什么?

论坛徽章:
0
3 [报告]
发表于 2007-09-18 16:24 |只看该作者
原帖由 zhengwei_zw 于 2007-9-18 16:19 发表
ipfw list是什么?


就是 列出当前的规则

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
4 [报告]
发表于 2007-09-18 19:28 |只看该作者
原帖由 ryanmm 于 2007-9-18 16:24 发表


就是 列出当前的规则

理解有问题。二楼的应该是问你ipfw -a list后的内容是什么。他当然知道是列出当前的规则。

你的防火墙流量大吗?keep-state只适用于流量较小的环境,做NAT的情况下,30台机器以下还可以,如果再多,就不要keep-state了,状态链很快就满了,防火墙就会不通。

再一个,你的有些ipfw规则好象多余:对于sk1网卡,ip本身已经代表所有包,就没有必要再写80和1433了。

论坛徽章:
0
5 [报告]
发表于 2007-09-19 07:11 |只看该作者
原帖由 lsstarboy 于 2007-9-18 19:28 发表


你的防火墙流量大吗?keep-state只适用于流量较小的环境,做NAT的情况下,30台机器以下还可以,如果再多,就不要keep-state了,状态链很快就满了,防火墙就会不通。


原来是这样啊~~~
感谢~~~

防火墙内 是一个网站,流量在50M左右
感谢,我去试试~~~

论坛徽章:
0
6 [报告]
发表于 2007-09-19 09:24 |只看该作者
报错了
我删掉了 setup keep-state

重启,然后 服务器完全的连不上了

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
7 [报告]
发表于 2007-09-19 09:24 |只看该作者
50M的流量已经很大了,keep-state就不要用了。

论坛徽章:
0
8 [报告]
发表于 2007-09-19 09:39 |只看该作者
setup 可以删么?

我现在完全连不上了

论坛徽章:
0
9 [报告]
发表于 2007-09-19 09:41 |只看该作者
setup
要匹配 TCP 会话的发起请求, 就必须使用它。

keep-state
这是一个必须使用的关键字。 在发生匹配时, 防火墙将创建一个动态规则,其默认行为是, 匹配使用同一协议的、从源到目的 IP/端口 的双向网络流量。

难道 setup 必须用?

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
10 [报告]
发表于 2007-09-19 10:13 |只看该作者
因为你的规则已经考虑到双向了,直接把keep-state和setup去掉就可以。看你的意思,是在sk0上开放80和1433端口。

在写规则的时候,最好一个接口一个接口地写,那样好排错,设置好之后,可以根据数据包的频繁度再调整规则的位置。

add allow tcp from any to any dst-port 80 in via sk0                 #允许从sk0进,80
add allow ip from any to any out via sk0                                      #允许从sk0出,所有,包括80和1433
add allow tcp from any to any dst-port 1433 in via sk0             #允许从sk0进,1433

add allow tcp from any to any dst-port 80 in via sk1                 #允许从sk1进,80
add allow ip from any to any in via sk1                                        #允许从sk1进,所有,包括80和1433
add allow tcp from any to any dst-port 1433 out via sk1         #允许从sk1出,1433
add allow ip from any to any out via sk1                                     #这个好象要的,实际上,内网网卡,直接一句就行了:allow ip from any to any

add allow tcp from any to any dst-port 22 in via rl0
add allow tcp from any to any out via rl0                                  #加上这句,使ssh出的数据包通过

                                                                                                          #这当中还应该考虑dns,如果要上网的话。

add drop log all from any to any
add deny ip from any to any

哪果还不行的话,就看一下log里面怎么说的,把相应的包开放就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP