LINUX iptables規則學習筆記

防火牆策略

防火牆策略通常分爲兩種,一種叫「通」策略,一種叫「堵」策略,通策略,默認門是關着的,必需要定義誰能進。堵策略則是,大門是洞開的,可是你必須有身份認證,不然不能進。因此咱們要定義,讓進來的進來,讓出去的出去,因此通,是要全通,而堵,則是要選擇。當咱們定義的策略的時候,要分別定義多條功能,其中:定義數據包中容許或者不容許的策略,filter過濾的功能,而定義地址轉換的功能的則是nat選項。爲了讓這些功能交替工做,咱們制定出了「表」這個定義,來定義、區分各類不一樣的工做功能和處理方式。網絡

用的比較多個功能有3個
1.filter 定義容許或者不容許的
2.nat 定義地址轉換的
3.mangle功能:修改報文原數據tcp

iptables是工做在用戶空間的,它可讓規則進行生效的,自己不是一種服務,並且規則是當即生效的。而咱們iptables如今被作成了一個服務,能夠進行啓動,中止的。啓動,則將規則直接生效,中止,則將規則撤銷。 ide

iptables還支持本身定義鏈。可是本身定義的鏈,必須是跟某種特定的鏈關聯起來的。在一個關卡設定,指定當有數據的時候專門去找某個特定的鏈來處理,當那個鏈處理完以後,再返回。接着在特定的鏈中繼續檢查。代理

規則(rules)其實就是網絡管理員預約義的條件,規則通常的定義爲「若是數據包頭符合這樣的條件,就這樣處理這個數據包」。規則存儲在內核空間的信息 包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規 則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火牆的 主要工做就是添加、修改和刪除這些規則。rest

注意:規則的次序很是關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的。日誌

規則表之間的優先順序 Raw——mangle——nat——filter接口

語法

iptables(選項)(參數)ip

選項
-t<表>:指定要操縱的表;
-A:向規則鏈中添加條目;在當前鏈的最後新增一個規則
-D num:從規則鏈中刪除條目;明確指定刪除第幾條規則
-I num:向規則鏈中插入條目;把當前規則插入爲第幾條
-R num :替換規則鏈中的條目;Replays替換/修改第幾條規則
-L num:顯示規則鏈中已有的條目;
-F:清除規則鏈中已有的條目;
-Z:清空規則鏈中的數據包計算器和字節計數器;
-N:建立新的用戶自定義規則鏈;
-P:定義規則鏈中的默認目標;
-h:顯示幫助信息;
-p:指定要匹配的數據包協議類型;-p tcp|udp --dport 80
-s:指定要匹配的數據包源ip地址;
-j<目標>:指定要跳轉的目標;
-i<網絡接口>:指定數據包進入本機的網絡接口;eth0 流入通常用在INPUT和PREROUTING上
-o<網絡接口>:指定數據包要離開本機所使用的網絡接口。eth0 流出通常在OUTPUT和POSTROUTING上路由

iptables命令選項輸入順序
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動做get

表名包括
raw:高級功能,如:網址過濾。
mangle:數據包修改(QOS),用於實現服務質量。
net:地址轉換,用於網關路由器。
filter:包過濾,用於防火牆規則

動做包括

ACCEPT:接收數據包。
DROP:丟棄數據包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址轉換。
DNAT:目標地址轉換。
MASQUERADE:IP假裝(NAT),用於ADSL。
LOG:日誌記錄。

案例

容許全部IP訪問
iptables -A INPUT -j ACCEPT

禁止全部網絡訪問
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

開放指定IP訪問
iptables -A INPUT -s 192.167.3.4 -j ACCEPT

拒絕指定IP訪問
iptables -A INPUT -s 192.167.3.4 -j REJECT

容許指定源IP訪問指定目標IP
iptables -A INPUT -i eth0 -s 10.1.6.41 -d 10.1.6.129 -j ACCEPT

容許指定源IP訪問指定目標IP 以及目標端口
iptables -A INPUT -i eth0 -s 10.1.6.41 -d 10.1.6.129 -p tcp --dport 22 -j ACCEPT
指定連續的端口--dport 8080-9000 不能指定多個非連續端口
iptables -A INPUT -i eth0 -s 10.1.6.41 -d 10.1.6.129 -p tcp --dport 8080-9000 -j ACCEPT
-p tcp:TCP協議的擴展
--dport 21 指定目標端口
--sport 指定源端口

-p udp:UDP協議的擴展
--dport:指定目標端口
--sport:指定源端口
-p icmp:icmp數據報文的擴展

--icmp-type:
echo-request(請求回顯),通常用8 來表示
因此 --icmp-type 8 匹配請求回顯數據包
echo-reply (響應的數據包)通常用0來表示

容許本地迴環接口(即運行本機訪問本機)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#容許已創建的或相關連的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#容許全部本機向外的訪問
iptables -A OUTPUT -j ACCEPT

容許全部網絡訪問22|80|ftp21|ftp20端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

容許指定IP網絡訪問22|80|ftp21|ftp20端口
iptables -A INPUT -s ip -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s ip -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s ip -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s ip -p tcp --dport 20 -j ACCEPT

禁止指定IP訪問22|80|ftp21|ftp20端口,屏蔽某個網絡段:123.0.0.0/8|16|24
iptables -A INPUT -s ip -p tcp --dport 22 -j REJECT|DROP
iptables -A INPUT -s ip -p tcp --dport 80 -j REJECT|DROP
iptables -A INPUT -s ip -p tcp --dport 21 -j REJECT|DROP
iptables -A INPUT -s ip -p tcp --dport 20 -j REJECT|DROP

規則保存
service iptables save

查看防火牆規則:
iptables -L -n -v

iptables -S

刪除已添加的iptables規則

清空防火牆策略
iptabes -F

將全部iptables以序號標記顯示,執行:
iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 10.1.6.41 10.1.6.129 tcp dpt:22
2 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

好比要刪除INPUT裏序號爲8的規則,執行:
iptables -D INPUT 2

控制規則的存放以及開啓
注意:你所定義的全部內容,當你重啓的時候都會失效,要想咱們可以生效,須要使用一個命令將它保存起來
1.service iptables save 命令
它會保存在/etc/sysconfig/iptables這個文件中
2.iptables-save 命令
iptables-save > /etc/sysconfig/iptables

3.iptables-restore 命令開機的時候,它會自動加載/etc/sysconfig/iptabels若是開機不能加載或者沒有加載,而你想讓一個本身寫的配置文件(假設爲iptables.2)手動生效的話:iptables-restore < /etc/sysconfig/iptables.2則完成了將iptables中定義的規則手動生效

相關文章
相關標籤/搜索