Song <Song.bbs@bbs.cynix.com.tw>
wrote in message
news:3cYTWH$6vu@bbs.cynix.com.tw...
> ※ 引述《kenduest (小州)》之銘言:
> > 那您的問題應該是很單純....
> > 主要就是您 Linux
安裝兩張網路卡,一個對內,一個對外。對外就是
> > 使用真實的 ip,對內就是接 private network
部份,使用 private ip。
> > 簡單就是說:
> >
ADSL Router
> >
|
> >
|
> >
-----
> >
|HUB|-------------- DMZ (Real IP)
> >
-----
> >
|
> >
|
> >
---------------------
> >
| Linux NAT Router |
> >
---------------------
> >
|
> >
|
> >
----------------------
> >
| | | | | |
> >
IP1 IP2 IP3 IP4 IP5 IP6
> >
(Private IP)
> > 若是您要把 DMZ 搬移到 Linux NAT Router
裡面的話,可能 Linux NAT
> > 該主機要插三張網路卡,一個對外,一個對
Private IP 區域,一個接
> > DMZ 區域較佳。不過您需要使用 ARP Proxy
機制,好讓於外面可以存取
> > DMZ 內的電腦,這個部份,參考先前 Song
兄的文章。
>
> 如果您可以修改專線 Router 的 Routing
Table 的話,可以使用切割子網
> 來作 小州兄 提示的第二種方式:
>
>
|
>
+----+----+
> |
Router |
>
+----+----+
>
|eth0
> +-------+-------+eth1
+-----+
> | Linux Router
+---------+ Hub |
> +-------+-------+
+--+--+
>
|eth2
|
>
+--+--+
+--+--+
>
| Hub |
| DMZ |
>
+--+--+
>
|
> +-------+-------+
> | Private Area |
>
> 假設 取得的 IP 是
10.0.0.0/26 (0~63)
> Router 的 IP
是 10.0.0.62
>
^^^^^^^^^
> 將 10.0.0.0/26 切割成 10.0.0.0/27 (0~31),10.0.0.32/27
(32~63)
>
> 因為 Router's IP 屬於後段因此將
10.0.0.32/27 給 eth0 所接之 network
> 所以您的 eth0 就可以設成 10.0.0.33/27
>
> eth1 及 DMZ 中之主機均使用 10.0.0.0/27
範圍內之 IP。例如 eth1 就可以
> 設成 10.0.0.30/27。DMZ 中之主機的 gateway
均指向 eth1(Linux Router)。
>
> 然後設定 Router 及 Linux Router 的 Routing
Table
> Router 將 netmask 改為 /27,增加 10.0.0.0/27
gateway 10.0.0.33
> Linux Router 設定三個接鄰的 network,及
default gateway 指向 Router。
>
> 請按照您實際的 network 切割。
>
> ================
> 所以在 Linux Router 對 Private Area 要有
ip_masq 的設定,
> 而對 DMZ 不用。
>
> 至於 Private Area 與 DMZ 之間,到底 ip_masq
對 Private Area 的設定
> 有沒有生效?就是說 Private Area
是不是會改裝成 eth1 的 IP
> 去聯結 DMZ 的主機?
>
> 弟沒試過,不過這點蠻有趣的 :)
>
> 因為我們設定 ip_masq 時,只指定 -s
來源 和 -d 目的,而來源就是
> Private network, 目的都設 0.0.0.0
全部,因此只要由 Private Area 出來的
> 應該都會被改裝(化妝),但是 Routing
本身也就可以連通了。
>
> 所以說,到底 DMZ 內接到的 IP
是哪一個?
>
老實說﹐我沒有實際抓封包內容看過﹐不過﹐我認為 song
兄的假設是對的﹐也就是
MASQ 後再出去的界面地址。
如果 routing 設定好之後﹐要讓內部網路到 DMZ
的封包不經過偽裝﹐只要在 MASQ 那
行規則前面插入(用 -I ) 目標為 ACCEPT
的規則就可以了﹐例如﹕
ipchains -I forward -d ${dmz_net} -j ACCEPT
假如這台 NAT 同時是外面封包進入 DMZ 的 gateway﹐這裡可以不指定
-s 範圍。否
則﹐您可以只限制 -s ${private_net} 的來源可以跳至 ACCEPT
目標﹐其餘 DENY (用
policy)。但別忘了在 DMZ 設定回去內部網路的路由就是了(假如
NAT 不是 DMZ 的預
設 gw)。