[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 網絡管理 > 互聯網技術 > 正文
利用端口轉發由內部網對外提供網絡服務
http://www.linuxforum.net 作者:吳阿亭 (2001-04-21 18:32:45)
               
1. 圖例如下:

                          INTERNET
                              | (194.160.1.1)
                         linux box (firewall)
                              | (192.168.11.5)
                +--------------------------+ internal ethernet
                | (192.168.11.2)               | (192.168.11.3)
           linux box 1(WWW)                linux box 2 (POP3)

2.什是轉口轉發(port forwarding)?

當外部一撥號用戶撥到當地ISP,在瀏覽器中指定地址如www.yourcompanydomain.com
(194.160.1.1)時或者在outlook express中指定POP3服務器為pop.yourcompandomain.com
(194.160.1.1)時,你的防火牆(圖中的linux box)然轉發這個包到內部服務器WWW
或POP3,當內部服務器生成回復包朝外發出經過防火牆時,包被重寫。具體過程如下:

在防火牆上,我們設置端口轉發規則,指定所有到防火牆外部地址194.160.1.1的TCP連接,
且目的端口為80的所有連接,重定向到內部機器192.168.11.2的端口80。假定任意一外部
連接進來的主機IP為 163.158.1.2。

則源和目的地址及端口號分別為
Source: 163.158.1.2/7890  Dest: 194.160.1.1/80

被轉發到內部主機,重寫目的地址部分
Source: 163.158.1.2/7890  Dest: 192.168.11.2/80

由內部主機回復的包為:
Source: 192.168.11.2/80       Dest: 163.158.1.2/7890

再經過防火牆時源地址被重寫
Source 194.160.1.1/80      Dest: 163.158.1.2/7890

3.如何在Linux 2.2.x中使用端口轉發?

a.如果你用最近的redhat 內核,已經有一個端口轉發模塊提供了。
為了用它,運行 #modprobe ip_masq_portfw
 如果你用最新的不是redhat提供的內核RPM包,則需要在編譯內核時
啟動下面的項目:

CONFIG_EXPERIMENTAL
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_IPPORTFW

b.然下載ipmasqadm RPM包。
ftp://ftp.redhat.com/pub/contrib/libc6/i386/ipmasqadm-0.4.2-3.i386.rpm

c.啟動下面的IP轉發和中轉鏈設置:
#ipchains -P forward DENY
#echo 1 > /proc/sys/net/ipv4/ip_forward
 
d. 如果是專線上網,則用下面的命令設置IP偽裝規則
#ipchains -A forward -j MASQ -s 192.168.11.2/32
#ipchains -A forward -j MASQ -s 192.168.11.3/32
   如果是撥號上網,則用
#ipchains -A forward -i ppp0 -j MASQ

e.最啟動端口轉發規則
#ipmasqadm portfw -a -P tcp -L 194.160.1.1 80 -R 192.168.11.2 80
#ipmasqadm portfw -a -P tcp -L 192.160.1.1 110 -R 192.168.11.3 110

4.應注意的問題:
 a. 對pop3,telnet等協議設置端口轉發時,注意檢查
 /etc/hosts.allow and /etc/hosts.deny文件允許外部世界的任意地址都可連接進來
 
 b. 內部機器的網關必須設成防火牆機器的內部那塊網卡的地址
 
5.端口轉發的優勢
a.在IP層內核一級處理包重寫,更加穩定可靠,速度更快
b.你可以在防火牆外部地址上使用IP別名處理更多的端口轉發請求,若內部機器有不止一台WWW服務器
可以這樣做,對不同的別名IP轉發到不同的內部主機
c.減少防火牆上在用戶空間運行的應用程序

Jephe Wu
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★