成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Iptables模塊研究報告

Iptables 模塊使用指南1. 前言................................................................................

Iptables 模塊使用指南

1. 前言.............................................................................................................................................. 2

1.1 關(guān)于本文檔 . ....................................................................................................................... 2

1.2 背景知識 . ........................................................................................................................... 2

1.3 術(shù)語 . ................................................................................................................................... 2

2. Iptables模塊介紹 ......................................................................................................................... 3

3. Iptables編譯及安裝 ..................................................................................................................... 4

3.1 關(guān)于編譯 . ........................................................................................................................... 4

3.2 關(guān)于安裝 . ........................................................................................................................... 5

3.3 內(nèi)核支持 . ........................................................................................................................... 6

3.4 文件大小 . ........................................................................................................................... 6

4. 關(guān)于數(shù)據(jù)報文 . ............................................................................................................................. 6

4.1 數(shù)據(jù)報文流程介紹 . ........................................................................................................... 6

4.2 數(shù)據(jù)報文的狀態(tài)介紹 . ..................................................................................................... 10

5. Iptables程序使用 ....................................................................................................................... 11

5.1 關(guān)于iptables 程序 ........................................................................................................... 11

5.2 命令參數(shù)說明 . ................................................................................................................. 12

5.3 iptables程序使用實例 ..................................................................................................... 27

6. iptables模塊使用場景 ............................................................................................................... 30

,

1. 前言

1.1 關(guān)于本文檔

本文檔描述Iptables 模塊的使用,對iptables 命令進行了詳細(xì)的說明。

1.2 背景知識

網(wǎng)絡(luò)攻擊正在日益得勢,防火墻技術(shù)因此得到廣泛運用。防火墻能控制不同網(wǎng)絡(luò)或網(wǎng)絡(luò)安全域之間信息的出入口,通過監(jiān)測、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能地對外部屏蔽網(wǎng)絡(luò)內(nèi)部的信息、結(jié)構(gòu)和運行狀況,有選擇地接受外部訪問,對內(nèi)部強化設(shè)備監(jiān)管、控制對服務(wù)器與外部網(wǎng)絡(luò)的訪問,在被保護網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間加起一道屏障,以防止發(fā)生不可預(yù)測的、潛在的破壞性侵入。

在Linux 操作系統(tǒng)上,netfilter/iptables 作為最新的防火墻技術(shù),提供了一個有效的手段來控制誰可以并如何通過網(wǎng)絡(luò)連接到Linux 系統(tǒng),自然iptables 成為最新的管理內(nèi)核包過濾的工具,可以添加、修改或刪除包過濾表格中的規(guī)則。

從Linux 內(nèi)核2.0.x 中ipfwadm 到內(nèi)核2.2.x 中的ipchains ,再衍變成2.4.x/2.6.x的iptables , 2.4.x/2.6.x內(nèi)核中的iptables 并不是2.2內(nèi)核的簡單增強,而是一次完全的重新實現(xiàn),內(nèi)核提供的防火墻軟件包在結(jié)構(gòu)上發(fā)生了非常大的變化。

2.4.x/2.6.x內(nèi)核提供了更好的靈活性和可擴展性。

1.3 術(shù)語

NAT :Network Address Translation 網(wǎng)絡(luò)地址轉(zhuǎn)換,是將IP 數(shù)據(jù)報報頭中的IP 地址轉(zhuǎn)換為另一個IP 地址的過程。

DNAT :Destination Network Address Translation 目的網(wǎng)絡(luò)地址轉(zhuǎn)換。 DNAT 是一種改變數(shù)據(jù)包目的 ip 地址的技術(shù),經(jīng)常和SNAT 聯(lián)用,以使多臺服務(wù)器能共享一個ip 地址連入Internet ,并且繼續(xù)服務(wù)。通過對同一個ip 地址分配不同的

,

端口,來決定數(shù)據(jù)的流向。

SNAT :Source Network Address Translation 源網(wǎng)絡(luò)地址轉(zhuǎn)換。這是一種改變數(shù)據(jù)包源ip 地址的技術(shù),經(jīng)常用來使多臺計算機分享一個Internet 地址。

