免费注册 查看新帖 |

Chinaunix

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

[FreeBSD] 配置了IPFW,內網用戶可以訪問內部web服務器,但是不能瀏覽外部網站。真心求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-11 14:39 |只看该作者 |倒序浏览
本帖最后由 kelvenchi 于 2013-01-11 14:40 编辑

內網的IP網段為 172.16.1.0/24 這台ipfw防火牆的地址 172.16.1.6  為什麼內網用戶不能訪問外網呢?
IPFW 規則如下:
  1. #!/bin/sh

  2. good_tcpo="21,22,25,37,43,53,80,443,110,119,143,443,993,995,5431"

  3. ipfw -f flush

  4. ipfw add 002 allow all from any to any via em1  # exclude LAN traffic
  5. ipfw add 003 allow all from any to any via lo0  # exclude loopback traffic

  6. ipfw add 100 divert natd ip from any to any in via em0

  7. ipfw add 101 check-state

  8. # Authorized outbound packets
  9. ipfw add 120 skipto 500 udp from any to 202.103.44.150 53 out via em0 keep-state
  10. ipfw add 125 skipto 500 tcp from any to any $good_tcpo out via em0 setup keep-state
  11. ipfw add 126 skipto 500 udp from any to any 8000 out via em0 keep-state
  12. ipfw add 130 skipto 500 icmp from any to any out via em0 keep-state


  13. # Deny all inbound traffic from non-routable reserved address spaces
  14. ipfw add 300 deny all from 192.168.0.0/16  to any in via em0
  15. #ipfw add 301 deny all from 172.16.1.0/24   to any in via em0
  16. ipfw add 302 deny all from 10.0.0.0/8      to any in via em0
  17. ipfw add 303 deny all from 127.0.0.0/8     to any in via em0
  18. ipfw add 304 deny all from 0.0.0.0/8       to any in via em0
  19. ipfw add 305 deny all from 169.254.0.0/16  to any in via em0
  20. ipfw add 306 deny all from 192.0.2.0/24    to any in via em0
  21. ipfw add 307 deny all from 204.152.64.0/23 to any in via em0
  22. ipfw add 308 deny all from 224.0.0.0/3     to any in via em0

  23. # Authorized inbound packets
  24. ipfw add 410 allow tcp from any to me 8001 in via em0 setup limit src-addr 2
  25. ipfw add 420 allow tcp from any to me 8002 in via em0 setup limit src-addr 2
  26. ipfw add 430 allow tcp from any to me 5431 in via em0 setup limit src-addr 2
  27. ipfw add 440 allow tcp from any to me 21   in via em0 keep-state
  28. ipfw add 450 allow tcp from me 20,21 to any out via em0 keep-state

  29. # Deny the other ips or nets
  30. ipfw add 470 deny log ip from any to any

  31. # This is skipto location for outbound stateful rules
  32. ipfw add 500 divert natd ip from any to any out via em0
  33. ipfw add 510 allow ip from any to any

  34. ######################## end of rules  ##################
复制代码

论坛徽章:
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
2 [报告]
发表于 2013-01-11 16:21 |只看该作者
你先精减规则看看,把101-470之间的规则去掉,尽量减少干扰因素。
再把keep-state放到500规则试试。

论坛徽章:
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
3 [报告]
发表于 2013-01-11 16:27 |只看该作者
另外:开gateway了没有?
net.inet.ip.forwarding=1

论坛徽章:
0
4 [报告]
发表于 2013-01-12 12:07 |只看该作者
謝謝版主,問題解決了。問題是這樣的,我允許了從我定義的端口向外發出的包,但是沒有允許從外部網站返回的包。所以這樣導致了內網用戶不能上網的。

又有個新問題了:我從外網訪問內網的服務器,不能訪問。但是從內網訪問內網的服務器(直接用IP訪問)就可以。版主在幫我看看好麼?

论坛徽章:
0
5 [报告]
发表于 2013-01-12 13:18 |只看该作者
問題已解決。

论坛徽章:
0
6 [报告]
发表于 2013-01-20 19:21 |只看该作者
楼主写个简单的思路啊,我现在遇到了相同的问题

论坛徽章:
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 [报告]
发表于 2013-01-20 21:07 |只看该作者
用ipfw建议:
1、要记住数据都是双向的,不仅要考虑出,还要考虑入。做nat,需要考虑两个网卡共4个方向上的数据走向。
2、ipfw有两种nat,现种是natd,一种是nat,如果考虑做端口映射,并且局域网机器数不多的话,可以考虑用natd,功能更强一些。
3、写规则最好从简单再到复杂,最起初就是简单全部放行,deny后来慢慢加。

论坛徽章:
0
8 [报告]
发表于 2013-01-21 20:39 |只看该作者
本帖最后由 kelvenchi 于 2013-01-21 20:47 编辑

我的思路其实蛮简单的,就是控制整个172.16.1.0/24这个网络允许内网用户访问外网的部分服务例如,80端口的web服务等等。最开始我允许内网之间的数据顺利通过,允许本机的loopback数据通过。然后对进入防火墙的数据包进行nat地址转换,把公网的IP转换成内网的IP(IFW 中 divert natd 动作之后会继续搜索) 然后检查动态保持表中是否已经存在这个对这个数据包处理的规则。如果没有,数据包会继续往下匹配规则。发出的包写在最前面,并且setup keep-state,并且在发出之前用nat进行地址转换,把内网IP转换成公网IP。中间禁止你不需要的网段。最后写允许进入内网的数据包的规则,也同样keep state。其实思路蛮简单的。

论坛徽章:
0
9 [报告]
发表于 2013-01-21 20:42 |只看该作者
回复 7# lsstarboy


    感谢板主的细心回答,小弟受教了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP