中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
利用linux自帶的iptables配置防火墻

9.4 iptables防火墻的NAT配置

NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是一項(xiàng)非常重要的Internet技術(shù),它可以讓內(nèi)網(wǎng)眾多的計(jì)算機(jī)訪問Internet時(shí),共用一個(gè)公網(wǎng)地址,從而解決了Internet地址不足的問題,并對(duì)公網(wǎng)隱藏了內(nèi)網(wǎng)的計(jì)算機(jī),提高了安全性能。本章主要介紹利用iptables防火墻實(shí)現(xiàn)NAT的方法。

9.4.1 NAT簡(jiǎn)介

NAT并不是一種網(wǎng)絡(luò)協(xié)議,而是一種過程,它將一組IP地址映射到另一組IP地址,而且對(duì)用戶來說是透明的。NAT通常用于將內(nèi)部私有的IP地址翻譯成合法的公網(wǎng)IP地址,從而可以使內(nèi)網(wǎng)中的計(jì)算機(jī)共享公網(wǎng)IP,節(jié)省了IP地址資源??梢赃@樣說,正是由于NAT技術(shù)的出現(xiàn),才使得IPv4的地址至今還足夠使用。因此,在IPv6廣泛使用前,NAT技術(shù)仍然還會(huì)廣泛地應(yīng)用。

1.NAT的工作原理

NAT的工作原理如圖9-10所示。

               圖9-10 NAT服務(wù)器工作原理圖

內(nèi)網(wǎng)中IP為10.10.1.10的計(jì)算機(jī)發(fā)送的數(shù)據(jù)包其源IP地址是10.10.1.10,但這個(gè)地址是Internet的保留地址,不允許在Internet上使用,Internet上的路由器是不會(huì)轉(zhuǎn)發(fā)這樣的數(shù)據(jù)包的。為了使這個(gè)數(shù)據(jù)包能在Internet上傳輸,需要把源IP地址10.10.1.10轉(zhuǎn)換成一個(gè)能在Internet上使用的合法IP地址,如218.75.26.35,才能順利地到達(dá)目的地。

這種IP地址轉(zhuǎn)換的任務(wù)由NAT服務(wù)器完成,運(yùn)行NAT服務(wù)的主機(jī)一般位于內(nèi)網(wǎng)的出口處,至少需要有兩個(gè)網(wǎng)絡(luò)接口,一個(gè)設(shè)置為內(nèi)網(wǎng)IP,一個(gè)設(shè)置為外網(wǎng)合法IP。NAT服務(wù)器改變出去的數(shù)據(jù)包的源IP地址后,需要在內(nèi)部保存的NAT地址映射表中登記相應(yīng)的條目,以便回復(fù)的數(shù)據(jù)包能返回給正確的內(nèi)網(wǎng)計(jì)算機(jī)。

當(dāng)然,從Internet回復(fù)的數(shù)據(jù)包也并不是直接發(fā)送給內(nèi)網(wǎng)的,而是發(fā)給了NAT服務(wù)器中具有合法IP地址的那個(gè)網(wǎng)絡(luò)接口。NAT服務(wù)器收到回復(fù)的數(shù)據(jù)包后,根據(jù)內(nèi)部保存的NAT地址映射表,找到該數(shù)據(jù)包是屬于哪個(gè)內(nèi)網(wǎng)IP的,然后再把數(shù)據(jù)包的目的IP轉(zhuǎn)換回來,還原成原來的那個(gè)內(nèi)網(wǎng)地址,最后再通過內(nèi)網(wǎng)接口路由出去。

以上地址轉(zhuǎn)換過程對(duì)用戶來說是透明的,計(jì)算機(jī)10.10.1.10并不知道自己發(fā)送出去的數(shù)據(jù)包在傳輸過程中被修改過,只是認(rèn)為自己發(fā)送出去的數(shù)據(jù)包能得到正確地響應(yīng)數(shù)據(jù)包,與正常情況沒有什么區(qū)別。

