看板FreeBSD
标 题Re: [问题] ipfw防火墙设定的问题
发信站SayYA 资讯站 (Mon Jul 28 23:20:04 2008)
转信站ptt!ctu-reader!ctu-peer!news.nctu!News.Math.NCTU!SayYa
※ 引述《[email protected] (NICE~~彭彭!!)》之铭言:
> 已爬文~~但还是没办法解决~~所以PO文请教前辈~
> 就算我让全部通行,可是防火墙还是会把全部挡下来
> 但由内部往外连却OK
> 我在核心设定档加入以下内容,为了要有ipfw和NAT
> =========================
> options IPFIREWALL
> options IPDIVERT
> options IPFIREWALL_DEFAULT_TO_ACCEPT
> options IPFIREWALL_VERBOSE
> options IPFIREWALL_VERBOSE_LIMIT=10
> options IPFIREWALL_FORWARD
> options DUMMYNET
> 编译完核心并没有出现错误~~
^^^^^^^^^^^^^^^^^^^^^^^^
编完之後有重开机吗?
> ==========================
> /etc/rc.conf的设定档内容如下
> #===对外网卡===
> ifconfig_rl0="inet aa.bb.cc.dd netmask 255.255.255.0"
> #===对内网卡===
> ifconfig_rl1="inet 192.168.1.254 netmask 255.255.255.0"
> # 宣告本主机可做为gateway
> gateway_enable="YES"
> # 设定 NAT 所使用的对外网路卡
> natd_enable="YES"
> natd_interface="rl0"
> natd_flags="-config /etc/natd.conf"
那 /etc/natd.conf 内容是? 你没贴。
通常设定 natd 规则有两种作法,
简单的一行就直接在 /etc/rc.conf 加上类似下面这样
natd_flags="redirect_port tcp 192.168.0.2:6667 6667"
复杂点就写 natd_flags="-f /etc/natd.conf"
然後在 /etc/natd.conf 写类似下面这样
redirect_port tcp 192.168.0.1:22 22
redirect_port tcp 192.168.0.1:23 23
redirect_port tcp 192.168.0.1:24 24
> ============================
> /etc/rc.firewall的设定档如下
> #!/bin/sh
> #delete all rule
> /sbin/ipfw -f flush
> #设定server本机可以跟server本机通讯
> /sbin/ipfw add pass all from 127.0.0.1 to 127.0.0.1
> #设定nat可以任何通行
> /sbin/ipfw add divert natd all from any to any via rl0
> #让本机可以通行到任何地方
> /sbin/ipfw add pass all from 127.0.0.1 to any
> #如果有设dhcp一定要设这行
> /sbin/ipfw add pass all from 192.168.1.255 to any
> #让内部ip全部可以连上本机
> /sbin/ipfw add pass all from 192.168.1.1/24 to 192.168.1.254
> #开放 dns给使用者
> /sbin/ipfw add pass all from 192.168.1.1/24 to 140.115.1.31
> /sbin/ipfw add pass tcp from any to me 22
> /sbin/ipfw add allow tcp from any to me 23
> #开放所有通行给该ip
> /sbin/ipfw add pass all from 192.168.1.1 to any
> #剩下的通通放行
> /sbin/ipfw add pass all from any to any
> ==================================
你可以打 ipfw list 看一下现在跑的 ipfw 规则是甚麽
然後在预设的 /etc/rc.firewall 原始档(/usr/share/examples/etc/rc.firewall)
可以看到尽量是用 ${fwcmd} 变数来代,这样会比较有弹性,
不然你在 /etc/rc.conf 设的 firewall_quiet="YES" 等於白设
另外 ipfw 规则使用上,习惯是会加上第几条规则,以便辨别跟日後维护。
看完这篇感觉你那些设定档应该是从别人那边抄来的,
只是来源不明(你没说),写法也有漏
最好附上你参考来源,比较好让别人判别你是哪边有所出入,
或者根本对方那边就『科学』以讹传讹了。
> 如果改完/etc/rc.conf,不想重开机来更新
> 是不是下指令/etc/netstart就好了??
> 可是我试了好像没用??
若只是改完 /etc/rc.firewall 规则後要重启才会生效,就打 sh /etc/rc.firewall
或者要在 console 手动一行一行指令改也可以
若要重启 natd(8) 则 /etc/rc.d/natd restart
以你这情况若改完之後,应该是下 /etc/netstart 再 /etc/rc.d/ipfw restart 即可
--
静中见真境,淡中识本然
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: 118-166-51-73.dynamic.hinet.net