【記錄】防火牆iptables
文章目錄
明天也是小春日暖 ——津端修一 , 津端英子
一、對比RHEL6 iptables 和 RHEL7 firewalld
RHEL6 | iptables | 將防火牆策略交由內核的netfilter網絡過濾器處理 |
---|---|---|
RHEL7 | firewalld | 將防火牆策略交由內核的nftables包過濾框架來處理 |
二、防火牆過濾規則
(1)規則:
iptables服務把用於處理或過濾流量的策略條目稱爲規則(通俗的說,規則就是規定哪些數據包可以進出計算機,哪些數據包不可以)
防火牆按會從上至下的順序來讀取配置的策略規則,即匹配的規則是從上到下的,
因此,要求把較爲嚴格的,優先級較高的策略規則放到前面
(2)規則鏈分類(分類標準:數據包處理位置)
1 在進行路由選擇前處理數據包 (PREROUNTING)
2 處理流入的數據包(INPUT)從互聯網流入計算機
3 處理流出的數據包 (OUTPUT)
4 處理轉發的數據包 (FORWADR)
5 在進行路由選擇前處理數據包 (POSTROUNTING)
(3)動作(即符合規則後應對這個數據包採取什麼樣的行動)
1 ACCEPT 允許流量通過
2 LOG 記錄日誌信息
3 REJECT 拒絕流量通過(拒絕流量後,在回發送方一句“你被我拒絕了”)
4 DROP 拒絕流量通過(直接將流量丟掉而不響應)
三 、iptabls命令中常用的參數及作用
第一類:增刪查 規則鏈
-I num | 在規則鏈頭部插入規則(insert) |
---|---|
-A | 在規則鏈尾部插入規則(append) |
-F | 清空規則鏈 |
-D num | 刪除一條規則 |
-L | 列出規則鏈 |
-P | 設置默認規則 |
第二類:匹配條件
通過什麼協議(-p),管理哪些IP(-s)的主機通過哪些端口(–sport)抵達本機的哪些IP(-d)地址和端口(–dport)
-s | 匹配數據包來源的IP地址(IP/MASK),加上!表示除了這個IP地址以外 |
---|---|
-d | 匹配目標IP地址(destination) |
–sport num | 匹配來源端口號 |
–dport | 匹配目標端口號 |
-p | 匹配協議 TCP UDP ICMP等(protocal) |
-i 網卡名稱 | 匹配從這塊網卡流入的數據包(input) |
-o 網卡名稱 | 匹配從這塊網卡流出的數據包(output) |
四 、配置防火牆的栗子
1 查看、清空防火牆規則,設置防火牆默認規則
#查看防火牆規則
iptables -L
#清空防火牆規則
iptables -F
#設置防火牆默認規則(這裏設置INPUT鏈默認爲ACCEPT)或者DROP
iptables -P INPUT ACCEPT
2 添加具體的防火牆規則
語法 : iptables 增刪改查規則鏈 匹配條件 動作
對哪個規則鏈 在符合什麼條件後 怎麼處理數據包
(1)向INPUT 鏈中添加允許ICMP 流量進入的策略規則
iptabels -I INPUT -p icmp -j ACCEPT
#增加 規則鏈 匹配條件 動作
(2)j將INPUT規則鏈設置爲只允許指定網段的主機訪問本機的22端口,拒絕來自其他所有主機的流量:
iptables -I INPUT -s 192.168.43.125 --dport 22 -p ssh -j ACCEPT
iptables -I INPUT --dport 22 -p ssh -j DROP
注意:一定要將允許192.168.43.125 流量進入的規則寫在拒絕規則前面,否則,所有流量都不能通過ssh 進入主機了。
(3)向INPUT規則鏈中添加拒絕所有主機訪問本機1000~1024端口的策略規則
iptables -A INPUT -p tcp --dprot 1000:1024 -j REJECT
iptables -A INPUT -p udp --dprot 1000:1024 -j REJECT
(4)設置INPUT 規則鏈默認策略爲 ACCEPT
iptables -P INPUT ACCEPT
3 刪除防火牆規則
刪除INPUT鏈中剛插入的規則鏈
iptables -D INPUT 1
4 保存防火牆規則
使用 iptables 命令配置的防火牆規則默認會在系統下一次重啓的時失效,
如果想讓配置的防火牆策略永久生效,需要執行保存命令
service iptables save