成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iptables nat 技術(shù)筆記

運(yùn)維 系統(tǒng)運(yùn)維
iptables 是與最新的 2.6.x 版本Linux 內(nèi)核集成的 IP 信息包過濾系統(tǒng)。上篇為大家介紹了iptables的ftp連接,本文為大家整理一份筆記,是關(guān)于iptables nat的。

用了老久了的iptables,拿出來(lái)點(diǎn)心得寫出iptables nat筆記供大家參考!

  1.Java環(huán)境建立

  盡量使用/etc/profile做全局配置

  2.前置機(jī)中導(dǎo)入iptables時(shí),注意iptables版本問題。

  導(dǎo)入iptables后可以用service iptables save將配置自動(dòng)保存。

  修改/etc/sysctl.conf可以使ip_forward功能自動(dòng)打開。

  以上設(shè)置后,使用chkconfig將iptables服務(wù)選上,可以在默認(rèn)運(yùn)行級(jí)別下保證iptables的自動(dòng)運(yùn)行。

  3.使用redhat 8版本的ifup(即服務(wù)器切割腳本中的ifrouteup)可以在調(diào)整網(wǎng)卡時(shí)自動(dòng)修改默認(rèn)路由

  4.在IDC做服務(wù)器切割時(shí),盡量使用mac地址模擬

  操作命令ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff

  5.靜態(tài)路由添加方式

  /etc/sysconfig/network-scripts/routes-eth0

  192.168.0.0/16 via 10.10.0.22

  /etc/sysconfig/static-routes

  eth0 net 192.168.0.0 netmask 255.255.0.0 gw 10.10.0.22

  6.iptables做端口映射時(shí),如果映射的服務(wù)器默認(rèn)網(wǎng)關(guān)并非是前置機(jī)本身,則postrouting中SNAT必須指定為前置機(jī)內(nèi)網(wǎng)地址

  以電信機(jī)房為例,防火墻eth0 10.10.0.1 eth1 218.78.212.84

  Client A :10.10.0.33 默認(rèn)路由:10.10.0.1

  -A PREROUTING -d 218.78.212.84 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.10.0.33

  結(jié)果:除10.10.0.33不能連通外,都可以ssh,日志記錄為正確來(lái)源IP

  -A PREROUTING -d 218.78.212.84 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.10.0.33

  -A POSTROUTING -d 10.10.0.33 -p tcp -m tcp –dport 22 -j SNAT –to-source 218.78.212.84

  結(jié)果:包括10.10.0.33都可以ssh,但日志記錄為防火墻外網(wǎng)IP 218.78.212.84

  -A PREROUTING -d 218.78.212.84 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.10.0.33

  -A POSTROUTING -s 10.10.0.33 -p tcp -m tcp –dport 22 -j SNAT –to-source 218.78.212.84

  結(jié)果:包括10.10.0.33都可以ssh,且日志記錄為正確來(lái)源IP

  Clent B :10.10.0.138 默認(rèn)路由:10.10.0.241

  -A PREROUTING -d 218.78.212.84 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.10.0.33

  -A POSTROUTING -d 10.10.0.33 -p tcp -m tcp –dport 22 -j SNAT –to-source 10.10.0.1

  結(jié)果:只有此方式包括10.10.0.138可以ssh,但日志記錄為防火墻內(nèi)網(wǎng)IP 10.10.0.1

  7.修改/etc/inittab,將Ctrl+Alt+Del的組合鍵屏蔽,防止誤操作及杜絕安全隱患

  8.SSH只使用key驗(yàn)證方式

  9.使用/etc/hosts.allow及/etc/hosts.deny做IP地址訪問過濾

  以下腳本是通過log日志將非法連接的IP列入/etc/hosts.deny的黑名單

  # !/bin/bash

  # 為防止自身地址被列入黑名單,可以先將自身IP加入/etc/hosts.allow

  # 查找***20條日志中非法連接和嘗試連接失敗的IP地址

  tail -20 /var/log/secure|awk '$0~/Illegal|Failed/'|awk -Ffrom '{print $2}'|awk '{print $1}' >/tmp/badip

  # 讀取/etc/hosts.deny中有關(guān)sshd的地址定義

  list=`grep sshd /etc/hosts.deny`

  # 判斷日志中非法連接IP的連接數(shù)超過5時(shí)列入黑名單

  if [ "`wc -l /tmp/badip|awk '{print $1}'`" > "5" -a "`sort -u /tmp/badip|wc -l|awk '{print $1}'`" = "1" ]

  then

  blockip=`head -1 /tmp/badip`

  if [ `grep $blockip /etc/hosts.deny|wc -l|awk '{print $1}'` != 1 ]

  then

  echo "$list $blockip" >/etc/hosts.deny

  fi

  fi

