在FreeBSD4.3release上使用IPFilter做NAT

发表于:2007-07-04来源:作者:点击数: 标签:
在FreeBSD上可以使用ipfw/na td 来做NAT及firewall,也可以使用ipfilter来做NAT。 以下介绍使用IP Filter来做NAT 1、使用二块网卡。一块是Realtek 8139C,在内核认到为:rl0(对外), 一块是D-Link 530TX,在内核认到为:vr0(对外)。 2、设置IP地址。在/etc

  在FreeBSD上可以使用ipfw/natd来做NAT及firewall,也可以使用ipfilter来做NAT。
  以下介绍使用IP Filter来做NAT
  1、使用二块网卡。一块是Realtek 8139C,在内核认到为:rl0(对外),
  一块是D-Link 530TX,在内核认到为:vr0(对外)。
  2、设置IP地址。在/etc/rc.conf中加上:
  ifconfig_rl0=".net 163.163.163.163 netmask 255.225.225.225" 
  (安装FreeBSD时认到的网卡1,不用添加;163.163.163.163为ISP给你的静态IP地址。
  拨号的我没试过。也不知到怎样做,如果哪位知道请告诉我一声。)
  ifconfig_vr0="inet 192.168.0.1 netmask 255.255.255.0" (设置第二块网卡的IP地址)
  3、修改/etc/rc.conf,改为:
  firewall_enable="NO"
  gateway_enable="YES"
  4、因为ipfw和ipfilter是不能共存的。所以如果要使用ipfilter,必须将内核中有关
  ipfw的部份注释掉。
  #mkdir /root/kernels
  #cd /usr/src/i386/conf
  #cp GENERIC /root/kernels/mykernel
  #ln -s /root/kernels/mykernel
  先在内核的配置文件查找IPFIREWALL,执行:
  #grep -i IPFIREWALL /root/kernels/mykernel
  如果找到,就注释掉,做法如下:
  #options IPFIREWALL
  #options IPDIVERT
  如果找不到IPFIREWALL,可以直接添加:
  options IPFILTER
  options IPFILTER_LOG
  保存mykernel
  #config mykernel
  #cd /usr/src
  #make buildkernel KERNCONF=mykernel
  #make installkernel KERNCONF=mykernel
  #reboot
  重启进入FreeBSD,如果在开机信息里看到IP Filter 3.4.16 installed 表明内核
  已经支持IP Filter。
  5、建立ipnat配置文件。
  #vi /etc/ipnat.conf
  加入:
  map rl0 192.168.0.0/24 -> 163.163.163.163/255.225.225.225 portmap tcp/udp 10000:65000
  map rl0 192.168.0.0/24 -> 163.163.163.163/255.225.225.225
  保存ipnat.conf
  6、设定开机自动执行ipnat。在/usr/local/etc/rc.d/目录下建立runipnat.sh
  #vi runipnat.sh
  加入内容如下:
  #!/bin/sh
  /sbin/ipnat -f /etc/ipnat.conf
  将runipnat.conf设为可执行。
  #chmod 755 runipnat.sh
  完成后,重新启动机器。
  OK!NAT已经做完了。接着就是你自已测试一下。
  ipnat -l  会列出目前ipnat的设定及状况
  ipnat -C 清除ipnat的设定
  ipfstat 监测数据的流量
  

原文转自:http://www.ltesting.net