1. iptables的規則寫法:
iptables [-t table] command chain cretiria -j action
2. [-t table]
table(表)有三個,即:filter表,nat表,mangle表,它們分別代表對經過iptables的資料報進行篩選(filter),轉譯(nat),改寫(mangle).
3. command
(1).鏈管理命令(這都是立即生效的)
-p :設定預設策略的(設定預設門是關著的還是開著的)
預設策略一般只有兩種
iptables -p input (drop|accept) 預設是關的/預設是開的
比如:iptables -p input drop 這就把預設規則給拒絕了。並且沒有定義哪個動作,所以關於外界連線的所有規則包括xshell連線之類的,遠端連線都被拒絕了。
-f: flash,清空規則鏈的(注意每個鏈的管理許可權)
iptables -t nat -f prerouting
iptables -t nat -f 清空nat表的所有鏈
-n:new 支援使用者新建乙個鏈
iptables -n inbound_tcp_web 表示附在tcp表上用於檢查web的。
-x: 用於刪除使用者自定義的空鏈
使用方法跟-n相同,但是在刪除之前必須要將裡面的鏈給清空昂了
-e:用來rename chain主要是用來給使用者自定義的鏈重新命名
-e oldname newname
-z:清空鏈,及鏈中預設規則的計數器的(有兩個計數器,被匹配到多少個資料報,多少個位元組)
iptables -z :清空
(2).規則管理命令
-a:追加,在當前鏈的最後新增乙個規則
-i num : 插入,把當前規則插入為第幾條。
-i 3 :插入為第三條
-r num:replays替換/修改第幾條規則
格式:iptables -r 3 …………
-d num:刪除,明確指定刪除第幾條規則
(3).檢視管理命令 「-l」
附加子命令
-n:以數字的方式顯示ip,它會將ip直接顯示出來,如果不加-n,則會將ip反向解析成主機名。
-v:顯示詳細資訊
-vv-vvv :越多越詳細
-x:在計數器上顯示精確值,不做單位換算
--line-numbers : 顯示規則的行號
-t nat:顯示所有的關卡的資訊
4. chain
chain(鏈)有五個,即:input鏈,forward鏈,output鏈,prerouting鏈,postrouting鏈.
5. cretiria
cretiria(指定匹配標準)
ip | ip/mask | 0.0.0.0/0.0.0.0
而且位址可以取反,加乙個「!」表示除了哪個ip之外
-p:用於匹配協議的(這裡的協議通常有3種,tcp/udp/icmp)
-i eth0:從這塊網絡卡流入的資料
流入一般用在input和prerouting上
-o eth0:從這塊網絡卡流出的資料
流出一般在output和postrouting上
(2).擴充套件匹配
隱含擴充套件:對協議的擴充套件
-p tcp :tcp協議的擴充套件。一般有三種擴充套件
--dport xx-xx:指定目標埠,不能指定多個非連續埠,只能指定單個埠,比如
--dport 21 或者 --dport 21-23 (此時表示21,22,23)
--sport:指定源埠
--tcp-fiags:tcp的標誌位(syn,ack,fin,psh,rst,urg)
對於它,一般要跟兩個引數:
1.檢查的標誌位
2.必須為1的標誌位
--tcpflags syn,ack,fin,rst syn = --syn
表示檢查這4個位,這4個位中syn必須為1,其他的必須為0。所以這個意思就是用於檢測三次握手的第一次包的。對於這種專門匹配第一包的syn為1的包,還有一種簡寫方式,叫做--syn
-p udp:udp協議的擴充套件
--dport
--sport
-p icmp:icmp資料報文的擴充套件
--icmp-type:
echo-request(請求回顯),一般用8 來表示
所以 --icmp-type 8 匹配請求回顯資料報
echo-reply (響應的資料報)一般用0來表示
顯式擴充套件(-m)
擴充套件各種模組
-m multiport:表示啟用多埠擴充套件
之後我們就可以啟用比如 --dports 21,23,80
6. -j action
常用的action:
drop:悄悄丟棄
一般我們多用drop來隱藏我們的身份,以及隱藏我們的鍊錶
reject:明示拒絕
accept:接受
custom_chain:轉向乙個自定義的鏈
dnat
snat
redirect:重定向:主要用於實現埠重定向
mark:打防火牆標記的
return:返回
在自定義鏈執行完畢後使用返回,來返回原規則鏈。
7. 表和鏈的功能
filter表包括input鏈,forward鏈,output鏈.
input鏈:過濾所有目標位址是本機的資料報.
forward鏈:過濾所有路過本機的資料報.也就是目的位址和源位址都不是本機的資料報.
output鏈:過濾所有由本機產生的資料報,也就是源位址是本機的資料報.
nat表包括 prerouting鏈,output鏈,postrouting鏈.
prerouting鏈:可以在資料報到達防火牆的時候改變包的目標位址.
output鏈:可以改變本地產生的資料報的目標位址.
postrouting鏈:在資料報就要離開防火牆的時候改變資料報的源位址.
mangle表包括全部的5個鏈.
iptables 用法總結
一 iptables ip和mac繫結 方法一 iptables iptables a forward s 10.10.0.2 m mac mac source 00 10 4b 15 16 6c j accept 就將 10.10.0.2 與其mac位址繫結了 方法二 arp 192.168.0....
略談iptables用法
linux上的iptables是基於其kernel內建的netfilter,netfilter工作在核心。因此使用者一般無法直接跟核心打交道,為了解決這個問題,提供了iptables這個軟體來設定netfilter。也就是說,當我們設定規則時,要通過iptables。iptables會檢查我們設定的...
總結iptables的應用
由於伺服器被黑,又研究的了一下iptables。總結一下他的幾個應用 1 限制埠 iptables a input p tcp dport 80 j accept iptables a input p tcp dport 22 j accept iptables a input j accept 實...