Song <Song.bbs@bbs.cynix.com.tw>
wrote in message
news:3dKYl9$6z_@bbs.cynix.com.tw...
> ※ 引述《dinoming@hotmail.com
( 大明)》之銘言:
> > 小弟有一些關於 Firewall
設定的問題想請教,希望大家能給小弟一點意見及幫
忙。
> > 小弟現時公司內部的 Windows 98 的 IP 位址是用 168.168.1.5
- 168.168.1.100
> > Subnet Mask 是 255.255.0.0。現在小弟想架設一部 Linux
防火牆 (分別有
Public,
> > LAN, DMZ 的介面)。 Email 及 Web Server 是連上 DMZ
的集線器上,內部的使用
者是
> > 連上 LAN 的集線器上,而 Public 這個介面是連上 ISP
如我們的 Router 上。
> > eth0 (PUBLIC) : w.x.y.z
> > eth1 (LAN) : 168.168.1.254 ( subnet : 255.255.255.0, Network :
> > 168.168.255.255 ) 有錯嗎 ?
>
> 255.255.255.0 應該叫 netmask
> Netword ID 應該是 168.168.1.0
>
> > eth2 (DMZ) : 168.168.2.254 ( subnet : 255.255.255.0, Network :
> > 168.168.255.255 ) 有錯嗎 ?
> > 問題是 : 小弟想更清楚有關於 eth1 及 eth2 這兩組 IP
的設定。
> > 小弟曾經試過使用 2 張網絡卡設定 ipchains + ipmasqadm
portfw, 當期時, 內
部網
> > 絡包括了 60 台客戶端電腦及 1 台 qmail server.
所有對外的連接,如:
> > www,pop3,smtp,telnet,ftp.......等都非常之正常。
但當小弟想利用 outlook
連接
> > mail.mydomain.com 時,等了很久都沒有回應。(但,如果使用
ip address 是可
以的
> > !)
> > (注 : mail.domain.com 的 MX 記錄是由 ISP 的 Bind
指往我們的 True IP
(eth0),
> > 再透過 firewall 的 ipmasqadm portfw 至內部那台電腦上。)
> > 如果由家裡上網是沒有問題的 !!
從小弟的看法,應該是當客戶端要求連接
> > mail.mydomain.com 時,Firewall 會把這個請求送往 ISP 的 bind
上.., 然後當
客戶
> > 端知道了正確的 IP 後再轉至那個真 IP 上 (注:
那個真的 IP 便是小弟那台
> > Firewall 的 eth0.) 再透過firewall 的 ipmasqadm portfw
轉送至內部的
Server
> > 上。
> > 請問大家有何意見?
> > Rgds,
> > Dino
>
> ?? 這是說您沒有自己架設 DNS 嗎?
> 那麼您內部電腦的 DNS 指向哪裡?
>
> 最簡單的解決方式是,在 client 上建立
hosts 檔,設定 mail.domain.com
> 的 IP 指向內部位置,而非 Firewall 的
eth0。
> 但這會造成後續維護上的困難。
>
> 如果您有自己架設 DNS,您可以在 DNS
上修改 /etc/hosts 的設定,
> 將 mail.domain.com 的 IP
指向內部位置,而非 Firewall 的 eth0。
>
> 這個問題應還是 ICMP 的 Redirect
所產生的問題,您可找尋舊的文章:
> [問題]NAT中redirect port如何讓private ip也能access?
> 這個系列的討論文章。
>
song 兄﹐這問題似乎需要再探討一下的。
關於DNS﹐他也說過是 ISP 那邊幫忙指定的﹐只要 IP
找對了﹐是否在自己網路上架
DNS 似乎影響不大﹐除非兩邊的 DNS
資料不一至。他已經指出用 IP 來連接的話﹐沒
有問題。那他這裡所指的 IP﹐在 outlook 上面應該是設 POP 的 IP
吧﹖當然也可以
設定 SMTP
的﹐但不確定不是他所問的。不過﹐他又說在家可以連接﹐那這樣的推斷﹐
是不是他自己的 DNS 設定有問題﹖
如果 DNS 設定沒問題﹐那就回到前一個問題﹕究竟 server
擺在那邊﹖在內部嗎﹖那
會碰到 host route redirect 的 ICMP
問題。解決之道是可以修改內部的 DNS ﹐讓之
指到內部 server 的 IP 去﹐或是在所有 clients 上面用 hosts
檔來寫死地址。
另一個方法是升級到 kernel 2.4 用 iptables 來做﹕
# iptables -t nat -A PREROUTING -d 1.2.3.4 \
-p tcp --dport 80 -j DNAT --to
192.168.1.1
# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
-p tcp --dport 80 -j SNAT --to
192.168.1.250
他原本的架構是有三張網路卡﹕一對外﹐一對內﹐一對 DMZ。
我想(雖然他沒明確指出)﹐客戶端的 request
應該會從對內界面傳入﹐然後經過 port
forward 之後會由 DMZ
的界面出去。照這樣的設計﹐應該不至於出現 ICMP Redirect
的現象才對。
無論如何﹐在判斷問題之前﹐我們有必要先將一些不必要的非明朗因素排除掉﹐例如確
定封包沒有被 ipchains
或其它過濾系統擋掉了﹐以及路由的設定是可行的。