通過NAT轉(zhuǎn)換還可以保護(hù)內(nèi)網(wǎng)中的計(jì)算機(jī)不受到來自Internet的攻擊。因?yàn)橥饩W(wǎng)的計(jì)算機(jī)不能直接發(fā)送數(shù)據(jù)包給使用保留地址的內(nèi)網(wǎng)計(jì)算機(jī),只能發(fā)給NAT服務(wù)器的外網(wǎng)接口。在內(nèi)網(wǎng)計(jì)算機(jī)沒有主動(dòng)與外網(wǎng)計(jì)算機(jī)聯(lián)系的情況下,在NAT服務(wù)器的NAT地址映射表中是無法找到相應(yīng)條目的,因此也就無法把該數(shù)據(jù)包的目的IP轉(zhuǎn)換成內(nèi)網(wǎng)IP。

%說明:在有些情況下,數(shù)據(jù)包還可能會(huì)經(jīng)過多次的地址轉(zhuǎn)換。

2.動(dòng)態(tài)NAT

以上介紹的NAT也稱為源NAT,即改變數(shù)據(jù)包的源IP地址,通常也稱為靜態(tài)NAT,它用于內(nèi)網(wǎng)的計(jì)算機(jī)共用公網(wǎng)IP上網(wǎng)。還有一種NAT是目的NAT,改變的是數(shù)據(jù)包的目的IP地址,通常也稱為動(dòng)態(tài)NAT,它用于把某一個(gè)公網(wǎng)IP映射為某一內(nèi)網(wǎng)IP,使兩者建立固定的聯(lián)系。當(dāng)Internet上的計(jì)算機(jī)訪問公網(wǎng)IP時(shí),NAT服務(wù)器會(huì)把這些數(shù)據(jù)包的目的地址轉(zhuǎn)換為對(duì)應(yīng)的內(nèi)網(wǎng)IP,再路由給內(nèi)網(wǎng)計(jì)算機(jī)。

3.端口NAT

另外還有一種NAT稱為端口NAT,它可以使公網(wǎng)IP的某一端口與內(nèi)網(wǎng)IP的某一端口建立映射關(guān)系。當(dāng)來自Internet的數(shù)據(jù)包訪問的是這個(gè)公網(wǎng)IP的指定端口時(shí),NAT服務(wù)器不僅會(huì)把數(shù)據(jù)包的目的公網(wǎng)IP地址轉(zhuǎn)換為對(duì)應(yīng)的內(nèi)網(wǎng)IP,而且會(huì)把數(shù)據(jù)包的目的端口號(hào)也根據(jù)映射關(guān)系進(jìn)行轉(zhuǎn)換。

除了存在單獨(dú)的NAT設(shè)備外,NAT功能還通常被集成到路由器、防火墻等設(shè)備或軟件中。iptables防火墻也集成了NAT功能,可以利用NAT表中的規(guī)則鏈對(duì)數(shù)據(jù)包的源或目的IP地址進(jìn)行轉(zhuǎn)換。下面兩個(gè)小節(jié)將分別介紹在iptables防火墻中實(shí)現(xiàn)源NAT和目的NAT的方法。

9.4.2 使用iptables配置源NAT

在前面的有關(guān)章節(jié)中,已經(jīng)介紹了路由和過濾數(shù)據(jù)包的方法,它們都不牽涉到對(duì)數(shù)據(jù)包的IP地址進(jìn)行改變。但源NAT需要對(duì)內(nèi)網(wǎng)出去的數(shù)據(jù)包的源IP地址進(jìn)行轉(zhuǎn)換,用公網(wǎng)IP代替內(nèi)網(wǎng)IP,以便數(shù)據(jù)包能在Internet上傳輸。iptables的源NAT的配置應(yīng)該是在路由和網(wǎng)絡(luò)防火墻配置的基礎(chǔ)上進(jìn)行的。

