【正文】
T鏈中刪除內(nèi)容為“ s –j DROP”的規(guī)則。 命令形式: P 鏈名 動(dòng)作 iptables –t filter –P INPUT REJECT 當(dāng)數(shù)據(jù)包沒(méi)有被鏈的所有規(guī)則匹配時(shí),則按鏈的默認(rèn)規(guī)則處理。 F:清空指定表里的所有規(guī)則。 iptables –F 【例 7】清空 nat表里 POSTROUTING鏈里的所有規(guī)則。 命令形式: R 鏈名 規(guī)則號(hào)碼 規(guī)則內(nèi)容 Iptables的狀態(tài)機(jī)制 iptables共有四種狀態(tài),分別被稱為 NEW、 ESTABLISHED、INVALID、 RELATED,這四種狀態(tài)對(duì)于 TCP、 UDP、 ICMP三種協(xié)議均有效。 ESTABLISHED:已經(jīng)注意到兩個(gè)方向上的數(shù)據(jù)傳輸,而且會(huì)繼續(xù)匹配這個(gè)連接的包。一個(gè)連接要從 NEW變?yōu)?ESTABLISHED,只需要接到應(yīng)答包即可,不管這個(gè)包是發(fā)往防火墻的,還是要由防火墻轉(zhuǎn)發(fā)的。 RELATED:當(dāng)一個(gè)連接和某個(gè)已處于 ESTABLISHED狀態(tài)的連接有關(guān)系時(shí),就被認(rèn)為是 RELATED的了。這個(gè) ESTABLISHED連接再產(chǎn)生一個(gè)主連接之外的連接,這個(gè)新的連接就是 RELATED的。有幾個(gè)原因可以產(chǎn)生這種情況,比如內(nèi)存溢出、收到不知屬于哪個(gè)連接的 ICMP錯(cuò)誤信息等。 Netfilter可以根據(jù)連接的狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾,這是一個(gè)非常好的特性。 目標(biāo): ACCEPT 或 DROP 需要提前準(zhǔn)備好如下參數(shù): ? 服務(wù)協(xié)議 (TCP/UDP) ? 對(duì)外服務(wù)的端口 ? 內(nèi)部服務(wù)的私網(wǎng) IP ? 內(nèi)部服務(wù)的服務(wù)端口 【例 29】從 ppp0接口進(jìn)來(lái)的、目標(biāo)端口是 80的數(shù)據(jù)包,將其目的地址修改為內(nèi)部服務(wù)器的私網(wǎng) IP iptables –t nat –A PREROUTING I ppp0 –p tcp –dport 80 –j DNAT –to 【例 30】從 ppp0接口進(jìn)來(lái)的、目標(biāo)端口是 90的數(shù)據(jù)包,將其目的地址修改為內(nèi)部 FTP服務(wù)器的私網(wǎng) IP :21 iptables –t nat –A PREROUTING I ppp0 –p tcp –dport 90 –j DNAT –to :21 【例 31】有若干臺(tái)計(jì)算機(jī)共享一個(gè) Inter 連接時(shí),就能用到nat,而且這也是絕大多數(shù)企業(yè)用戶所采用的 Inter互聯(lián)方案。 SNAT target的作用就是讓所有從本地網(wǎng)出發(fā)的包看起來(lái)都是從一臺(tái)機(jī)子發(fā)出的。 Linux核心默認(rèn)情況是不轉(zhuǎn)發(fā)包的,即轉(zhuǎn)發(fā)標(biāo)志默認(rèn)是“ 0”,要打開(kāi)核心包轉(zhuǎn)發(fā)功能,就需要把該標(biāo)志置為“ 1”,有以下幾種方法: ( 1)修改 /etc/: Controls IP Packets Forwarding = 1 // 取值為 0表示不轉(zhuǎn)發(fā) ( 2) echo “ 1” /proc/sys//ipv4/ip_forward ( 3) sysctl p /etc/ 第( 2)種方式修改后,只要重新啟動(dòng),修改的狀態(tài)就丟失了,可以把這句化加入 /etc/,每次隨系統(tǒng)自動(dòng)設(shè)置。 R e d h a t L i n u x N a t S e r v e rI n t e r n e tP r i v a t e N e t w o r ke t h 0e t h 12 1 1 . 8 4 . 1 5 0 . 1 4 21 9 2 . 1 6 8 . 1 . 1圖 113 私有網(wǎng)絡(luò) Nat地址轉(zhuǎn)換 【例 32】在上例中進(jìn)行 SNAT的配置時(shí)需要指明一個(gè)固定的映射地址,但如果用戶的網(wǎng)絡(luò)使用的是 ADSL這種動(dòng)態(tài)獲取 IP地址的方式, SNAT就不適用了,這時(shí)只能使用 MASQUERADE(地址偽裝),在具體的處理過(guò)程中,系統(tǒng)需要讀取當(dāng)前的動(dòng)態(tài)地址,然后用當(dāng)前的地址對(duì)數(shù)據(jù)包進(jìn)行重新封裝: # iptables –A POSTROUTING –o eth0 –s –j MASQUERADE 或者 # iptables –A POSTROUTING –o eth0–s –j MASQUERADE toports 202365535 參數(shù) toports指定了映射后的源端口范圍。 R e d h a t L i n u x N a t S e r v e rI n t e r n e tP r i v a t e N e t w o r k1 9 2 . 1 6 8 . 1 . 0 / 2 4e t h 0e t h 1A D S L p p p 01 9 2 . 1 6 8 . 1 . 1圖 114 撥號(hào)上網(wǎng)動(dòng)態(tài) Nat轉(zhuǎn)換 IP6tables Netfilter支持 IPv6協(xié)議,在做各項(xiàng)設(shè)置時(shí),只要把 IPv4下的 IPtables命令替換成為 IP6tables即可。 ip6tables –A INPUT – i etho –p tcp –s 2023::1 –dport 22 –j ACCEPT IP6tables并不支持 nat表,無(wú)法進(jìn)行 IPv6的網(wǎng)絡(luò)地址翻譯,比如偽裝和端口轉(zhuǎn)發(fā)等。 可以使用腳本 /etc/sysconfig/ip6tableconfig來(lái)初始化IP6table。如果系統(tǒng)沒(méi)有安裝,則用戶可自行下載安裝。是依靠 ISP( Inter服務(wù)提供商)和其它NSP(網(wǎng)絡(luò)服務(wù)提供商),在公用網(wǎng)絡(luò)中建立專用的數(shù)據(jù)通信網(wǎng)絡(luò)的技術(shù)。 目前電信部門(mén)租用的幀中繼( Frame Relay)與 ATM等數(shù)據(jù)網(wǎng)絡(luò)提供固定虛擬線路( PVCPermanent Virtual