gateway_enable="YES"
准备资料
使用IPFILTER设置小型企业防火墙
http://www.freebsdchina.org/forum/viewtopic.php?t=2077
基于IP Filter的NAT透析
http://www.cnfug.org/journal/archives/000068.html
IP Filter Based Firewalls HOWTO(中文)
http://www.cnfug.org/journal/archives/000073.html
ipfilter是基于状态的软件防火墙,是对包过滤用的;
ipnat是包重定向用的软件,是对地址转发用的;
这个是在内核中增加的编译项目
options IPFILTER (内核赠加功能)
options IPFILTER_LOG (增加日志功能)
options IPFILTER_DEFAULT_BLOCK (默认的所有包都否掉)
编译成功后,第一修改/etc/rc.conf
gateway_enable="YES"
ipfilter_enable="YES"
ipnat_enable="YES"
增加一个ipf.rules
pass in all
pass out all
(pass all没有用)
reboot
再次修改/etc/rc.conf
gateway_enable="YES"
//关键,没有这个不能实现NAT
ipfilter_enable="YES"
ipf -C -f /etc/ipf.rules
ipfilter_flags="-E"
//ipfilter的包过滤规则设置
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"
//ipfilter的包地址转换设置
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipfilter.log"
//ipfilter的日志记录启动
/----------有ipfilter机器的网络界面的设置---------/
ifconfig_xl0="inet 202.205.*.* netmask 255.255.255.0"
//和外网连接的ip
ifconfig_dc0="inet 192.168.80.1 netmask 255.255.255.0"
//和内网连接的ip 其中192.168.80.1很重要 代表了默认网关地址
defaultrouter="202.205.*.*"
//默认路由
hostname="proxy.cau.edu.cn"
//主机名字
DNS SERVER 202.205.80.132 也需要额外设置
/----------client网络界面的设置---------/
操作系统:windows2003
ip 192.168.80.3
netmask 255.255.255.0
gateway 192.168.80.1
dns server 202.205.80.132
//其中gateway必须是dc0的ip,而且保证fireware的路由功能需打开。
不然不能实现NAT功能
//如果内网没dns的话,将不能通过名字访问外网服务器
ipnat.rules的制定
map xl0 192.168.80.3/32 -> 202.205.*.*/32 portmap tcp/udp 10000:39999
rdr xl0 202.205.*.*/32 port 80 -> 192.168.80.3 port 80
具体内容可参阅NAT透析
安装中遇到的几个问题
Q1:第一次设置IPF.RULES的时候,用了PASS ALL,这个时候options是IPFILTER_DEFAULT_BLOCK,
这个时候不能远程登陆,需要用
PASS IN ALL
PASS OUT ALL
Q2:自己的包有没有在网卡间重定向,可用
tcpdump -vni <interface name> port xx
这个时候会出现listen的状态 就等查看包流向;
一定产生如此问题的原因大概是
> 防火墙没有打开gateway功能
> firewall的内网ip没有设置成client机器的网关地址
by hopesfish@
2004-10-08