DNS :Domain Name System計算機域名系統(tǒng),它是由解析器和域名服務(wù)器組成的,是保存有該網(wǎng)絡(luò)中所有主機的域名和對應(yīng)IP 地址,并將域名轉(zhuǎn)換為IP 地址功能的服務(wù)器。

2. Iptables模塊介紹

Netfilter/iptables模塊是一種功能強大的IP 信息包過濾系統(tǒng),可用于添加、編輯和刪除規(guī)則,這些規(guī)則是在做信息包過濾決定時,防火墻所遵循和組成的規(guī)則。這些規(guī)則存儲在專用的信息包過濾表(如Filter 、Nat )中,而這些表集成在 Linux 內(nèi)核中。在信息包過濾表中,規(guī)則被分組放在我們所謂的鏈(chain )中。

雖然 netfilter/iptables IP 信息包過濾系統(tǒng)被稱為單個實體,但它實際上由兩個組件netfilter 和 iptables 組成。

netfilter 組件也稱為內(nèi)核空間(kernelspace ),是內(nèi)核的一部分,由一些信息包過濾表組成,這些表包含內(nèi)核用來控制信息包過濾處理的規(guī)則集。 iptables 組件是一種工具,也稱為用戶空間(userspace ),它使插入、修改和除去信息包過濾表中的規(guī)則變得容易。

iptables 模塊是用于Firewall 的一種強大的工具,防火墻的典型環(huán)境如下圖所示:

,

iptables 由Netfilter 項目開發(fā),維護網(wǎng)站為。

3. Iptables編譯及安裝

以下是針對iptables 1.4.3的版本進行說明。

3.1 關(guān)于編譯

從官網(wǎng)(www.netfilter.org )下載開源代碼壓縮包iptables-1.4.3.tar.bz2,該版 本可以支持2.6.29的內(nèi)核。

i. 解壓縮文件:

tar –xvjf iptables-1.4.3.tar.bz2

ii. 配置編譯安裝環(huán)境:

cd iptables-1.4.3,

./configure CC=指定交叉編譯工具鏈 --host=指定交叉編譯平臺 --prefix=指定安裝文件路徑

這里所有的路徑都只能是絕對路徑。

iii. 編譯:

make

編譯生成的可執(zhí)行文件為iptables ,位于iptables-1.4.3/.libs;

庫文件有以下兩類:

必選的:libiptc/.libs/libiptc.so.0和.libs/libxtables.so.1;

可選的:位置iptables-1.4.3/extensions,

libipt_DNAT.so libipt_icmp.so

,

libipt_LOG.so libipt_MIRROR.so libipt_REDIRECT.so libipt_SNAT.so libipt_TTL.so

libxt_hashlimit.so libxt_length.so libxt_mac.so libxt_standard.so libxt_statistic.so libxt_TCPMSS.so libxt_tos.so libxt_udp.so

libipt_MASQUERADE.so

libipt_NETMAP.so libipt_REJECT.so libipt_ttl.so libxt_iprange.so libxt_limit.so libxt_multiport.so libxt_state.so libxt_string.so libxt_tcp.so libxt_TOS.so … …

3.2 關(guān)于安裝

修改Makefile ,拷貝可執(zhí)行文件iptables 及相應(yīng)的庫文件。

由于開發(fā)板空間有限,我們沒有必要把所有的庫文件都移植到開發(fā)板上,根 據(jù)需要將所需的庫文件拷貝到開發(fā)板的/lib目錄下。

Makefile 做如下修改,在執(zhí)行make install時,自動執(zhí)行cp 命令。

install: cp .libs/iptables ../../target/usr/sbin/iptables

cp .libs/libxtables.so.1 ../../target/lib/ cp libiptc/.libs/libiptc.so.0 ../../target/lib/ cp extensions/libxt_standard.so ../../target/lib/ cp extensions/libxt_state.so ../../target/lib/ cp extensions/libxt_statistic.so ../../target/lib/ cp extensions/libxt_string.so ../../target/lib/ cp extensions/libxt_tcp.so ../../target/lib/ cp extensions/libxt_udp.so ../../target/lib/ cp extensions/libxt_multiport.so ../../target/lib/ cp extensions/libxt_tos.so ../../target/lib/ cp extensions/libxt_TOS.so ../../target/lib/ cp extensions/libipt_icmp.so ../../target/lib/ cp extensions/libipt_DNAT.so ../../target/lib/ cp extensions/libipt_SNAT.so ../../target/lib/ cp extensions/libipt_LOG.so ../../target/lib/ cp extensions/libipt_MASQUERADE.so ../../target/lib/ cp extensions/libipt_REJECT.so ../../target/lib/ cp extensions/libipt_TTL.so ../../target/lib/ cp extensions/libipt_ttl.so ../../target/lib/ cp extensions/libxt_iprange.so ../../target/lib/ cp extensions/libxt_mac.so ../../target/lib/

