18禁网站免费,成年人黄色视频网站,熟妇高潮一区二区在线播放,国产精品高潮呻吟AV

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 防火墻知識 > 構(gòu)筑Linux防火墻之IPtables的概念與用法

構(gòu)筑Linux防火墻之IPtables的概念與用法

時(shí)間: 林澤1002 分享

構(gòu)筑Linux防火墻之IPtables的概念與用法

  防火墻典型的設(shè)置是有兩個(gè)網(wǎng)卡,一個(gè)流入,一個(gè)流出。iptables讀取流入和流出的數(shù)據(jù)包的報(bào)頭,然后將它們與規(guī)劃集(ruleset)相比較,然后將可接受的數(shù)據(jù)包從一個(gè)網(wǎng)卡轉(zhuǎn)發(fā)至另外一個(gè)網(wǎng)卡。下面是學(xué)習(xí)啦小編跟大家分享的是構(gòu)筑Linux防火墻之IPtables的概念與用法,歡迎大家來閱讀學(xué)習(xí)。

  構(gòu)筑Linux防火墻之IPtables的概念與用法

  防火墻典型的設(shè)置是有兩個(gè)網(wǎng)卡,一個(gè)流入,一個(gè)流出。iptables讀取流入和流出的數(shù)據(jù)包的報(bào)頭,然后將它們與規(guī)劃集(ruleset)相比較,然后將可接受的數(shù)據(jù)包從一個(gè)網(wǎng)卡轉(zhuǎn)發(fā)至另外一個(gè)網(wǎng)卡。對于被拒絕的數(shù)據(jù)包,可以被丟棄或者按照你所定義的方式來處理。

  通過向防火墻提供有關(guān)對來自某個(gè)源、到某個(gè)目的地或具有特定協(xié)議類型的信息包要做些什么的指令的規(guī)則,控制信息包的過濾。通過使用iptables系統(tǒng)提供的特殊命令 iptables,建立這些規(guī)則,并將其添加到內(nèi)核空間的特定信息包過濾表內(nèi)的鏈中。關(guān)于添加、除去、編輯規(guī)則的命令的一般語法如下:

  iptables [-t table] command [match] [target]

  現(xiàn)實(shí)中,為了易讀,我們一般都用這種語法。大部分規(guī)則都是按這種語法寫的,因此,如果看到別人寫的規(guī)則,你很可能會(huì)發(fā)現(xiàn)用的也是這種語法。

  如果不想用標(biāo)準(zhǔn)的表,就要在[table]處指定表名。一般情況下沒有必要指定使用的表,因?yàn)閕ptables 默認(rèn)使用filter表來執(zhí)行所有的命令。也沒有必要非得在這里指定表名,實(shí)際上幾乎可在規(guī)則的任何地方指定表名。當(dāng)然,把表名放在開始處已經(jīng)是約定俗成的標(biāo)準(zhǔn)。盡管命令總是放在開頭,或者是直接放在表名后面,我們也要考慮到底放在哪兒易讀。

  “command”告訴程序該做什么,比如:插入一個(gè)規(guī)則,還是在鏈的末尾增加一個(gè)規(guī)則,還是刪除一個(gè)規(guī)則。下面會(huì)仔細(xì)地介紹。

  “match”細(xì)致地描述了包的某個(gè)特點(diǎn),以使這個(gè)包區(qū)別于其它所有的包。在這里,我們可以指定包的來源IP 地址、網(wǎng)絡(luò)接口、端口、協(xié)議類型,或者其他什么。下面我們將會(huì)看到許多不同的match。

  最后是數(shù)據(jù)包的目標(biāo)所在“target”。若數(shù)據(jù)包符合所有的match,內(nèi)核就用target來處理它,或者說把包發(fā)往target。比如,我們可以讓內(nèi)核把包發(fā)送到當(dāng)前表中的其他鏈(可能是我們自己建立的),或者只是丟棄這個(gè)包而不做任何處理,或者向發(fā)送者返回某個(gè)特殊的應(yīng)答。下面我們來逐個(gè)討論這些選項(xiàng):

  表(table)

  [-t table]選項(xiàng)允許使用標(biāo)準(zhǔn)表之外的任何表。表是包含僅處理特定類型信息包的規(guī)則和鏈的信息包過濾表。有三種可用的表選項(xiàng):filter、nat 和 mangle。該選項(xiàng)不是必需的,如果未指定,則filter用作缺省表。下面介紹各表實(shí)現(xiàn)的功能。

  filter

  filter 表用來過濾數(shù)據(jù)包,我們可以在任何時(shí)候匹配包并過濾它們。我們就是在這里根據(jù)包的內(nèi)容對包做DROP或ACCEPT的。當(dāng)然,我們也可以預(yù)先在其他地方做些過濾,但是這個(gè)表才是設(shè)計(jì)用來過濾的。幾乎所有的target都可以在這兒使用。

  nat

  nat表的主要用處是網(wǎng)絡(luò)地址轉(zhuǎn)換,即Network Address Translation,縮寫為NAT。做過NAT操作的數(shù)據(jù)包的地址就被改變了,當(dāng)然這種改變是根據(jù)我們的規(guī)則進(jìn)行的。屬于一個(gè)流的包只會(huì)經(jīng)過這個(gè)表一次。

  如果第一個(gè)包被允許做NAT或Masqueraded,那么余下的包都會(huì)自動(dòng)地被做相同的操作。也就是說,余下的包不會(huì)再通過這個(gè)表,一個(gè)一個(gè)的被NAT,而是自動(dòng)地完成。這就是我們?yōu)槭裁床粦?yīng)該在這個(gè)表中做任何過濾的主要原因。PREROUTING 鏈的作用是在包剛剛到達(dá)防火墻時(shí)改變它的目的地址,如果需要的話。OUTPUT鏈改變本地產(chǎn)生的包的目的地址。

  POSTROUTING鏈在包就要離開防火墻之前改變其源地址此表僅用于NAT,也就是轉(zhuǎn)換包的源或目標(biāo)地址。注意,只有流的第一個(gè)包會(huì)被這個(gè)鏈匹配,其后的包會(huì)自動(dòng)被做相同的處理。實(shí)際的操作分為以下幾類:

  ◆ DNAT

  ◆ SNAT

  ◆ MASQUERADE

  DNAT操作主要用在這樣一種情況,你有一個(gè)合法的IP地址,要把對防火墻的訪問 重定向到其他的機(jī)子上(比如DMZ)。也就是說,我們改變的是目的地址,以使包能重路由到某臺主機(jī)。

  SNAT改變包的源地址,這在極大程度上可以隱藏你的本地網(wǎng)絡(luò)或者DMZ等。一個(gè)很好的例子是我們知道防火墻的外部地址,但必須用這個(gè)地址替換本地網(wǎng)絡(luò)地址。有了這個(gè)操作,防火墻就 能自動(dòng)地對包做SNAT和De-SNAT(就是反向的SNAT),以使LAN能連接到Internet。

  如果使用類似 192.168.0.0/24這樣的地址,是不會(huì)從Internet得到任何回應(yīng)的。因?yàn)镮ANA定義這些網(wǎng)絡(luò)(還有其他的)為私有的,只能用于LAN內(nèi)部。

  MASQUERADE的作用和MASQUERADE完全一樣,只是計(jì)算機(jī) 的負(fù)荷稍微多一點(diǎn)。因?yàn)閷γ總€(gè)匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址是配置好的。當(dāng)然,這也有好處,就是我們可以使用通過PPP、 PPPOE、SLIP等撥號得到的地址,這些地址可是由ISP的DHCP隨機(jī)分配的。

  Mangle

  這個(gè)表主要用來mangle數(shù)據(jù)包。我們可以改變不同的包及包頭的內(nèi)容,比如 TTL,TOS或MARK。 注意MARK并沒有真正地改動(dòng)數(shù)據(jù)包,它只是在內(nèi)核空間為包設(shè)了一個(gè)標(biāo)記。防火墻內(nèi)的其他的規(guī)則或程序(如tc)可以使用這種標(biāo)記對包進(jìn)行過濾或高級路由。這個(gè)表有五個(gè)內(nèi)建的鏈: PREROUTING,POSTROUTING, OUTPUT,INPUT和 FORWARD。

  PREROUTING在包進(jìn)入防火墻之后、路由判斷之前改變包,POSTROUTING是在所有路由判斷之后。 OUTPUT在確定包的目的之前更改數(shù)據(jù)包。INPUT在包被路由到本地之后,但在用戶空間的程序看到它之前改變包。注意,mangle表不能做任何NAT,它只是改變數(shù)據(jù)包的TTL,TOS或MARK,而不是其源目的地址。NAT是在nat表中操作的,以下是mangle表中僅有的幾種操作:

  ◆ TOS

  ◆ TTL

  ◆ MARK

  TOS操作用來設(shè)置或改變數(shù)據(jù)包的服務(wù)類型域。這常用來設(shè)置網(wǎng)絡(luò)上的數(shù)據(jù)包如何被路由等策略。 注意這個(gè)操作并不完善,有時(shí)得不所愿。它在Internet上還不能使用,而且很多路由器不會(huì)注意到這個(gè)域值。換句話說,不要設(shè)置發(fā)往Internet的包,除非你打算依靠TOS來路由,比如用iproute2。

  TTL操作用來改變數(shù)據(jù)包的生存時(shí)間域,我們可以讓所有數(shù)據(jù)包只有一個(gè)特殊的TTL。它的存在有一個(gè)很好的理由,那就是我們可以欺騙一些ISP。為什么要欺騙他們呢?因?yàn)樗麄儾辉敢庾屛覀児蚕?一個(gè)連接。

  那些ISP會(huì)查找一臺單獨(dú)的計(jì)算機(jī)是否使用不同的TTL,并且以此作為判斷連接是否被共享的標(biāo)志。

  MARK用來給包設(shè)置特殊的標(biāo)記。iproute2能識別這些標(biāo)記,并根據(jù)不同的標(biāo)記(或沒有標(biāo)記) 決定不同的路由。用這些標(biāo)記我們可以做帶寬限制和基于請求的分類。

2672958