#p#

  我們通過一個(gè)例子來(lái)大致理解一 下它是如何工作的。比如,我想通過Internet連接發(fā)布我們的網(wǎng)站,但是HTTP server在我們的內(nèi)網(wǎng)里,而 且我們對(duì)外只有一個(gè)合法的IP,就是防火墻那個(gè)對(duì)外的IP——$INET_IP。防火墻還 有一個(gè)內(nèi)網(wǎng)的IP——$LAN_IP,HTTP server的IP是$HTTP_IP (這當(dāng)然是內(nèi)網(wǎng)的了)。為了完成我們的設(shè)想,要做的***件事就是把下面的這個(gè)簡(jiǎn)單的規(guī)則加入到nat表 的PREROUTING鏈中:

  iptables -t nat -A PREROUTING –dst $INET_IP -p tcp –dport 80 -j DNAT \ –to-destination $HTTP_IP

  現(xiàn)在,所有從Internet來(lái)的、到防火墻的80端口去的包都會(huì)被轉(zhuǎn)發(fā)(或稱做被DNAT )到在內(nèi)網(wǎng)的HTTP服務(wù)器上。如果你在Internet上試驗(yàn)一下,一切正常吧。再?gòu)膬?nèi)網(wǎng)里試驗(yàn)一下,完全 不能用吧。這其實(shí)是路由的問題。下面我們來(lái)好好分析這個(gè)問題。為了容易閱讀,我們把在外網(wǎng)上訪問我們 服務(wù)器的那臺(tái)機(jī)子的IP地址記為$EXT_BOX。

  1.包從地址為$EXT_BOX的機(jī)子出發(fā),去往地址為$INET_IP 的機(jī)子。

  2.包到達(dá)防火墻。

  3.防火墻DNAT(也就是轉(zhuǎn)發(fā))這個(gè)包,而且包會(huì)經(jīng)過很多其他的鏈檢驗(yàn)及處理。

  4.包離開防火墻向$HTTP_IP前進(jìn)。

  5.包到達(dá)HTTP服務(wù)器,服務(wù)器就會(huì)通過防火墻給以回應(yīng),當(dāng)然,這要求把防火墻作為HTTP到達(dá)$EXT_BOX的網(wǎng)關(guān)。一般情況下,防火墻就是HTTP服務(wù)器的缺省網(wǎng)關(guān)。

  6.防火墻再對(duì)返回包做Un-DNAT(就是照著DNAT的步驟反過來(lái)做一遍),這樣就 好像是防火墻自己回復(fù)了那個(gè)來(lái)自外網(wǎng)的請(qǐng)求包。

  7.返回包好象沒經(jīng)過這么復(fù)雜的處理、沒事一樣回到$EXT_BOX。

  現(xiàn)在,我們來(lái)考慮和HTTP服務(wù)器在同一個(gè)內(nèi)網(wǎng)(這里是指所有機(jī)子不需要經(jīng)過路由器而可以直接互相訪 問的網(wǎng)絡(luò),不是那種把服務(wù)器和客戶機(jī)又分在不同子網(wǎng)的情況)的客戶訪問它時(shí)會(huì)發(fā)生什么。我們假設(shè)客戶 機(jī)的IP為$LAN_BOX,其他設(shè)置同上。

  1.包離開$LAN_BOX,去往$INET_IP。

  2.包到達(dá)防火墻。

  3.包被DNAT,而且還會(huì)經(jīng)過其他的處理。但是包沒有經(jīng)過SNAT 的處理,所以包還是使用它自己的源地址,就是$LAN_BOX(譯者注:這就是IP 傳輸包的特點(diǎn),只根據(jù)目的地的不同改變目的地址,但不因傳輸過程中要經(jīng)過很多路由器而隨著路由器改變 其源地址,除非你單獨(dú)進(jìn)行源地址的改變。其實(shí)這一步的處理和對(duì)外來(lái)包的處理是一樣的,只不過內(nèi)網(wǎng)包的 問題就在于此,所以這里交待一下原因)。

  4.包離開防火墻,到達(dá)HTTP服務(wù)器。

  5.HTTP服務(wù)器試圖回復(fù)這個(gè)包。它在路由數(shù)據(jù)庫(kù)中看到包是來(lái)自同一個(gè)網(wǎng)絡(luò)的一臺(tái)機(jī)子,因此它會(huì)把回 復(fù)包直接發(fā)送到請(qǐng)求包的源地址(現(xiàn)在是回復(fù)包的目的地址),也就是$LAN_BOX。

  6.回復(fù)包到達(dá)客戶機(jī),但它會(huì)很困惑,因?yàn)檫@個(gè)包不是來(lái)自它訪問的那臺(tái)機(jī)子。這樣,它就會(huì)把這個(gè)包 扔掉而去等待“真正”的回復(fù)包。

  針對(duì)這個(gè)問題有個(gè)簡(jiǎn)單的解決辦法,因?yàn)檫@些包都要進(jìn)入防火墻,而且它們都去往需要做DNAT才能到達(dá) 的那個(gè)地址,所以我們只要對(duì)這些包做SNAT操作即可。比如,我們來(lái)考慮上面的例子,如果對(duì)那些進(jìn)入防火 墻而且是去往地址為$HTTP_IP、端口為80的包做SNAT操作,那么這些包就好象是從$LAN_IP來(lái)的了,也就是 說(shuō),這些包的源地址被改為$LAN_IP了。這樣,HTTP服務(wù)器就會(huì)把回復(fù)包發(fā)給防火墻,而防火墻會(huì)再對(duì)包做 Un-DNAT操作,并把包發(fā)送到客戶機(jī)。解決問題的規(guī)則如下:

  iptables -t nat -A POSTROUTING -p tcp –dst $HTTP_IP –dport 80 -j SNAT \ –to-source $LAN_IP

  要記住,按運(yùn)行的順序POSTROUTING鏈?zhǔn)撬墟溨?**一個(gè),因此包到 達(dá)這條鏈時(shí),已經(jīng)被做過DNAT操作了,所以我們?cè)谝?guī)則里要基于內(nèi)網(wǎng)的地址$HTTP_IP(包的目的地)來(lái)匹配包。

  警告:我們剛才寫的這條規(guī)則會(huì)對(duì)日志產(chǎn)生很大影響,這種影響應(yīng)該說(shuō)是很不好的。因?yàn)閬?lái)自 Internet包在防火墻內(nèi)先后經(jīng)過了DNAT和SNAT處理,才能到達(dá)HTTP服務(wù)器(上面的例子),所以HTTP服務(wù)器 就認(rèn)為包是防火墻發(fā)來(lái)的,而不知道真正的源頭是其他的IP。這樣,當(dāng)它記錄服務(wù)情況時(shí),所有訪問記錄的 源地址都是防火墻的IP而不是真正的訪問源。我們?nèi)绻敫鶕?jù)這些記錄來(lái)了解訪問情況就不可能了。因此上 面提供的“簡(jiǎn)單辦法”并不是一個(gè)明智的選擇,但它確實(shí)可以解決“能夠訪問”的問題,只是沒有考慮到日 志而已。

  其他的服務(wù)也有類似的問題。比如,你在LAN內(nèi)建立了SMTP服務(wù)器,那你就要設(shè)置防火墻以便能轉(zhuǎn) 發(fā)SMTP的數(shù)據(jù)流。這樣你就創(chuàng)建了一個(gè)開放的SMTP中繼服務(wù)器,隨之而來(lái)的就是日志的問題了。

  一定要注意,這里所說(shuō)的問題只是針對(duì)沒有建立DMZ或類似結(jié)構(gòu)的網(wǎng)絡(luò),并且內(nèi)網(wǎng)的用戶訪問的是 服務(wù)器的外網(wǎng)地址而言的。(譯者注:因?yàn)槿绻⒘薉MZ,或者服務(wù)器和客戶機(jī)又被分在不同的子網(wǎng)里, 那就不需要這么麻煩了。因?yàn)樗性L問的源頭都不在服務(wù)器所在的網(wǎng)里,所以就沒必要做SNAT去改變包的源 地址了,從而記錄也就不是問題了。如果內(nèi)網(wǎng)客戶是直接訪問服務(wù)器的內(nèi)網(wǎng)地址那就更沒事了)

  較好的解決辦法是為你的LAN在內(nèi)網(wǎng)建立一臺(tái)單獨(dú)的DNS服務(wù)器(譯者注:這樣,內(nèi)網(wǎng)的客戶使用網(wǎng)站名 訪問HTTP服務(wù)器時(shí),DNS就可以把它解析成內(nèi)網(wǎng)地址。客戶機(jī)就可以直接去訪問HTTP服務(wù)器的內(nèi)網(wǎng)地址了, 從而避免了通過防火墻的操作,而且包的源地址也可以被HTTP服務(wù)器的日志使用,也就沒有上面說(shuō)的日志問 題了。),或者干脆建立DMZ得了(這是***的辦法,但你要有錢哦,因?yàn)橛玫脑O(shè)備多啊)。

  對(duì)上面的例子應(yīng)該考慮再全面些,現(xiàn)在還有一個(gè)問題沒解決,就是防火墻自己要訪問HTTP服務(wù)器時(shí)會(huì)發(fā) 生什么,能正常訪問嗎?你覺得呢:)很可惜,現(xiàn)在的配置還是不行,仔細(xì)想想就明白了。我們這里討論的基 礎(chǔ)都是假設(shè)機(jī)子訪問的是HTTP服務(wù)器的外網(wǎng)地址,但這個(gè)外網(wǎng)地址其實(shí)就是防火墻對(duì)外的地址,所以當(dāng)防火 墻訪問這個(gè)外網(wǎng)地址時(shí),就是訪問它自己。防火墻上如果有HTTP服務(wù),那客戶機(jī)就會(huì)看到頁(yè)面內(nèi)容,不過這 不是它想看到的(它想要的在DNAT上了),如果沒有HTTP服務(wù),客戶就只能收到錯(cuò) 誤信息了。前面給出的規(guī)則之所以不起作用是因?yàn)閺姆阑饓Πl(fā)出的請(qǐng)求包不會(huì)經(jīng)過那兩條鏈。還記得防火墻 自己發(fā)出的包經(jīng)過哪些鏈吧:)我們要在nat表的OUTPUT鏈中添加下面的規(guī)則:

  iptables -t nat -A OUTPUT –dst $INET_IP -p tcp –dport 80 -j DNAT \ –to-destination $HTTP_IP

  有了***這條規(guī)則,一切都正常了。和HTTP服務(wù)器不在同一個(gè)網(wǎng)的機(jī)子能正常訪問服務(wù)了,和它在一個(gè) 網(wǎng)內(nèi)的機(jī)子也可以正常訪問服務(wù)了,防火墻本身也能正常訪問服務(wù)了,沒有什么問題了。這種心情,套用 《大話西游》里的一句話,就是“世界又清凈了”。(不要說(shuō)你不知道什么是《大話西游》)

  我想大家應(yīng)該能明白這些規(guī)則只說(shuō)明了數(shù)據(jù)包是如何恰當(dāng)?shù)乇籇NAT和SNAT的。除此之外,在 filter表中還需要其他的規(guī)則(在FORWARD鏈里),以允許特定的包也能經(jīng)過前面寫的(在POSTROUTING鏈和 OUTPUT鏈里的)規(guī)則。千萬(wàn)不要忘了,那些包在到達(dá)FORWARD鏈之前已經(jīng)在PREROUTING鏈里被DNAT過了,也 就是說(shuō)它們的目的地址已被改寫,在寫規(guī)則時(shí)要注意這一點(diǎn)。