iptables防火墻中有3張內(nèi)置的表,其中的nat表實(shí)現(xiàn)了地址轉(zhuǎn)換的功能。nat表包含PREROUTING、OUTPUT和POSTROUTING 3條鏈,里面包含的規(guī)則指出了如何對(duì)數(shù)據(jù)包的地址進(jìn)行轉(zhuǎn)換。其中,源NAT的規(guī)則在POSTROUTING鏈中定義。這些規(guī)則的處理是在路由完成后進(jìn)行的,可以使用“-j SNAT”目標(biāo)動(dòng)作對(duì)匹配的數(shù)據(jù)包進(jìn)行源地址轉(zhuǎn)換。

在圖9-10所示的網(wǎng)絡(luò)結(jié)構(gòu)中,假設(shè)讓iptables防火墻承擔(dān)NAT服務(wù)器功能。此時(shí),如果希望內(nèi)網(wǎng)10.10.1.0/24出去的數(shù)據(jù)包其源IP地址都轉(zhuǎn)換外網(wǎng)接口eth0的公網(wǎng)IP地址218.75.26.35,則需要執(zhí)行以下iptables命令。

# iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -o eth0 -j SNAT --to-source 218.75.26.35

以上命令中,“-t nat”指定使用的是nat表,“-A POSTROUTING”表示在POSTROUTING鏈中添加規(guī)則,“--to-source 218.75.26.35”表示把數(shù)據(jù)包的源IP地址轉(zhuǎn)換為218.75.26.35,而根據(jù)-s選項(xiàng)的內(nèi)容,匹配的數(shù)據(jù)包其源IP地址應(yīng)該是屬于10.10.1.0/24子網(wǎng)的。還有,“-o eth0”指定了只有從eth0接口出去的數(shù)據(jù)包才做源NAT轉(zhuǎn)換,因?yàn)閺钠渌涌诔鋈サ臄?shù)據(jù)包可能不是到Internet的,不需要進(jìn)行地址轉(zhuǎn)換。

以上命令中,轉(zhuǎn)換后的公網(wǎng)地址直接是eth0的公網(wǎng)IP地址。也可以使用其他地址,例如,218.75.26.34。此時(shí),需要為eth0創(chuàng)建一個(gè)子接口,并把IP地址設(shè)置為218.75.26.34,使用的命令如下所示。

# ifconfig eth0:1 218.75.26.34 netmask 255.255.255.240

以上命令使eth0接口擁有兩個(gè)公網(wǎng)IP。也可以使用某一IP地址范圍作為轉(zhuǎn)換后的公網(wǎng)地址,此時(shí)要?jiǎng)?chuàng)建多個(gè)子接口,并對(duì)應(yīng)每一個(gè)公網(wǎng)地址。而“--to-source”選項(xiàng)后的參數(shù)應(yīng)該以“a.b.c.x-a.b.c.y”的形式出現(xiàn)。

前面介紹的是數(shù)據(jù)包轉(zhuǎn)換后的公網(wǎng)IP是固定的情況。如果公網(wǎng)IP地址是從ISP服務(wù)商那里通過撥號(hào)動(dòng)態(tài)獲得的,則每一次撥號(hào)所得到的地址是不同的,并且網(wǎng)絡(luò)接口也是在撥號(hào)后才產(chǎn)生的。在這種情況下,前面命令中的“--to-source”選項(xiàng)將無法使用。為了解決這個(gè)問題,iptables提供了另一種稱為IP偽裝的源NAT,其實(shí)現(xiàn)方法是采用“-j MASQUERADE”目標(biāo)動(dòng)作,具體命令如下所示。

# iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -o ppp0 -j MASQUERADE

以上命令中,ppp0是撥號(hào)成功后產(chǎn)生的虛擬接口,其IP地址是從ISP服務(wù)商那里獲得的公網(wǎng)IP。“-j MASQUERADE”表示把數(shù)據(jù)包的源IP地址改為ppp0接口的IP地址。

%注意:除了上面的源NAT配置外,在實(shí)際應(yīng)用中,還需要配置其他一些有關(guān)iptables網(wǎng)絡(luò)防火墻的規(guī)則,同時(shí),路由的配置也是必不可少的。

9.4.3 使用iptables配置目的NAT

目的NAT改變的是數(shù)據(jù)包的目的IP地址,當(dāng)來自Internet的數(shù)據(jù)包訪問NAT服務(wù)器網(wǎng)絡(luò)接口的公網(wǎng)IP時(shí),NAT服務(wù)器會(huì)把這些數(shù)據(jù)包的目的地址轉(zhuǎn)換為某一對(duì)應(yīng)的內(nèi)網(wǎng)IP,再路由給內(nèi)網(wǎng)計(jì)算機(jī)。這樣,使用內(nèi)網(wǎng)IP地址的服務(wù)器也可以為Internet上的計(jì)算機(jī)提供網(wǎng)絡(luò)服務(wù)了。

如圖9-11所示,位于子網(wǎng)10.10.1.0/24的是普通的客戶機(jī),它們使用源NAT訪問Internet。而子網(wǎng)10.10.2.0/24是服務(wù)器網(wǎng)段,里面的計(jì)算機(jī)運(yùn)行著各種網(wǎng)絡(luò)服務(wù),它們不僅要為內(nèi)網(wǎng)提供服務(wù),而且要為Internet上的計(jì)算機(jī)提供服務(wù)。但由于使用的是內(nèi)網(wǎng)地址,因此需要在NAT服務(wù)器配置目的NAT,才能讓來自Internet的數(shù)據(jù)包能順利到達(dá)服務(wù)器        網(wǎng)段。

  

    圖9-11 用于目的NAT配置的例子網(wǎng)絡(luò)結(jié)構(gòu)

假設(shè)IP為10.10.2.3的計(jì)算機(jī)需要為Internet提供網(wǎng)絡(luò)服務(wù),此時(shí),可以規(guī)定一個(gè)公網(wǎng)IP地址,使其與10.10.2.3建立映射關(guān)系。假設(shè)使用的公網(wǎng)IP是218.75.26.34,則配置目的NAT的命令如下:

# iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -j DNAT --to 10.10.2.3

以上命令是在PREROUTING鏈中添加規(guī)則,這條鏈位于路由模塊的前面,因此是在路由前改變了數(shù)據(jù)包的目的IP,這將對(duì)路由的結(jié)果造成影響。由于網(wǎng)絡(luò)接口eth0與Internet連接,因此,“-i eth0”保證了數(shù)據(jù)包是來自Internet的數(shù)據(jù)包。“-d 218.75.26.34/32”表示數(shù)據(jù)包的目的地是到218.75.26.34主機(jī),而這個(gè)IP應(yīng)該是eth0某個(gè)子接口的地址,這樣才能由NAT服務(wù)器接收數(shù)據(jù)包,否則,數(shù)據(jù)包將會(huì)因?yàn)闊o人接收而丟棄。

“-j DNAT”指定了目標(biāo)動(dòng)作是DNAT,表示要對(duì)數(shù)據(jù)包的目的IP進(jìn)行修改,它的子選項(xiàng)“--to 10.10.2.3”表示修改后的IP地址是10.10.2.3。于是,目的IP修改后,接下來將由路由模塊把數(shù)據(jù)包路由給10.10.2.3服務(wù)器。

以上是讓一個(gè)公網(wǎng)IP完全映射到內(nèi)網(wǎng)的某個(gè)IP上,此時(shí)同10.10.2.3主機(jī)直接位于Internet,并且使用218.75.26.34地址是沒有區(qū)別的。因此這種方式雖然達(dá)到了地址轉(zhuǎn)換的目的,但實(shí)際上并沒有帶來多大好處,因?yàn)槭褂肗AT的主要目的是為了能夠共用公網(wǎng)IP地址,以節(jié)省日益緊張的IP地址資源。為了達(dá)到共用IP地址的目的,可以使用端口映射。

