通過(guò)之前的學(xué)習(見(jiàn) http://www.linuxidc.com/Linux/2013-08/88423.htm ),我們認識了linux防火墻的表、鏈結構,并學(xué)會(huì )編寫(xiě)簡(jiǎn)單的防火墻規則,接下來(lái)為大家補充linux防火墻的SNAT源地址轉換和DNAT目標地址轉換策略,熟悉其的用途和用法是我們掌握防火墻的基礎,下邊開(kāi)始我們的學(xué)習:
推薦閱讀:
iptables—包過(guò)濾(網(wǎng)絡(luò )層)防火墻 http://www.linuxidc.com/Linux/2013-08/88423.htm
Linux防火墻iptables詳細教程 http://www.linuxidc.com/Linux/2013-07/87045.htm
iptables+L7+Squid實(shí)現完善的軟件防火墻 http://www.linuxidc.com/Linux/2013-05/84802.htm
iptables的備份、恢復及防火墻腳本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Linux下防火墻iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm
SNAT策略概述:
SNAT策略的典型應用環(huán)境
局域網(wǎng)主機共享單個(gè)公網(wǎng)IP地址接入Internet
SNAT策略的原理:
源地址轉換(Source Network Address Translation)是linux防火墻的一種地址轉換操作,也是iptables命令中的一種數據包控制類(lèi)型,并根據指定條件修改數據包的源IP地址。
實(shí)驗環(huán)境拓撲:
實(shí)驗分析:
a:只開(kāi)啟路由轉發(fā),未做地址轉換的情況:
分析:
從局域網(wǎng)PC機訪(fǎng)問(wèn)Internet的數據包經(jīng)過(guò)網(wǎng)關(guān)轉發(fā)后其源IP地址保持不變;
當Internet中的主機收到這樣的請求數據包后,響應數據包將無(wú)法正確返回,從而導致訪(fǎng)問(wèn)失敗。
b:開(kāi)啟路由轉發(fā),并設置SNAT轉換的情況:
分析:
局域網(wǎng)PC機訪(fǎng)問(wèn)Internet的數據包到達網(wǎng)關(guān)服務(wù)器時(shí),會(huì )先進(jìn)行路由選擇;
如果該數據包需要從外網(wǎng)接口eth0向外轉發(fā),則將其源IP地址192.168.10.2修改為網(wǎng)關(guān)的外網(wǎng)接口地址210.106.46.151,然后發(fā)送給目標主機。
這種訪(fǎng)問(wèn)方式的優(yōu)點(diǎn):
Internet中的服務(wù)器并不知道局域網(wǎng)PC機的實(shí)際IP地址,中間的轉換完全由網(wǎng)關(guān)主機完成,起到了保護內部網(wǎng)絡(luò )的作用。
SNAT策略的應用:
前提條件:
局域網(wǎng)各主機正確設置IP地址/子網(wǎng)掩碼
局域網(wǎng)各主機正確設置默認網(wǎng)關(guān)地址
Linux網(wǎng)關(guān)支持IP路由轉發(fā)
實(shí)現方法:
編寫(xiě)SNAT轉換規則
SNAT共享固定IP地址上網(wǎng):
實(shí)驗環(huán)境描述:
Linux網(wǎng)關(guān)服務(wù)器兩塊網(wǎng)卡eth0:210.106.46.151連接Internet、eth1:192.168.10.1連接局域網(wǎng),開(kāi)啟IP路由功能
局域網(wǎng)PC機的默認網(wǎng)關(guān)設為192.168.10.1,并設置正確的DNS服務(wù)器。
內網(wǎng)和外網(wǎng)分別新建客戶(hù)機,分別指定對應的網(wǎng)關(guān)地址,在外網(wǎng)客戶(hù)機上開(kāi)啟httpd服務(wù),在內網(wǎng)客戶(hù)機中訪(fǎng)問(wèn)httpd服務(wù),最后查看httpd客戶(hù)機的訪(fǎng)問(wèn)記錄;
要求:192.168.10.0/24網(wǎng)段的PC機能夠通過(guò)共享方式正常訪(fǎng)問(wèn)internet。
實(shí)驗步驟:
1:打開(kāi)網(wǎng)關(guān)的路由轉發(fā)(IP轉發(fā)是實(shí)現路由功能的關(guān)鍵所在):
打開(kāi)路由轉發(fā)的兩種方式:
永久打開(kāi)(修改/proc文件系統中的ip_forward,當值為1時(shí)表示開(kāi)啟,為0表示關(guān)閉):
臨時(shí)開(kāi)啟,臨時(shí)生效:
2:正確設置SNAT策略(若要保持SNAT策略長(cháng)期有效,應將相關(guān)命令寫(xiě)入rc.local中):
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to-source 210.106.46.151
3:測試SNAT共享接入的結果:
上訴操作完成后,使用局域網(wǎng)PC就可以正常訪(fǎng)問(wèn)Internet中的網(wǎng)站。
對于被訪(fǎng)問(wèn)的網(wǎng)站服務(wù)器,在日志文件中將會(huì )記錄以網(wǎng)關(guān)主機210.106.46.151訪(fǎng)問(wèn)。
共享動(dòng)態(tài)IP地址上網(wǎng):
MASQUERADE —— 地址偽裝
適用于外網(wǎng)IP地址非固定的情況
對于ADSL撥號連接,接口通常為ppp0、ppp1
將SNAT規則改為MASQUERADE即可
實(shí)例:
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ppp0 -j MASQUERADE
如果網(wǎng)關(guān)使用固定的公網(wǎng)IP地址,建議選擇SNAT策略而不是MASQUERADE策略,以減少不必要的系統開(kāi)銷(xiāo)。

聯(lián)系客服