作者 主題: 使用 ipfilter 來架 nat  (閱讀 6921 次)

0 會員 與 1 訪客 正在閱讀本文。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
使用 ipfilter 來架 nat
« 於: 2001-12-06 11:33 »
一般在 FreeBSD 上均是使用 ipfw/natd 來架設 nat 及 firewall,其實在 FreeBSD 中另有個相當不錯、類似的軟體 => ipfilter,現在就讓我們利用 ipfilter 來架 nat。

以下說明環境如下(請視你的環境而修改):

1.使用二張螃蠏網路卡,rl0 對外,rl1 對內
2.其中 rl0 對外 ip 61.219.230.5
3.rl1 對內 192.168.88.99
4.內部使用 ip 範圍為 192.168.88.0/24,其中 192.168.88.99 是用在 nat 對內

請依照以下 step :

● 加一片對內的網路卡

在 /etc/rc.conf 檔加上 rl1 網路卡資料
ifconfig_rl1="inet 192.168.88.99 netmask 255.255.255.0"

● 修改相關設定

修改 /etc/rc.conf 檔,加上(或修改)以下資料
firewall_enable="NO" -> 注意是 no 不是 yes
gateway_enable="YES"

● 重新編繹核心

因 ipfw 和 ipfilter 不能共存,所以如果你是使用 ipfw 的話,請將核心中有關 ipfw 的部份 mark 掉,如以下:

options IPFIREWALL
options IPDIVERT

請將以上二項 mark 掉,而後加上這二行

options IPFILTER
options IPFILTER_LOG

然後重新編繹你的核心(請自行參考相關資料)

● 設定一個 ipnat 設定檔(檔名可自取,以 /etc/ipnat.conf 為例)

# cd /etc
# ee ipnat.conf
在這個檔案中,加入以下二行資料
map rl0 192.168.88.0/24 -> 61.219.230.5/32 portmap tcp/udp 10000:65000
map rl0 192.168.88.0/24 -> 61.219.230.5/32

● 為了開機可自動執行 ipnat(ipfilter 用來執行 nat 用的指令),你可在 /usr/local/etc/rc.d 這個目錄中新增一個 *.sh 檔,如下(以 runipnat.sh 為例)

# cd /usr/local/etc/rc.d
# ee runipnat.sh
加入以下資料
#!/bin/sh ->這個要放在第一行
/sbin/ipnat -f /etc/ipnat.conf <-你剛才所設的設定檔,-f 用來指定使用那個設定檔
將 runipnat.sh 設定成可執行
# chmod 755 runipnat.sh

● 存檔後重新開機

● 至於在內部電腦方面,請自行參照你的作業系統設定,如 CreMaker 是使用 window 2000 的系統,我的 tcp/ip 設定如下:

ip位置:192.168.88.77 -> 可在 192.168.88.1 至 192.168.88.254 中任選一個
子網路遮罩:255.255.255.0
預設閘道:192.168.88.99 -> 就是 rl1 的 ip
DNS伺服器:168.95.1.1 -> 可自行修改

設定完後,請自行測試看看,內部電腦是否可連到外面

● ipnat 指令說明

請參考 man ipnat ,以下說明幾個參數

ipnat -l -> 列出目前 ipnat 的設定及狀況
ipnat -C -> C是大寫,清除 ipnat 的設定
ipnat -f <設定檔> -> 讀取設定檔並設定 ipnat

● 小插曲

在裝網路卡時,請注意在 pci 槽中的順序,以面對主機板的方向而言,對外的網路卡(rl0)請插在靠主機板中央,對內那片(rl1)則靠外(左緣),以免系統會抓錯網路卡,我就是當在這裏很久..

● 後記

ipfilter 是個相當不錯的 nat 及 firewall 軟體,由於直接在核心中執行(ipfw/natd 的 natd 是以 daemon 的方式執行),所以效率較 natd 為佳,而且設定簡單。只不過在 FreeBSD 大多是用 ipfw/natd .. 所以才將其冷落了吧..

另 ipfilter 亦可用來設定 firewall ,其相關指令為 ipf ,有興趣者可 man ipf 自行參考一下 ..

另 ipfilter 的官方網站 http://cheops.anu.edu.au/~avalon/

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
使用 ipfilter 來架 nat
« 回覆 #1 於: 2001-12-08 19:52 »
您好,我是梁楓
可以收錄您的文章在我們的學習FreeBSD中嗎?

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
使用 ipfilter 來架 nat
« 回覆 #2 於: 2001-12-09 02:04 »
沒問題,在學習 FreeBSD 時也是在網路上參考釵h資料的..

so,這是我的榮幸..^.^

Anonymous

  • 訪客
使用 ipfilter 來架 nat
« 回覆 #3 於: 2002-03-14 23:25 »
能順便請問一下,如果要用ipfilter架NAT,但是外部網路是PPPoE的固定IP(和信),那對外的interface要設成tun0還是網卡,我對外是用fxp0,對內用de0。內部打算用192.168.0/24,對外則要順便做port mapping 和socket...
請指教。
                         Mephi Liu
                              mephi@ibn.com.tw
                              demon-mephi@yahoo.com.tw

flyhigh

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
使用 ipfilter 來架 nat
« 回覆 #4 於: 2002-03-15 02:13 »
無論對外網路是固定ip or 非固定ip 皆為對外的那張.

Anonymous

  • 訪客
使用 ipfilter 來架 nat
« 回覆 #5 於: 2002-03-16 03:10 »
嗯嗯,首先感謝你的回答。
我想請教的是,我的架構是de0對內,fxp0對外,由於使用的是PPPoE的固定ip,因此,理論上正式對外的interface是tun0。那麼,我要做port mapping 時,是使用tun0為對外的interface還是fxp0呢?

flyhigh

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
使用 ipfilter 來架 nat
« 回覆 #6 於: 2002-03-17 00:16 »
hi:
在編譯kernel時你是否發現tun0是虛設的裝置,
so 依您的情況來說fxp0才是真正對外的網路裝備.
也是您做port mapping 所用的interface.

[ 這篇文章被編輯過:  flyhigh 在 2002-03-17 00:18 ]

a6530466

  • 可愛的小學生
  • *
  • 文章數: 7
    • 檢視個人資料
    • http://a6530466.idv.st/
使用 ipfilter 來架 nat
« 回覆 #7 於: 2002-10-24 18:48 »
請問一下...
如果是Hinet浮動制IP要怎麼設定呢..??
謝謝...

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/