iptables總結(jié)

iptables:位于/sbin/iptables,是用來(lái)管理防火墻的命令工具

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了郟縣免費(fèi)建站歡迎大家使用!

      包過(guò)濾防火墻,工作在網(wǎng)絡(luò)層。

一.規(guī)則鏈:規(guī)則鏈?zhǔn)欠阑饓σ?guī)則/策略的集合

INPUT:處理入站數(shù)據(jù)包

OUTPUT:處理出站數(shù)據(jù)包

FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包

POSTROUTING鏈:在進(jìn)行路由選擇后處理數(shù)據(jù)包

PREROUTING鏈:在進(jìn)行路由選擇前處理數(shù)據(jù)包

二.規(guī)則表:規(guī)則表是規(guī)則鏈的集合(優(yōu)先順序:raw、mangle、nat、filter)

raw表:確定是否對(duì)該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤(OUTPUT、PREROUTING)

mangle表:為數(shù)據(jù)包設(shè)置標(biāo)記(PREROUNTING、POSTROUTING、INPUT、OUPUT、FORWARD)

nat表:修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口(PREROUTING、POSTROUTIN、OUTPUT)

filter表:確定是否放行該數(shù)據(jù)包(過(guò)濾)(INPUT FOREARD、OUTPUT)

規(guī)則鏈間的匹配順序

入站數(shù)據(jù):PREROUTING、INPUT

出站數(shù)據(jù):OUTPUT、POSTROUTING

轉(zhuǎn)發(fā)數(shù)據(jù):PREROUTING、FORWARD、POSTROUTING


三iptables命令的語(yǔ)法格式

iptables[-t 表名] 管理選項(xiàng) [鏈名] [條件匹配] [-j 目標(biāo)動(dòng)作或跳轉(zhuǎn)]

注意:不指定表名時(shí),默認(rèn)表示filter表

不指定鏈名時(shí),默認(rèn)表示該表內(nèi)所有鏈

除非設(shè)置規(guī)則鏈的缺省策略,否則需要指定匹配條件

四.命令選項(xiàng)

-A:在指定鏈的末尾添加(--apped)一條新的規(guī)則(注意與-I的插入位置區(qū)別)

-D:刪除(--delete)指定鏈中的某一條規(guī)則,按規(guī)則序號(hào)或內(nèi)容確定要?jiǎng)h除的規(guī)則

-I:在指定鏈中插入(--insert)一條新的規(guī)則,若未指定插入位置,則默認(rèn)在鏈的開(kāi)頭插入

-R:修改、替換(--replace)指定鏈的某一條規(guī)則,按規(guī)則序號(hào)或內(nèi)容確定要替換的規(guī)則

-L:列出(--list)指定鏈中所有的規(guī)則進(jìn)行查看,若未指定鏈名,則列出表中所有鏈的內(nèi)容

-F:清空(--flush)指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中的所有鏈的內(nèi)容

-N:新建(--new-chain)一條用戶(hù)自己定義的規(guī)則鏈

-X:刪除指定表中用戶(hù)自定義的規(guī)則鏈

-P:設(shè)置指定鏈的默認(rèn)策略(--policy)

-n:使用數(shù)字形式(--numeric)顯示輸出結(jié)果

-v:查看規(guī)則列表時(shí)顯示詳細(xì)(--verbose)的信息

-V:查看iptables命令工具的版本(--version)信息

-h:查看命令幫助信息(--help)

--line-numbers:查看規(guī)則表時(shí),同時(shí)顯示規(guī)則在鏈中的順序號(hào)

五.通用(general)條件匹配

可直接使用,不依賴(lài)于其他的條件或擴(kuò)展模塊

包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等匹配方式

1.協(xié)議匹配

使用“-p協(xié)議名”的形式

協(xié)議名可使用在“/etc/protocols”文件中定義的名稱(chēng)

常用的協(xié)議包括tcp、udp、icmp等

例:拒絕進(jìn)入防火墻的所有icmp協(xié)議的數(shù)據(jù)包

iptables -I INPUT -p icmp -j REJECT

2.地址匹配

使用“-s源地址(--source)”、“-d 目標(biāo)地址(--destination)”的形式

地址可以是單個(gè)IP地址、網(wǎng)絡(luò)地址(帶掩碼長(zhǎng)度)

例:拒絕轉(zhuǎn)發(fā)來(lái)自192.168.1.11主機(jī)的數(shù)據(jù)

iptables -A FORWARD -s 192.168.1.11 -j REJECT

3.網(wǎng)絡(luò)端口匹配

使用“-i 網(wǎng)絡(luò)接口名 (--in-interface)”、 “-o 網(wǎng)絡(luò)接口名(--out-interface)”的形式,分別對(duì)應(yīng)接收、發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)接口

例:丟棄10.20.30.0/24網(wǎng)段,并在2小時(shí)后解封

iptables -I INPUT -s 10.20.30.0/24 -j REJECT

iptables -I FORWARD -s 10.20.30.0/24 -j DROP

at now +2 hours

at > iptables -D INPUT 1

at > iptables -D FORWARD 1

(crtl + D 結(jié)束)


六.隱含(implicit)條件匹配

1.端口匹配

使用“--sport源端口”、“--dport目標(biāo)端口”的形式

采用“端口1:端口2”的形式可以指定一個(gè)范圍的端口

例:僅允許管理員從202.13.0.0/16使用ssh

 iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT

 iptables -A INPUT -p tcp --dport 22 -j DROP

2.TCP標(biāo)記匹配

使用“--tcp-flags檢查范圍 被設(shè)置的標(biāo)記”的形式

如“--tcp-flags SYN,RST,ACK SYN”表示檢查SYN、RST、ACK這3個(gè)標(biāo)記,只有SYN為1時(shí)滿(mǎn)足條件

例:拒絕從外網(wǎng)接口(eth2)直接訪(fǎng)問(wèn)防火墻備機(jī)的數(shù)據(jù)包,但是允許響應(yīng)防火墻TCP請(qǐng)

 求的數(shù)據(jù)包進(jìn)入

 iptables -P INPUT DROP

 iptables -I INPUT -i eth2 -p tcp --tcp-flags SYN, RST, ACK SYN -j REJECT

 iptables -I INPUT -i eth2 -p tcp --tcp-flags !--syn -j ACCEPT

(--syn的用法為兼容舊版本iptables的形式,此處等于--tcp-flags SYN, RST, ACK SYN)


3.ICMP類(lèi)型匹配

使用“--icmp-type ICMP類(lèi)型”的形式

ICMP類(lèi)型可以使用類(lèi)型字符串或者對(duì)應(yīng)的數(shù)值,例如Echo-Request、Echo-Reply

例:禁止其他主機(jī)ping防火墻主機(jī),但是允許從防火墻上ping其他主機(jī)(允許接收ICMP

 回應(yīng)數(shù)據(jù))

 iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP

 iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT

 iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT

七.顯示條件匹配

1.MAC地址匹配

使用“-m mac”結(jié)合“--mac-source MAC地址”的形式

例:禁止轉(zhuǎn)發(fā)來(lái)自MAC地址為00:0C:29:27:55:3F的主機(jī)的數(shù)據(jù)包

 iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP

2.多端口匹配

使用“-m multiport”結(jié)合“--sports源端口列表”或者“--dports目標(biāo)端口列表”的形式

多個(gè)端口之間使用逗號(hào)“,”分隔,連續(xù)的端口也可以使用冒號(hào)“:”分隔

例:允許防火墻本機(jī)對(duì)外開(kāi)放TCP端口20、21、25、110以及被動(dòng)模式FTP端口1250-1280

 iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT

3.IP地址范圍匹配

使用“-m iprange”結(jié)合“--src-range源IP范圍”或者“--dst-range目標(biāo)IP范圍” 的形式

以“-”符號(hào)連接起始IP地址、結(jié)束IP地址

例:禁止轉(zhuǎn)發(fā)源IP地址為192.168.1.20~192.168.1.99的TCP數(shù)據(jù)包

 iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP

4.數(shù)據(jù)包狀態(tài)匹配

使用“-m state”結(jié)合“--state狀態(tài)類(lèi)型”的形式

同時(shí)表示多種狀態(tài)時(shí)以逗號(hào)“,”分隔

常見(jiàn)的數(shù)據(jù)包狀態(tài)包括:NEW、ESTABLISHED、RELATED

例:拒絕訪(fǎng)問(wèn)防火墻的新數(shù)據(jù)包,但允許響應(yīng)連接或與已有連接相關(guān)的數(shù)據(jù)包

 iptables -A INPUT -p tcp -m state --state NEW -j DROP

 iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

八.?dāng)?shù)據(jù)包控制

常見(jiàn)的數(shù)據(jù)包處理方式

ACCEPT:放行數(shù)據(jù)包

DROP:丟棄數(shù)據(jù)包,不給出任何回應(yīng)信息

REJECT:拒絕數(shù)據(jù)包,必要時(shí)會(huì)給數(shù)據(jù)發(fā)送端一個(gè)響應(yīng)信息

LOG:記錄日志信息,并傳遞給下一條規(guī)則處理

用戶(hù)自定義鏈名:傳遞給自定義鏈內(nèi)的規(guī)則進(jìn)行處理

SNAT:修改數(shù)據(jù)包的源地址信息

DNAT:修改數(shù)據(jù)包的目標(biāo)地址信息

九.導(dǎo)入、導(dǎo)出防火墻規(guī)則

導(dǎo)出規(guī)則

iptables-save

