亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

linux系統(tǒng)之iptables其二命令注解

  如果對(duì)iptables相關(guān)概念不甚了解,請(qǐng)查看前一篇博文。

  一、命令部分

  #命令格式:

  iptables [-t table] {-A|-D} chain rule-specification

  iptables [-t table] -I chain [rulenum] rule-specification

  iptables [-t table] -R chain rulenum rule-specification

  iptables [-t table] -D chain rulenum

  iptables [-t table] -S [chain [rulenum]]

  iptables [-t table] {-F|-L|-Z} [chain [rulenum]]  [options…]

  iptables [-t table] -N chain

  iptables [-t table] -X [chain]

  iptables [-t table] -P chain target

  iptables [-t table] -E old-chain-name new-chain-name

  注

  -t :對(duì)那一個(gè)表進(jìn)行操作,如果不指定將以filter為默認(rèn)操作表。(相關(guān)表那些、功能、內(nèi)核模塊,請(qǐng)參照前一篇博文說(shuō)明)

  1、命令注解

  命令 -A (append:追加)

  樣例 #iptables -A INPUT  -p tcp –dport 80 -j DROP

  注解 這個(gè)選項(xiàng)表示在鏈尾追加一條規(guī)則,這條規(guī)則將最后才能被檢查到。

  命令 -D (delete:刪除)

  樣例 #iptables -D INPUT -p tcp –dport 80 -j DROP,#iptables -D INPUT 1

  注解

  這條命令刪除鏈里面的一條規(guī)則,我們有兩種方式輸出一條規(guī)則,第一是輸入一條完整的規(guī)則,另外就是通過(guò)序號(hào)刪除。假如你用第一種方法刪除,那么你輸入的規(guī)則必須和你想刪除的規(guī)則完全一致。如果你想用第二種方法來(lái)刪除規(guī)則,你必須制定刪除的序號(hào),鏈的序號(hào)從頂部開(kāi)始從1編號(hào),如果此鏈當(dāng)前編號(hào)為1,刪除后第二條的編號(hào)將變?yōu)?。

  命令 -I (insert:插入)

  樣例 #iptabels -I OUTPUT  1 -p tcp –dprot 443 -j ACCEPT

  注解 在鏈里面插入一條規(guī)則,這條規(guī)則會(huì)在指定的地方插入,如果不指定默認(rèn)為第一個(gè)編號(hào)上插入。

  命令 -R (replace:替換 )

  樣例 #iptables -R INPUT 1 -s 192.168.0.1 -j DROP

  注解

  這條命令替換指定位置的舊規(guī)則,它和 delete 工作方式一樣的,但是不同在于它不完全刪除這條規(guī)則,而是替換上一條新的規(guī)則。

  命令 -S(顯示)

  樣例 #iptables -S

  注解 顯示filter表中所有鏈上的規(guī)則

  命令 -L(list:列出)

  樣例 #iptables -L

  注解 這條命令列出指定鏈的所有規(guī)則

  命令 -F (flush:清空)

  樣例 #iptables -F INPUT

  注解

  這個(gè)命令情況鏈上的所有規(guī)則,它等同于逐條刪除所有規(guī)則,只是它更快。沒(méi)有指定參數(shù)的話,他會(huì)把指定表上面所有鏈的規(guī)則刪除干凈。

  命令 -Z (zero:清零)

  樣例 #iptables -Z OUTPUT

  注解 將默認(rèn)表中的 OUTPUT鏈的計(jì)數(shù)器清空

  命令 -N (new:新建) chain

  樣例 #iptables -N chain_out

  注解

  這個(gè)命令讓在指定的表上面創(chuàng)建一條新的用戶自定義鏈,請(qǐng)注意,名字不能和系統(tǒng)內(nèi)建的重合

  命令 -P –policy (策略)

  樣例 #iptables -P INPUT DROP

  注解

  為鏈設(shè)置默認(rèn)的 target(可用的是 DROP 和 ACCEPT),這個(gè)target 稱(chēng)作策略。所有不符合規(guī)則的包都被強(qiáng)制使用這個(gè)策略。只有內(nèi)建的鏈才可以使用規(guī)則。但內(nèi)建的鏈和用戶自定義鏈都不能被作為策略使用,也就是說(shuō)不能象這樣使用:iptables -P INPUT allowed(或者是內(nèi)建的鏈).

  命令 -E (rEname-chain)

  樣例 #iptables -E allowed disallowed

  注解 這條命令會(huì)把這個(gè)鏈的第一個(gè)名字改成第二個(gè),只是改變名稱(chēng),內(nèi)容不會(huì)變。

  命令 -X (delete-chain)

  樣例 #iptables -X chain_out

  注解

  這條命令會(huì)從表上刪除指定的鏈,要想刪除這個(gè)鏈,這兒必須沒(méi)

  有任何規(guī)則關(guān)聯(lián)到這個(gè)鏈。

  2、選項(xiàng)注解

  選項(xiàng)

  -x, (–exact:更精確)

  樣例 #iptables -L -n -x

  注解

  使–list 輸出中的計(jì)數(shù)器顯示準(zhǔn)確的數(shù)值,而不用 K、M、G 等

  估值。注意此選項(xiàng)只能和–list 連用。

  選項(xiàng) -n, (–numeric:數(shù)值)

  樣例 #iptables -L -n -x -v

  注解

  使輸出中的 IP 地址和端口以數(shù)值的形式顯示,而不是默認(rèn)的名字,比如主機(jī)名、網(wǎng)絡(luò)名、程序名等。注意此選項(xiàng)也只能和–list連用

  選項(xiàng) -v,(–verbose:以詳細(xì)格式顯示)

  樣例 #iptables -L -n -x -v或 #iptables -L -n -x -vv

  注解

  iptables 會(huì)輸出詳細(xì)的信息告訴你規(guī)則是如何被解釋的、是否正確地插入等

  等(-vv比-v要詳細(xì))

  選項(xiàng) –line-numbers

  樣例 #iptables -L -n –line-number

  注解

  每一條規(guī)則都帶有序號(hào),很方便的知道每條規(guī)則的位置.

  3、匹配規(guī)則

  ⑴、通用匹配

  匹配符

  -p, –protocol(協(xié)議)

  樣例 #iptables  -t INPUT -p tcp –dport 80 -j ACCEPT

  注解

  這個(gè)匹配器(match)主要用來(lái)檢查特定的協(xié)議;

  它主要有以下幾種使用方式:

  1. 制定協(xié)議的名稱(chēng),它必須在/etc/protocols 里面定

  義,不然就會(huì)報(bào)錯(cuò)。

  2.你可以指定一個(gè)整數(shù)值,例如ICMP 就是 1,TCP

  就是 6 而 UDP 是 17.(-p 6 -p 17)

  3. 另外你可以指定為 ALL,ALL 表示僅僅匹配

  ICMP/TCP/UDP 協(xié)議,這個(gè)是默認(rèn)配置,數(shù)值為 0.

  4. 可以是協(xié)議列表,以英文逗號(hào)為分隔符,如:

  udp,tcp

  5. 最后我們還可以對(duì)協(xié)議取反,例如!TCP 表示匹配

  UDP/ICMP,當(dāng)然從這兒我們也可以看到取反只能針

  對(duì) TCP/UDP/ICMP 協(xié)議。

  匹配符 -s, –src, –source (源地址)

  樣例 #iptables -A INTPUT -s 192.168.1.34 -p tcp -j ACCEPT

  注解

  它不僅可以匹配單臺(tái)主機(jī),還以匹配一個(gè)網(wǎng)絡(luò)(ip/mask)

  匹配符 -d, –dst, –destination (目標(biāo)地址)

  樣例 #iptables -A OUTPUT -d 192.168.1.1 -p tcp j DROP

  注解 匹配報(bào)文的目的地址,用法和源地址匹配一致。

  匹配符 -i, –in-interface

  樣例 #iptables -A INPUT -i eth0 -p tcp -j ACCEPT

  注解

  包進(jìn)入本地所使用的網(wǎng)絡(luò)接口來(lái)匹配包。要注意這個(gè)匹配操作

  只能用于 INPUT,F(xiàn)ORWARD 和 PREROUTING 這三個(gè)鏈.(注:接口前加英文感嘆號(hào)表示取反,如 -i ! eth0,注意有空格)

  匹配符 -o, –out-interface

  樣例 #iptables -A FORWARD -o eth0 -p tcp -j ACCEPT

  注解

  以包離開(kāi)本地所使用的網(wǎng)絡(luò)接口來(lái)匹配包。使用的范圍和指定接

  口的方法與–in-interface 完全一樣。

  ⑵、隱含匹配(適用于tcp/udp)

  匹配符 –sport, –source-port (源端口)

  樣例 #iptables -A INPUT -p tcp –sport 22 -j ACCEPT

  注解

  1、不指定此項(xiàng),則暗示所有端口。

  2、使用服務(wù)名或端口號(hào),但名字必須是在/etc/services中定義

  的

  3、可以使用連續(xù)的端口,如果兩個(gè)號(hào)的順序反了也沒(méi)關(guān)系,如:–source-port 80:22 這和 –source-port 22:80 的效果一樣。

  4、可以省略第一個(gè)號(hào),默認(rèn)第一個(gè)是 0,如:–source-port :80 表示從0到80的所有端口。

  5、也可以省略第二個(gè)號(hào),默認(rèn)是 65535,如:–source-port 22:表示從 22 到 65535 的所有端口.

  6、在端口號(hào)前加英文感嘆號(hào)表示取反,注意空格,如:–source-port ! 22 表示除 22 號(hào)之外的所有端口;–source-port ! 22:80 表示從 22 到 80(包括 22 和 80)之外的所有端口。

  注:此處不能匹配不連續(xù)的端口

  匹配符 –dport, –destination-port (目的端口)

  樣例 #iptables -A INPUT -p tcp –dport 22 (此處沒(méi)有指定target表示以鏈的默認(rèn)的策略為準(zhǔn))

  注解 目的端口用來(lái)匹配報(bào)文的目的端口,用法和源端口一樣

  匹配符 –syn(tcp三次握手的第一次)

  樣例 #iptables -A INPUT -d 172.16.32.45 -t tcp –tcp-flags –syn -j ACCEPT

  注解 這里用到的是TCP封包中的控制標(biāo)志來(lái)限定數(shù)據(jù)。(常用的有syn,ack,fin)

  匹配符 all(此處代表–tcp-flags的六個(gè)標(biāo)志為1,none則表示全為0)

  樣例

  #iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP

  或

  #iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP

  注解 拒絕tcp標(biāo)志位全部為1或?yàn)?的非法tcp的報(bào)文

  (3)、icmp

  匹配符 –icmp-type (icmp報(bào)文的類(lèi)型)

  樣例 #iptables -A INPUT -p icmp –icmp-type 8

  注解

  根據(jù)ICMP類(lèi)型匹配包,類(lèi)型的指定可以使用十進(jìn)制數(shù)值或相應(yīng)的

  名字。(常用的有兩個(gè)8表示請(qǐng)求,0表示響應(yīng))

  (4)、顯示匹配(-m)

  匹配符 multiport –dports (多目的端口)(此處可以是多個(gè)不相連的多個(gè)端口(<15))

  樣例 #iptables -I INPUT -d 172.16.32.7 -p tcp -m multiport –dports 22,80 -j ACCEPT

  注解 到達(dá)172.16.3.27協(xié)議是tcp的使用是22和80的端口程序放行

  匹配符 multiport –sports (多源端口)

  樣例 #iptables -I OUTPUT -s 172.16.100.7 -p tcp -m multiport –sports 22,80 -j ACCEPT

  注解 從172.16.100.7使用22,80端口出去的程序放行

  匹配符 iprange –src-range (基于范圍的源地址)

  樣例

  #iptables -A INPUT -p tcp -m iprange –src-range

  192.168.1.13-192.168.2.19

  注解 –src-range 用來(lái)匹配一整段的源地址也可以對(duì)地址取反,例 iprange ! –src-range

  匹配符 iprange –dst-range (基于范圍的目的地址)

  樣例

  #iptables -A INPUT -p tcp -m iprange –dst-range

  192.168.1.13-192.168.2.19

  注解 匹配一整段的目的地址,用法和源一致

  匹配符 [!] –connlimit-above(限定并發(fā)連接數(shù))

  樣例 #iptables -I INPUT -d 192.168.2.34 -p tcp -dport 80 -m connlimit –connlimit-above 5 -j DROP

  注解 限定并發(fā)連接數(shù)

  匹配符 limit –limit(報(bào)文速率控制)

  樣例 #iptables -A INPUT -m limit –limit 3/(hour|second|minute|day)

  注解 單位時(shí)間內(nèi)通過(guò)的報(bào)文數(shù)(通常與limit-burst同用)

  匹配符 limit-burst

  樣例 #iptables -A INPUT  -m iprange –src-range 172.16.32.1-172.16.32.100 -p tcp -m limit –limit 2/minute  –limit-burst 2

  注解

  這里定義的是limit的峰值,就是在單位時(shí)間內(nèi)最多可匹配幾個(gè)報(bào)文

  匹配符 time(指定時(shí)間范圍)

  類(lèi)別

  -datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]

  –datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]

  –timestart hh:mm[:ss]

  –timestop hh:mm[:ss]

  –weekdays day[,day…]

  樣例

  #iptables -A INPUT -d 172.16.32.7 -p tcp –dport 901 -m time –weekdays Mon,Tus,Wed,Thu,F(xiàn)ri –timestart 08:00:00 –time-stop 18:00:00 -j ACCEPT

  注解 時(shí)間范圍的限定(天、小時(shí)、周),此項(xiàng)是可以取反的。

  匹配符 string  –algo {kmp|bm}{–string "STRING"|–hex-string “HEX-STRING”}

  樣例 #iptables -A INPUT -p tcp –dport 80  -m string  –algo kmp ! –string  "admin" -m state –state ESTABLISHED -j ACCEPT

  注解

  過(guò)濾指定的字符–string "STRING":要查找的字符串或–hex-string "HEX-STRING"先將查找的字符,編碼成16進(jìn)制格式再比較

  匹配符 state –state

  樣例 iptables -A INPUT -m state –state NEW,RELATED,ESTABLISHED

  注解

  指定要匹配包的的狀態(tài),當(dāng)前有4 種狀態(tài)可用:INVALID,ESTABLISHED,NEW和RELATED。

  INVALID意味著這個(gè)包沒(méi)有已知的流或連接與之關(guān)聯(lián),也可能是它包含的數(shù)據(jù)或包頭有問(wèn)題。

  ESTABLISHED意思是包是完全有效的,而且屬于一個(gè)已建立的連接,這個(gè)連接的兩端都已經(jīng)有數(shù)據(jù)發(fā)送。

  NEW表示包將要或已經(jīng)開(kāi)始建立一個(gè)新的連接,或者是這個(gè)包和一個(gè)還沒(méi)有在兩端都有數(shù)據(jù)發(fā)送的連接有關(guān)。RELATED說(shuō)明包正在建立一個(gè)新的連接,這個(gè)

  連接是和一個(gè)已建立的連接相關(guān)的.

  四、注意事項(xiàng)

  1、規(guī)則相關(guān)

  (1)、對(duì)于進(jìn)入的狀態(tài)為ESTABLISHED都應(yīng)該放行;

  (2)、對(duì)于出去的狀態(tài)為ESTABLISHED都應(yīng)該放行;

  (3)、嚴(yán)格檢查進(jìn)入的狀態(tài)為NEW的連接;

  (4)、所有狀態(tài)為INVALIED都應(yīng)該拒絕;

  2、連接相關(guān)

  (1)、調(diào)整連接追蹤功能所能容納的追蹤的最大連接數(shù):

  # cat /proc/sys/net/nf_conntrack_max

  (2)、定義了連接追蹤的最大值,因此,建議按需調(diào)大此值;

  # cat /proc/net/nf_conntrack

  (3)、記錄了當(dāng)前追蹤的所有連接

  # cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established

  3、如何放行工作于被動(dòng)模式下的FTP服務(wù)?

  注:ftp的工作模式完全取決于客戶端,具體原因請(qǐng)查看FTP主被模式

  (1)、確保iptables加載ftp協(xié)議支持的模塊:ip_nat_ftp, nf_conntrack_ftp

  編輯/etc/sysconfig/iptables-config文件,定義如下參數(shù):

  IPTABLES_MODULES="ip_nat_ftp nf_conntrack_ftp"

  (2)、放行請(qǐng)求報(bào)文的RELATED和ESTABLISHED狀態(tài),放行響應(yīng)報(bào)文的ESTABLISHED狀態(tài);

  #modprobe ip_nat_ftp

  #modprobe nf_conntrack_ftp

  #iptables -P INPUT DROP

  #iptabls -P OUTPUT DROP

  #iptables -I INPUT -d 172.16.32.45 -p tcp –dport 21 -j ACCEPT

  #iptables -I OUTPUT -s 172.16.32.45 -p tcp –sport 21 -j ACCEPT

  #iptables -I INPUT -d 172.16.32.45 -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT

  #iptables -I OUTPUT -s 172.16.32.45 -p tcp -m state –state ESTABLISHED -j ACCEPT

  4、保存規(guī)則

  service iptables save保存防火墻規(guī)則,保存的位置為/etc/sysconfig/iptables文件中。

  iptables-save > /path/to/some_rulefile把規(guī)則寫(xiě)入到某個(gè)文件中。

  iptables-restore</path/from/some_rulefile輸入重定向。

 

上一篇:安卓防火墻 PS DroidWall

下一篇:pentesterlab學(xué)習(xí)記錄-week1