端口映射是把一個(gè)公網(wǎng)IP地址的某一端口映射到內(nèi)網(wǎng)某一IP地址的某一端口上去。它使用起來非常靈活,兩個(gè)映射的端口其端口號(hào)可以不一樣,而且同一個(gè)公網(wǎng)IP的不同端口可以映射到不同的內(nèi)網(wǎng)IP地址上去。

例如,假設(shè)主機(jī)10.10.2.3只為外網(wǎng)提供Web服務(wù),因此,只需要開放80端口,而主機(jī)10.10.2.9為外網(wǎng)提供了FTP服務(wù),因此需要開放21號(hào)端口。在這種情況下,完全可以把公網(wǎng)IP地址218.75.26.34的80號(hào)和21號(hào)端口分別映射到10.10.2.3和10.10.2.9的80號(hào)和21號(hào)端口,以便兩臺(tái)內(nèi)網(wǎng)服務(wù)器可以共用一個(gè)公網(wǎng)IP。具體命令如下所示。

# iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 80 -j DNAT --to 10.10.2.3:80

# iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 21 -j DNAT --to 10.10.2.9:21

以上命令中,目的地址是218.75.26.34的TCP數(shù)據(jù)包。當(dāng)目的端口是80時(shí),將轉(zhuǎn)發(fā)給10.10.2.3主機(jī)的80端口;當(dāng)目的端口是21時(shí),將轉(zhuǎn)發(fā)給10.10.2.9主機(jī)的21號(hào)端口。當(dāng)然,兩個(gè)映射的端口完全可以不一樣。例如,如果還有一臺(tái)主機(jī)10.10.2.8也通過80端口提供Web服務(wù),并且映射的IP地址也是218.75.26.34,此時(shí)需要把218.75.26.34的另一個(gè)端口,如8080,映射到10.10.2.8的80端口,命令如下:

# iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 8080 -j DNAT --to 10.10.2.8:80

%注意:上面介紹的只是有關(guān)iptables中的DNAT配置,在實(shí)際應(yīng)用中,還需要其他一些配置的配合才能真正成功。例如,filter表的3個(gè)鏈應(yīng)該允許相應(yīng)的數(shù)據(jù)包通過,應(yīng)該為每一個(gè)外網(wǎng)IP創(chuàng)建eth0接口的子接口等。

此外,對(duì)于FTP服務(wù)來說,由于21號(hào)端口只是建立控制連接時(shí)用到的端口,真正傳輸數(shù)據(jù)時(shí)要使用其他端口。而且在被動(dòng)方式下,客戶端向FTP服務(wù)器發(fā)起連接的端口號(hào)是隨機(jī)的,因此,無法通過開放固定的端口來滿足要求。為了解決這個(gè)問題,可以在Linux系統(tǒng)中載入以下兩個(gè)模塊。

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

這兩個(gè)模塊可以監(jiān)控FTP控制流,以便能事先知道將要建立的FTP數(shù)據(jù)連接所使用的端口,從而可以允許相應(yīng)的數(shù)據(jù)包通過,即使防火墻沒有開放這個(gè)端口。

9.5 小    結(jié)

防火墻是保護(hù)主機(jī)和網(wǎng)絡(luò)安全的一種重要設(shè)施,Linux自帶的iptables防火墻功能非常豐富,是Linux系統(tǒng)構(gòu)建防火墻的首選。本章首先講述iptables防水墻的實(shí)現(xiàn)方式及iptables命令的格式,然后分別介紹了使用iptables命令配置主機(jī)防火墻、網(wǎng)絡(luò)防火墻的方法,最后還介紹了用iptables防火墻實(shí)現(xiàn)動(dòng)態(tài)地址轉(zhuǎn)換(NAT)的配置方法。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux教程:如何用iptables實(shí)現(xiàn)NAT - 概述及原理 _商用系統(tǒng) _天極Chi...
寧波市計(jì)算機(jī)學(xué)會(huì)
Iptables工作原理使用詳解
iptables詳解
iptable防火墻詳解
第9章__Linux防火墻配置
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服