,

cp extensions/libxt_limit.so ../../target/lib/ cp extensions/libxt_TCPMSS.so ../../target/lib/ cp extensions/libipt_REDIRECT.so ../../target/lib/ cp extensions/libxt_hashlimit.so ../../target/lib/

3.3 內(nèi)核支持

為了正常運行iptables ,需要在內(nèi)核中打開相應(yīng)配置。用make menuconfig或其他命令,打開以下一些選項。

注:[*]<*>為選中支持該模塊,[ ]< >為不選中。

[*] Network packet filtering framework (Netfilter) --->

… …

<*> Netfilter Xtables support (required for ip_tables)

<*> IP tables support (required for filtering/masq/NAT)

<*> IP range match support

<*> Mac match support

… …

根據(jù)3.2移植的庫文件,在內(nèi)核配置過程中,打開支持相應(yīng)的模塊,iptables 才能正常使用。

3.4 文件大小

在mipsel 平臺上可執(zhí)行文件iptables 的大小為70515字節(jié),

移植到mipsel 平臺上的庫文件大小為576kB 。

4. 關(guān)于數(shù)據(jù)報文

4.1 數(shù)據(jù)報文流程介紹

首先我們看下數(shù)據(jù)報文是怎樣穿越內(nèi)核的中Netfilter 組件的:當(dāng)數(shù)據(jù)報文到達內(nèi)核時,如果MAC 地址符合,就會由內(nèi)核里相應(yīng)的驅(qū)動程序接收,然后會經(jīng)過路由操作,從而決定是發(fā)送給本地的程序,還是轉(zhuǎn)發(fā)給其他機子。Netfilter 在內(nèi)核有五個掛載點:NF_IP_PRE_ROUTING、NF_IP_IN_PUT、

,

NF_IP_FORWARD、NF_IP_OUT_PUT、NF_IP_POST_ROUTING ,這5個hook 點分別對應(yīng)系統(tǒng)中默認(rèn)的5個鏈PREROUING 、INPUT 、FORWARD 、OUTPUT 、POSTROUTING ,iptables 依賴于這5個鏈進行操作。如下圖所示:

然后我們討論下數(shù)據(jù)報文是以什么順序以及如何穿越這些鏈的。我們先來看一個以本地為目的的報文,它要經(jīng)過以下步驟才能到達要接收它的程序: 表4-1. 以本地為目標(biāo)的報文

,

現(xiàn)在我們來看看源地址是本地機器的報文要經(jīng)過哪些步驟: 表4-2. 以本地為源的報文

,

我們假設(shè)一個報文的目的地址是另一個網(wǎng)絡(luò)中的一臺機子。讓我們來看看這個報文的旅程:

表4-3. 被轉(zhuǎn)發(fā)的報文

綜上所述,我們可以歸納數(shù)據(jù)報文的流程如下圖:

,

注意,所有的報文都會經(jīng)過上圖中的某一條路徑,不管你是否把它DROP 或者ACCEPT 。如果你把報文DNAT 回它原來的網(wǎng)絡(luò),它一樣會走完相應(yīng)路徑上剩余的鏈。

4.2 數(shù)據(jù)報文的狀態(tài)介紹

報文的狀態(tài)依據(jù)協(xié)議的不同而不同,但在內(nèi)核外部,也就是用戶空間里,只有5種狀態(tài):NEW ,ESTABLISHED ,RELATED ,INV ALID 和UNTRACKED 。它們主要是和狀態(tài)匹配(-m state)一起使用。下面就簡要地介紹以下這幾種狀態(tài):

標(biāo)簽: