用Linux防火牆構建軟路由(轉)

post0發表於2007-08-10
用Linux防火牆構建軟路由(轉)[@more@]

本文主要介紹利用Linux自帶的Firewall軟體包來構建軟路由的一種方法,此方法為內部網與外部網的互連提供了一種簡單、安全的實現途徑。 Linux自帶的Firewall構建軟路由,主要是透過IP地址來控制訪問許可權,較一般的代理服務軟體有更方便之處。

一、防火牆

防火牆一詞用在計算機網路中是指用於保護內部網不受外部網的非法入侵的裝置,它是利用網路層的IP包過濾程式以及一些規則來保護內部網的一種策略,有硬體實現的,也有軟體實現的。

執行防火牆的計算機(以下稱防火牆)既連線外部網,又連線內部網。一般情況下,內部網的使用者不能直接訪問外部網,反之亦然。如果內部網使用者要訪問外部網,必須先登入到防火牆,由防火牆進行IP地址轉換後,再由防火牆傳送給外部網,即當內部網機器透過防火牆時,源IP地址均被設定(或稱偽裝,或稱欺騙)成外部網合法的IP地址。經偽裝以後,在外部網看來,內部網的機器是一個具有合法的IP地址的機器,因而可進行通訊。外部網使用者要訪問內部網使用者時,也要先登入到防火牆,經過濾後,僅透過允許的服務。

由此可見,防火牆在內部網與外部網之間起到了兩個作用:

(1)IP包過濾——保護作用;

(2)路由——網路互連作用。

二、防火牆的安裝

1.硬體安裝

執行Linux防火牆的計算機上必須安裝有兩塊網路卡或一塊網路卡、一塊Modem卡。本文以兩塊網路卡為例。安裝網路卡,正確設定中斷號及埠號,併為各網路卡分配合適的IP地址。

配置以後的防火牆模型。

2.安裝閘道器

安裝閘道器的方法有兩種:一種是執行linuxconf,進入ROUTINGANDGATEWAYS選項,配置閘道器;另一種是修改rc.inet1檔案。下面介紹修改rc.inet1檔案的方法安裝閘道器。

進入/etc/rc.d/目錄,鍵入virc.inet1回車,參照下面內容修改:

IPADDR="202.114.194.130"#第一塊卡的外部網IP地址

NETMASK="255.255.255.128"#第一塊卡的外部網子網掩碼

NETWORK="202.114.194.0"#第一塊卡的外部網網段

BROADCAST="202.114.194.255"#第一塊卡的外部網廣播地址

GATEWAY="202.114.194.129"#第一塊卡的外部網閘道器,也是

預設閘道器

IPADDR1="192.168.0.1"

#第二塊卡的內部網IP地址

NETMASK1="255.255.255.0"

#第二塊卡的內部網子網掩碼

NETWORK1="192.168.0.0"

#第二塊卡的內部網網段

BROADCAST1="192.168.0.255"

#第二塊卡的內部網廣播地址

/sbin/ifconfigeth0${IPADDR}

broadcast${BROADCAST}metmask${NETMASK}

#設定第一塊卡

/sbin/ifconfigeth1${IPADDR1}

broadcast${BROADCAST1}metmask$

{NETMASK1}

#設定第二塊卡

/sbin/routeadd-net${NETWORK}

netmask${NETMASK}

/sbin/routeadddefaultgw$

{GATEWAY}metric1

/sbin/routeadd-net${NETWORK1}

netmask${NETMASK1}

要測試閘道器設定情況,可以用“ifconfig”命令測試,執行該命令後,會顯示出eth0和eth1及上面我們修改的相關內容,如果沒有顯示這些相關資訊,說明設定不正確,還要重新再來一次。

三、構建軟路由

1.IP地址轉換

IP地址轉換也稱為IP地址偽裝或IP地址欺騙,也就是指當內部網機器登入到防火牆上時,防火牆將內部網IP(不合法的外部網IP地址)偽裝成合法的外部網IP地址,再與外部網通訊。IP地址偽裝的命令格式如下:

ipfwadm-F-amasquerade-D0.0.0.0/0-Weth0

其中“-D0.0.0.0/0”表示允許對所有內部網IP地址進行轉換,“-Weth0”表示內部網IP地址是透過網路卡1進行轉換的。

IP地址偽裝設定完畢後,就可以在內部網機器上ping一下外部網的機器,如果防火牆上的forwarding沒有被關閉的話,就可以ping通了,說明配置一切正確。

2.設定訪問外部網的許可權

為了加強對網路的管理,有時要對內部網訪問外部網進行一定的限制,這種限制包括:(1)允許哪些機器可以上網;(2)允許訪問哪些站點。

限制上網機器可以參照以下指令碼:

ipfwadm-F-pdeny#全部拒絕內部網機器上網

ipfwadm-F-am-S192.168.0.5/32

-d0.0.0.0/0#允許192.168.0.5機器對

外部網的訪問

限制訪問站點,可以這樣設定:

ipfwadm-O-ireject-D0.0.0.0/0

#對外部網的所有站點加以

拒絕

ipfwadm-O-iaccept-D202.114.0.0/16

#允許訪問202.114.0.0~

202.114.255.255內的所有站點

上述設定中,“0.0.0.0/0”表示全部網址,“202.114.0.0/16”表示202.114.0.0至202.114.255.255的所有站點。

3.統計IP包流量

IP包流量記賬的設定如下:

ipfwadm-A-f

/sbin/ipfwadm-A-f

/sbin/ipfwadm-Aout-I-S192.168.0.0

/32-D0.0.0.0/0

#對所有流出包

統計

/sbin/ipfwadm-Ain-I-S192.168.0.0

/32-D0.0.0.0/0

#對所有流入包

統計

所在記賬的統計都存放於/proc/net/ip_acct檔案中,其所有IP地址均為16進製表示。

以上所有指令碼,既可放置在/etc/rc.d檔案中,也可單獨設立shell指令碼,用命令sh執行。

以上設定均在RedHat5.1上執行透過

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940607/,如需轉載,請註明出處,否則將追究法律責任。

相關文章