FreeBSD
在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="inet 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 監測數據的流量