Linux進階-8.防火牆管理工具1:iptables

1.定義

什麼是防火牆?防火牆是指一種將內網和外網邏輯上分隔開的一種技術,對兩邊的網絡進行包過濾。防火牆可分爲網絡防火牆和主機防火牆。網絡防火牆一般是在網絡邊界(如外網出口,局域網之間)上的硬件設備,可以對整個局域網內的主機和設備進行防護。主機防護牆是指在主機系統上的防護軟件,可以針對每一臺主機自定義防護等級。
什麼是iptables?windows10的防火牆是defender防火牆,Linux的防火牆是處於內核的netfilter,iptables就是netfilter防火牆的一個命令行管理工具,處於用戶層面,可以管理Linux的防火牆。

2.規則策略

規則是管理員預設的條件,數據包匹配到這個預設的條件後,會根據策略進行放行(accept)、拒絕(reject)和丟棄(drop)。拒絕和丟棄的結果相同數據包不會通過防火牆,區別拒絕是丟棄數據包,同時會給數據發送端一個響應的信息,客戶端剛請求就會收到拒絕的信息;而丟棄則是將數據包直接丟棄而用戶不會得到任何系統上的提示。匹配成功後的數據包就不會繼續匹配後面的規則了。
默認規則是防火牆中最後一條規則,是一條託底的規則,當數據包沒有匹配所有預設條件時會匹配最後一條默認規則,放行或者丟棄。一般默認規則都是丟棄,如果設置成放行而過濾規則不夠豐富,防火牆就是失去作用了。

3.數據方向

根據數據的流向可以將數據包分爲以下幾類,其中重點需要處理的就是外網進入內網的數據了。

    處理流入的數據包(INPUT)
    處理流出的數據包(OUTPUT)
    處理轉發的數據包(FORWARD)
    在進行路由選擇後處理數據包(POSTROUTING)
    在進行路由選擇前處理數據包(PREROUTING)

4.iptables的使用

iptables命令可以根據流量的源地址、目的地址、傳輸協議、服務類型等信息進行匹配,一旦匹配成功,iptables就會根據策略規則所預設的動作來處理這些流量。

	參數 			作用
	-P 				設置默認策略
	-F 				清空規則鏈
	-L 				查看規則鏈
	-A 				在規則鏈的末尾加入新規則
	-I 				在規則鏈的頭部加入新規則
	-D  			刪除某一條規則
	-j				處理規則策略的動作ACCEPT、REJECT、DROP
	-s 				匹配源地址,加歎號“!”表示除這個IP外
	-d 				匹配目標地址
	-i 網卡名稱 		匹配從這塊網卡流入的數據
	-o 網卡名稱 		匹配從這塊網卡流出的數據
	-p 				匹配協議,如TCP、UDP、ICMP
	--dport num 	匹配目標端口號
	--sport num 	匹配來源端口號

4.1使用iptables -L查看策略,默認策略都是放通,這樣防火牆並沒有作用,我們清空策略並設置默認策略拒絕。

[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# iptables -P INPUT DROP

這樣再看另一臺主機ping這臺設備時就不通了,所以ping不通不一定是設備關機或者網絡故障了,可能是開啓了防火牆過濾了ICMP包了。

4.2開啓只允許192.168.10.20這個主機對本設備的ping包策略。

[root@localhost Desktop]# iptables -I INPUT -s 192.168.10.30/32 -p icmp -j ACCEPT

4.3開啓只允許192.168.10.20這個主機對本設備的SSH端口策略。

[root@localhost Desktop]# iptables -I INPUT -s 192.168.10.20 -p tcp --dport 22 -j ACCEPT

4.4添加所有人允許訪問服務器的DNS策略。

[root@localhost Desktop]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[root@localhost Desktop]# iptables -A INPUT -p udp --dport 53 -j ACCEPT

4.5開啓自定義端口65510-65520的所有端口策略。

[root@localhost Desktop]# iptables -A INPUT -p udp --dport 65510:65520 -j ACCEPT
[root@localhost Desktop]# iptables -A INPUT -p tcp --dport 65510:65520 -j ACCEPT

4.6查看策略並保存。

[root@localhost Desktop]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.10.20        anywhere             tcp dpt:ssh
ACCEPT     icmp --  192.168.10.20        anywhere            
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpts:65510:65520
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:65510:65520
以下省略...

[root@localhost Desktop]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章