iptables第一部分

iptables :包過濾型防火牆

功能:

filter:過濾,防火牆

nat:network address translation 網絡地址轉換

mangle:拆解報文,做出修改,封裝報文。

raw:關閉nat表上啓用的連接追蹤機制

流入:PREROUTING-->INPUT

流出:OUTPUT-->POSTROUTING

轉發:PREROUTING-->FORWARD-->POSTROUTING

各功能的分別實現;

filter:INPUT,FORWARD,OUTPUT

nat:PREROUTING,OUTPUT,POSTROUTING

mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw:PREROUTING,OUTPUT

路由發生的時刻;

報文進入本機後;

判斷目標主機

報文發送之前;

判斷經由哪個接口送往下一跳

iptables:四表五鏈

四表:filter,nat,mangle,raw

五鏈;INPUT,FORWARD,OUTPUT,PREROUTING,POSTROUTING

添加規則要點:

1.實現哪種功能,判斷添加在哪張表

2.報文流經的路徑,判斷添加在哪個鏈上

鏈:鏈上規則的次序,即爲檢查的次序。

1.同類規則(訪問同一個應用),匹配範圍小的放上面

2.不同類規則(訪問不同應用),匹配到報文頻率大的放上面

3.將那些可由一條規則描述得多個規則合併爲一個

4.設置默認策略

功能優先級次序:raw,mangle,nat,filter

規則:

組成部分;報文的匹配條件,匹配到之後處理動作

匹配條件:根據協議報文特徵指定

基本匹配條件

擴展匹配條件

處理動作:

內建處理機制

自定義處理機制

注意:報文不能經過自定義鏈,只能在內置鏈上通過規則進行引用後生效;

iptables:規則管理工具

添加,修改,刪除,顯示等;

規則和鏈有計數器:

pkts:由規則或鏈所匹配到的報文的個數

bytes:由規則或鏈匹配到的所有報文大小之和;

  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


  rule-specification = [matches...] [target]


  match = -m matchname [per-match-options]


  target = -j targetname [per-target-options]

iptables[-t table ]SUBCOMMAND CHAIN CRETERIA -j TARGET

-t table 

filter,nat,mangle,raw

鏈管理:

-F:flush,清空規則鏈;

-N;new,創建自定義規則鏈

-X: drop,刪除用戶自定義的規則鏈;

-Z: zero,清零,置零規則計數器

-P:policy,爲指定鏈設置默認策略;對filter表中的鏈而言,默認策略通常有ACCEPT,DROP,REJECT;

-E:rEname,重命名自定義鏈,引用計數不爲0的自定義鏈,無法改名,也無法刪除

規則管理:

-A:append,將新規則增加到指定鏈的尾部;

-I;insert,將新規則插入到指定鏈的指定位置

-D:delete,刪除指定鏈上的指定規則

1,指定匹配條件

2,指定規則編號

-R;replace,替換指定鏈上的指定規則

查看:

-L;list,列出指定鏈上的所有規則

-n;numberic,以數字格式顯示地址和端口號

-v:verbose,顯示詳細信息

-vv,-vvv

--line-numbers:顯示規則編號;

-x:exactly,顯示計數器計數結果的精確值。

  清空:iptables -F

  查看:iptables -L

  查看:iptables -L -n

  查看:iptables -L -n -v

  查看:iptables -L -n -vvv

  查看:iptables -L -n -vv

  查看:iptables -t nat -L 

  查看:iptables -t mangle -L 

  查看:iptables -t raw -L 

  查看:iptables -t filter -L 

  新建:iptables -t filter -N test

  刪除鏈:iptables -t filter -X test

  重命名:iptables -t filter -E test test1   

  修改默認策略:iptables -t filter  -P FORWARD DROP 

  查看:iptables -t filter -L  -v --line-numbers

  刪除規則:iptables -D INPUT 5

匹配條件:

基本匹配:

[!]-s,--src,--source IP|Netaddr :檢查報文中源地址是否符合此處指定的地址範圍

[!]-d,--dst,--destination IP|Netaddr :檢查報文中目標地址是否符合此處指定的地址範圍

-p,--protocol:檢查報文中的協議,ip首部中的protocols所標識的協議;

-i,--in-interface IFAS:數據報文的流入接口;僅能用於PREROUTING,INPUT及FORWARD鏈上;

-o,--out-interface :數據報文的流出接口;僅能用於FORWARD,OUTPUT,POSTROUTING鏈上

擴展匹配:-m macth_name --spec_options

例如:-m tcp --dport 22

隱私擴展:對-p protocol指明的協議進行的擴展,可以省略-m選項

-p tcp

--dport 端口:目標端口可以一個或多個

--sport 端口:源端口

只允許22號端口通過TCP連接

iptables -I INPUT -d 172.16.6.14 -p tcp --dport 22 -j ACCEPT  

iptables -I OUTPUT -s 172.16.6.14 -p tcp --sport 22 -j ACCEPT  

--tcp-flags:列表1,列表2:檢查列表1中所指明的所有標誌位,且這其中,列表2所標識出的所有標誌位必須爲1

而餘下的必須爲0,沒在列表中指明的,不做檢查。

SYN,ACK,FIN,RST,PSH,URG

--tcp-flags SYN,ACK,FIN,RST   SYN

--syn:新建TCP連接的第一次請求

-p icmp

--icmp-type

可以用數值標識類型:一般0 或8

0:echo-reply

8:echo-request

iptables -A INPUT 

-p udp

--dport

--sport

顯示擴展:必須使用-m

目標:

-j:jump,跳轉

ACCEPT:接受

DROP:丟棄

REJECT:拒絕

RETURN:返回調用鍵

REDIRECT:端口重定向

LOG:記錄日誌

MARK:做防火牆標記

DNAT:目標地址轉換

SNAT:源地址轉換

MASQUERADE:地址僞裝

。。。

自定義鏈:有自定義鏈上的規則進行匹配檢查

允許TCP訪問

iptables [-t filter] -A INPUT -d 172.16.6.14 -p tcp -j ACCEPT

iptables [-t filter] -A OUTPUT -s 172.16.6.14 -p tcp -j ACCEPT

設置默認策略

iptables -P INTPUT DROP

iptables -p OUTPUT DROP

iptables -p FORWARD DROP

允許ping

iptables [-t filter] -A INPUT -d 172.16.6.14 -p icmp -j ACCEPT

iptables [-t filter] -A OUTPUT -s 172.16.6.14 -p icmp -j ACCEP

允許某一臺可以ping

iptables  -A INPUT -s 172.16.6.49 -d 172.16.6.14 -p icmp -j ACCEPT

iptables  -A OUTPUT -s 172.16.6.14 -d 172.16.6.49 -p icmp -j ACCEPT

允許22號端口

iptables -I INPUT -d 172.16.6.14 -p tcp --dport 22 -j ACCEPT  

iptables -I OUTPUT -s 172.16.6.14 -p tcp --sport 22 -j ACCEPT  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章