FREEBSD5.1上用IPFILTER做NAT做网关

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

初期目的:以UNIX里的FREEBSD系统做主机,实现网关功能,提供内网机器上网.

预期目的:同时实现防火墙FIREWALL的作用.

前序:我所知的也是目前用的UNIX下实现这个功能的有三种,1,IPFW,2,IPFILTER,3,安装squid等第三方软件.我选择了IPFILTER,简称IPF方法.

注意:本问是对静态IP的配置,对于PPP/ADSL拨号不适用.但差不多,拨号需要额外设置PPP

说明:本文中#代表系统提示符,## 解释说明 ###解释说明转行。

开始:

1、使用双网卡。一块连接外,一块连接内网.连接外网的网卡标识rl1,连接内网的为rl0

(因为我2块网卡都是REALTEK8139的,所以网卡标识为rl,1和0是两块网卡的区别号)

2、在/etc/rc.conf中加上:

ifconfig_rl1="inet 218.92.251.108 netmask 255.225.225.0"

##(对外网卡的设置,很显然,218.92.251.108为静态IP地址。255.255.255.0子网掩码。不懂?我颠~)

ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"

##(对内网卡IP地址以及子网掩码的设置)

##以上加进rc.conf是为了再每次开机的时候配置好两块网卡的IP地址等。

firewall_enable="NO" #取消防火墙

gateway_enable="YES" ##启用网关功能,很显然,很重要。

named_enable="YES" ##启用DNS名字服务,这样可以让内网通过设置主机做DNS

natd_enable="YES" ##启用nat功能,很显然,特重要

natd_interface="rl1" ##设置NAT转发的网卡标识号,rl1为对外连接网卡。相当于###WIN2000里的连接共享设置的那块网卡连接。

3,设置/etc/ipnat.conf

map rl1 192.168.0.0/24 -> 218.92.251.108/32 portmap tcp/udp 10000:65000

map rl1 192.168.0.0/24 -> 218.92.251.108/32

##以上是设置允许共享连接的内网IP范围,很显然,24精确到最后一位!也就是说###192.168.0.*的子机都可以通过这台主机上网。

4,设定开机自动执行ipnat。

#cd /usr/local/etc/rc.d

#vi runipnat.sh

##加入以下内容:

#!/bin/sh

/sbin/ipnat -f /etc/ipnat.conf

#chmod 755 runipnat.sh ##权限设为可执行。

5、设置内核,至关重要!

因为ipfw和ipfilter不能共存,所以如果要使用ipfilter,必须将内核中有关ipfw的部份注释掉

#cd /usr/src/sys/i386/conf ##/usr/src/sys/i386/conf是内核文件所在目录

#cp GENERIC DWOLF ##备份内核文件GENERIC

#grep -i IPFIREWALL DWOLF ##查找:IPFIREWALL,如果找到,就加"#"注释掉:

#vi DWOLF ##vi编辑,也可以用ee编辑器

#options IPFIREWALL

#options IPDIVERT

##再加入:

options IPFILTER

options IPFILTER_LOG

##保存!

#config DWOLF ##检查有没有错误

#cd /usr/src

#make kernel KERNCONF=DWOLF ##编译内核

#reboot

##重起以后打dmesg查看启动信息,我看到有一条

IP Filter: v3.4.31 initialized. Default = pass all, Logging = enabled

#ipnat -l ## 显示ipnat的设定状况

map rl1 192.168.0.0/24 -> 218.92.251.108/32 portmap tcp/udp 10000:65000

map rl1 192.168.0.0/24 -> 218.92.251.108/32

呵呵,搞定!

试试内网机器能不能上网,(测试,可省略)

PING 192.168.0.1 成功连接主机,OK!

PING mdxy.3322.org 解析到IP地址,DNS OK!

PING 218.92.251.122 PING通外网主机,OK!(注意,因为8月中旬全国ISO升级,禁止ICMP数据包,路由器外的IP一般都不给PING,你可以找一个自己可以PING通的外网IP,或者省略这一步,无所谓)

==附录几个常用的IPNAT命令

ipnat -l

会列出目前ipnat的设定及状况

ipnat -C

清除ipnat的设定

ipfstat

监测数据的流量

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航