IPFW - 建置 NAT 機制

1、前言

NAT 伺服器主要是用來簡化及保有 IP 位址,它可讓原本無法上網且使用內部IP位址的主機可以成功的連接 Internet。如此將大大減少 IP 位址的需求,因為基本上整個內部網路都可藉 NAT 上的一個外部 IP 來連至 Internet,FreeBSD 內建 IPFW,因此我們可以很輕鬆設定一個簡單的防火牆,但要了解防火牆只是限制要開放 (禁止) 哪些服務、或是IP,但若您的規則沒有設定好,當然如同虛設,本篇實作只是說明如何達成 NAT 功能,關於 NAT 可參考站內文章 NAT 伺服器的原理與運作流程






文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.編輯 kernel 檔案
          步驟2.編輯 /etc/rc.conf
4、參考





2、實作環境

  • FreeBSD 4.8-RELEASE 





3、安裝及設定

步驟 1. 編輯 kernel 檔案

首先先在 kernel 檔中加入下列內容。
 options   IPFIREWALL                     //支援防火牆
 options   IPFIREWALL_DEFAULT_TO_ACCEPT   //預設允許所有封包通過
 options   IPFIREWALL_VERBOSE             //在 ipfw 中設定要記錄哪些封包
 options   IPDIVERT                       //支援 NAT  

然後再去編譯 kernel 檔。
config newkernel
cd ../../compile/newkernel
make depend all install
make clean 




步驟 2. 編輯 /etc/rc.conf

修改 /etc/rc.conf 以便系統重新開機時能自動啟動 IPFW 及相關服務。
vi /etc/rc.conf    //修改 rc.conf 內容如下
 gateway_enable="YES"       //設定本主機可做為 Gateway
 firewall_enable="YES"      //這四行是防火牆的設定
 firewall_type="OPEN"       //打開 Firewall
 natd_interface="fxp0"      //定義 NAT 網路卡
 natd_enable="YES"          //開機啟動 NAT 服務
 ### WAN NIC  
 defaultrouter="61.60.59.254"
 hostname="nat.weithenn.org"
 ifconfig_fxp0="inet 61.60.59.58 netmask 255.255.255.0"
 ### LAN NIC
 ifconfig_xl0="inet 192.168.1.254 netmask 255.255.255.0"  

再看看 /etc/service 中是否有 natd 8668/divert 這一行,若沒有就加上去吧。 如此 NAT 應該就可成功了。





4、參考