結(jié)合重定向輸出“>”符號(hào)保存規(guī)則信息


導(dǎo)入規(guī)則

iptables-restore

結(jié)合重定向輸入“<”符號(hào)恢復(fù)規(guī)則信息


十.SNAT策略

SNAT策略的典型應(yīng)用環(huán)境

局域網(wǎng)主機(jī)共享單個(gè)公網(wǎng)IP地址接入Internet

SNAT策略的原理

源地址轉(zhuǎn)換,Source Network Address Translation

修改數(shù)據(jù)包的源IP地址

前提條件

局域網(wǎng)各主機(jī)正確設(shè)置IP地址/子網(wǎng)掩碼

局域網(wǎng)各主機(jī)正確設(shè)置默認(rèn)網(wǎng)關(guān)地址

推薦實(shí)現(xiàn)步驟

1. 開(kāi)啟網(wǎng)關(guān)主機(jī)的路由轉(zhuǎn)發(fā)功能

2. 添加使用SNAT策略的防火墻規(guī)則

規(guī)則示例:

iptables總結(jié)

iptables -t nat -A POSTROUTING-s192.168.1.0/24 -o eth0-jSNAT --to-source218.29.30.31

(在路由選擇之后進(jìn)行處理,-s 特定局域網(wǎng),-o需要從接口eth0外出的數(shù)據(jù)包--to-source 218.29.30.31網(wǎng)關(guān)主機(jī)外網(wǎng)口ip地址)

十一.MASQUERADE(地址偽裝)策略

只需將 “-j SNAT --to-source 218.29.30.31”的形式改為“-j MASQUERADE”即可

如果是通過(guò)ADSL撥號(hào)方式連接Internet,則外網(wǎng)接口名稱(chēng)通常為ppp0、ppp1等

MASQUERADE策略應(yīng)用示例

iptables -t nat -A POSTROUTING -s 192.168.1.0/24-o ppp0 -j MASQUERADE

十二.DNAT策略

DNAT策略的典型應(yīng)用環(huán)境

在Internet中發(fā)布位于企業(yè)局域網(wǎng)內(nèi)的服務(wù)器

DNAT策略的原理

目標(biāo)地址轉(zhuǎn)換,Destination Network Address Translation

修改數(shù)據(jù)包的目標(biāo)IP地址

前提條件

局域網(wǎng)的Web服務(wù)器正確設(shè)置了IP地址/子網(wǎng)掩碼

局域網(wǎng)的Web服務(wù)器正確設(shè)置了默認(rèn)網(wǎng)關(guān)地址

推薦實(shí)現(xiàn)步驟

1. 確認(rèn)已開(kāi)啟網(wǎng)關(guān)的路由轉(zhuǎn)發(fā)功能

2. 添加使用DNAT策略的防火墻規(guī)則

規(guī)則示例:

iptables總結(jié)

iptables -t nat -APREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -jDNAT--to-destination192.168.1.6

(在路由選擇之前進(jìn)行處理,-i 外網(wǎng)接口進(jìn)入的數(shù)據(jù)包,-d訪(fǎng)問(wèn)網(wǎng)關(guān)的公網(wǎng)ip地址的數(shù)據(jù)包,-dport訪(fǎng)問(wèn)標(biāo)準(zhǔn)Web服務(wù)端口的數(shù)據(jù)包,--to-destination內(nèi)網(wǎng)中Web服務(wù)器的實(shí)際IP地址)

通過(guò)DNAT策略同時(shí)修改目標(biāo)端口號(hào)

使用形式

只需要在“--to-destination”后的目標(biāo)IP地址后面增加“:端口號(hào)”即可,即:

-j DNAT --to-destination目標(biāo)IP:目標(biāo)端口

通過(guò)DNAT策略修改目標(biāo)端口號(hào)的應(yīng)用示例

從Internet中訪(fǎng)問(wèn)網(wǎng)關(guān)主機(jī)(218.29.30.31)的2222端口時(shí),實(shí)際由運(yùn)行在局域網(wǎng)主機(jī)(192.168.1.5)的22端口的應(yīng)用程序提供服務(wù)

iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22

十三.iptables的開(kāi)啟和關(guān)閉

1. Linux防火墻(Iptables)重啟系統(tǒng)生效

  1. 開(kāi)啟: chkconfig iptables on  

  2. 關(guān)閉: chkconfig iptables off  

2.Linux防火墻(Iptables) 即時(shí)生效,重啟后失效

  1. 開(kāi)啟: service iptables start  

  2. 關(guān)閉: service iptables stop

本文標(biāo)題:iptables總結(jié)
分享路徑:http://muchs.cn/article12/iiosdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、網(wǎng)站營(yíng)銷(xiāo)網(wǎng)站改版、虛擬主機(jī)、小程序開(kāi)發(fā)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作