压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

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

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

  一、命令部分

  #命令格式:

  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 :對那一個表進行操作,如果不指定將以filter為默認操作表。(相關(guān)表那些、功能、內(nèi)核模塊,請參照前一篇博文說明)

  1、命令注解

  命令 -A (append:追加)

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

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

  命令 -D (delete:刪除)

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

  注解

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

  命令 -I (insert:插入)

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

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

  命令 -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

  注解

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

  命令 -Z (zero:清零)

  樣例 #iptables -Z OUTPUT

  注解 將默認表中的 OUTPUT鏈的計數(shù)器清空

  命令 -N (new:新建) chain

  樣例 #iptables -N chain_out

  注解

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

  命令 -P –policy (策略)

  樣例 #iptables -P INPUT DROP

  注解

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

  命令 -E (rEname-chain)

  樣例 #iptables -E allowed disallowed

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

  命令 -X (delete-chain)

  樣例 #iptables -X chain_out

  注解

  這條命令會從表上刪除指定的鏈,要想刪除這個鏈,這兒必須沒

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

  2、選項注解

  選項

  -x, (–exact:更精確)

  樣例 #iptables -L -n -x

  注解

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

  估值。注意此選項只能和–list 連用。

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

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

  注解

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

  選項 -v,(–verbose:以詳細格式顯示)

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

  注解

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

  等(-vv比-v要詳細)

  選項 –line-numbers

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

  注解

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

  3、匹配規(guī)則

  ⑴、通用匹配

  匹配符

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

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

  注解

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

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

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

  義,不然就會報錯。

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

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

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

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

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

  udp,tcp

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

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

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

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

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

  注解

  它不僅可以匹配單臺主機,還以匹配一個網(wǎng)絡(luò)(ip/mask)

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

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

  注解 匹配報文的目的地址,用法和源地址匹配一致。

  匹配符 -i, –in-interface

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

  注解

  包進入本地所使用的網(wǎng)絡(luò)接口來匹配包。要注意這個匹配操作

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

  匹配符 -o, –out-interface

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

  注解

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

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

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

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

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

  注解

  1、不指定此項,則暗示所有端口。

  2、使用服務名或端口號,但名字必須是在/etc/services中定義

  的

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

  4、可以省略第一個號,默認第一個是 0,如:–source-port :80 表示從0到80的所有端口。

  5、也可以省略第二個號,默認是 65535,如:–source-port 22:表示從 22 到 65535 的所有端口.

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

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

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

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

  注解 目的端口用來匹配報文的目的端口,用法和源端口一樣

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

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

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

  匹配符 all(此處代表–tcp-flags的六個標志為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標志位全部為1或為0的非法tcp的報文

  (3)、icmp

  匹配符 –icmp-type (icmp報文的類型)

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

  注解

  根據(jù)ICMP類型匹配包,類型的指定可以使用十進制數(shù)值或相應的

  名字。(常用的有兩個8表示請求,0表示響應)

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

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

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

  注解 到達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 用來匹配一整段的源地址也可以對地址取反,例 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(報文速率控制)

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

  注解 單位時間內(nèi)通過的報文數(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的峰值,就是在單位時間內(nèi)最多可匹配幾個報文

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

  類別

  -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

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

  匹配符 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

  注解

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

  匹配符 state –state

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

  注解

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

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

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

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

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

  四、注意事項

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

  (1)、對于進入的狀態(tài)為ESTABLISHED都應該放行;

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

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

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

  2、連接相關(guān)

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

  # cat /proc/sys/net/nf_conntrack_max

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

  # cat /proc/net/nf_conntrack

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

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

  3、如何放行工作于被動模式下的FTP服務?

  注:ftp的工作模式完全取決于客戶端,具體原因請查看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)、放行請求報文的RELATED和ESTABLISHED狀態(tài),放行響應報文的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ī)則寫入到某個文件中。

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

 

上一篇:安卓防火墻 PS DroidWall

下一篇:pentesterlab學習記錄-week1