通過文章的介紹,相信大家都學(xué)會(huì)了iptables nat的建立和應(yīng)用,希望本文對(duì)大家有幫助!

【編輯推薦】

 

責(zé)任編輯:趙鵬 來(lái)源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-03-15 16:26:46

iptablesnat

2011-03-16 09:05:34

iptablesnat

2011-03-16 10:59:57

2011-03-15 14:26:23

iptablesNAT

2011-03-15 09:10:47

iptablesNAT

2011-03-17 15:44:21

2011-03-17 13:55:23

iptablesNAT端口映射

2011-03-16 09:05:29

iptablesNAT

2011-03-16 09:05:32

RedhatiptablesNAT

2011-03-16 09:05:33

2011-03-16 09:05:53

NATiptables

2011-03-17 13:28:49

iptables na

2011-03-17 16:43:49

2011-03-15 16:19:08

iptables

2011-03-17 17:40:52

iptables配置

2011-04-13 15:01:39

2025-04-09 11:00:00

NAT網(wǎng)絡(luò)網(wǎng)絡(luò)地址轉(zhuǎn)換

2011-04-13 15:03:22

NATlP

2011-04-13 14:53:32

2011-04-13 15:03:25

NATlP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩视频在线免费观看 | 欧美一区二区三区的 | 国产成人免费视频网站高清观看视频 | 色综合桃花网 | 欧美精品中文字幕久久二区 | 国产激情毛片 | 午夜影院在线观看视频 | 中文字幕免费 | 亚洲精品久久久久久一区二区 | 特级黄一级播放 | 91成人在线 | www.成人久久 | 91在线一区 | 91豆花视频 | av在线免费网| 成人午夜视频在线观看 | 伊人春色成人网 | 视频1区2区| 中日韩欧美一级片 | 日本亚洲精品 | 欧美成人精品一区二区男人看 | 日韩欧美一区二区三区免费观看 | 久久久久久久久久久爱 | 99爱视频| 精品精品视频 | 天堂av在线影院 | 欧美日韩网站 | 99精品免费久久久久久日本 | 国产精品伦理一区 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品美女久久久 | 亚洲视频在线观看 | 精品欧美一区二区久久久伦 | 亚洲一区视频在线 | 亚洲国产欧美一区二区三区久久 | 欧美午夜精品理论片a级按摩 | 韩国久久精品 | 一区二区三区亚洲精品国 | 免费在线观看黄网站 | 亚洲精品一区中文字幕乱码 | 国产女人与拘做视频免费 |