iptable防火牆詳解

2021-08-20 08:15:36 字數 3421 閱讀 7277

一.基本格式

1.  iptable  [-t  表]  命令選項  [連名]   匹配條件   [-j 動作]

2.常用命令選項如下:

二.舉例

# iptables  -t filter -f【清空filter表中所有規則】

# iptables  -t filter -z【清空filter表中的計數器值】

#iptables  -t filter  -x 【清除filter表中自定義連】

# iptables  -t filter -p input drop 【設定input連預設策略為drop】

# iptables -t filter -p output drop

# iptables -t filter -p forwrod drop

# iptables -t filter -a input -p tcp -j accept 【在input連最後新增一條允許tcp協議的資料報進入的規則】

# iptables -t filter -r input 1 -p tcp -j drop 【替換input連的第1條規則為拒絕tcp資料報進入】

# iptables -t nat -vnl  --line-number  【以詳細的、數字的格式列出nat表中的所有規則】

# iptables -t nat -d postrouting 1  【刪除nat表postrouting 連中的第1條規則】

三.條件匹配

1. 協議匹配:用於檢查資料報使用的協議,符合規則就允許,反之拒絕。允許使用的協議名在/etc/protocols檔案中。

常用的協議有tcp,udp,icmp,ip 和all。【  -p  協議名 】

# iptables -i input -p icmp  -j reject 【拒絕進入防火牆本身的icmp資料報】

# iptables -a forward -p udp -j accept  【允許**udp的所有資料報】

2. 位址匹配:用於檢查資料報的位址是否符合規則,包括源位址和目的位址。【-s  源位址, -d  目的位址】

# iptables -i forward -s 10.0.0.0/8   -j drop  【拒絕**來自10.0.0.0/8 網段的資料報】

# iptables -i forward -d 80.0.0.0/8   -j drop  【 拒絕**目的是80.0.0.0/8 網段的資料報】

(iptables -i 和 -a的區別

首先都是對鏈新增規則 -a引數是將規則寫到現有鏈規則的最後 -i引數預設是將一條規則新增到現有規則鏈的最前面當然也可以指定插入到第幾行 行數可以用數字來指定 比如說將一條規則新增到某一條鏈的第三行 那麼原來在第三行的規則就會降到下一行第四行)

3.埠匹配:用於檢查資料報的tcp或udp埠,需要和 「-p 協議型別」 一起使用【-sport  源埠,-dport 目的埠】

# iptables -a forward -s 10.0.0.0/8  -p tcp  --dport  80    -j accept 【允許**來自10.0.0.0/8網段,目的埠是80的資料報】

# iptables -i forward -s 10.0.0.0/8  -p tcp  --sport 21     -j accept【允許**來自10.0.0.0/8網段,源埠是21的資料報】

4.介面匹配:用於檢查資料報從防火牆那個介面進入或出去,來判斷是否允許。

# iptables -a forward  -i eth0 -s 10.0.0.0/8 -p tcp --dport 80  -j accept

【允許**從eth0進入,來自10.0.0.0/8網段,使用tcp 協議,目的埠椒80的資料報】

# iptables -a input -i eth0  -s 80.0.0.0/8  -j dorp 【拒絕從eth0進入,來自80.0.0.0/8的資料報】

5.snat轉換:一般linux充當閘道器伺服器時使用

snat只能用在nat表的postrouting連,用於對源位址進行轉換。要結合 --to 使用。

# iptables -t nat -a postrouting -s 10.0.0.0/8  -j snat  --to 202.106.1.1

【將來自10.0.0.0/8網段的所有資料報的源位址轉為202.106.1.1】

# iptables -t nat -a postrouting  -i eth0  -s 80.0.0.0/8  -p tcp --dport 25 -j snat  --to 202.106.1.1

6.dnat轉換:只能用在nat表中的prerouting連,用於對目的位址或埠進行轉換。

# iptables -t nat -a prerouting -i eth1 -d 202.106.1.1  -p tcp --dport  80 -j dnat --to 10.0.0.10

【將從eth1 進入,目的位址是202.106.1.1,使用tcp 協議,目的埠是80的資料報的目的位址轉為10.0.0.1】

7.masquerade:偽裝,是snat的特例。

# iptables  -t nat  -a postrouting -s 10.0.0.0/8 -o eth1  -j masquerade

【將來自10.0.0.0/8網段,從eth1出去的資料報的源位址偽裝為eth1介面位址】

四.拓展模組

1.按**mac位址匹配

# iptables -t filter -a forward -m --mac-source  00:02:b2:03:a5:f6  -j drop

【拒絕**來自該mac位址的資料報】

2.按多埠或連續埠匹配

20:      表示20以後的所有埠

20:100   表示20到100的埠

:20     表示20之前的所有埠 

-m  multiport [--prots, --sports,--dports] 

#  iptables -a input -p tcp -m  multiport  --dports 21,20,25,53,80  -j accept 【多埠匹配】

#  iptables -a input -p tcp -dport  20:    -j accept

#  iptables -a input -p tcp  -sport 20:80   -j accept

#  iptables -a input -p tcp  -sport  :80    -j accept

3.還可以按資料報速率和狀態匹配

-m  limit  --limit 匹配速率   如: -m  limit --limit 50/s  -j accept

-m  state  --state  狀態     如: -m  state --state invalid,related  -j accept

iptable防火牆詳解

一.基本格式 1.iptable t 表 命令選項 連名 匹配條件 j 動作 2.常用命令選項如下 二.舉例 iptable t filter f 清空filter表中所有規則 iptable t filter z 清空filter表中的計數器值 iptable t filter x 清除filte...

iptable防火牆詳解

iptable防火牆詳解 一.基本格式 1.iptable t 表 命令選項 連名 匹配條件 j 動作 2.常用命令選項如下 二.舉例 iptable t filter f 清空filter表中所有規則 iptable t filter z 清空filter表中的計數器值 iptable t fil...

iptable防火牆原理

linux 2.0 ipfs firewalld linux 2.2 ipchain firewall linux 2.4 iptables netfilter iptables 是在使用者空間寫規則的,neifilter工作在核心空間放置規則的位置 netfilter是核心的乙個資料報處理模組,具...