防火牆管理工具:
在RHEL 7系統中,firewalld防火牆取代了iptables防火牆。iptables服務會把配置好的防火牆策略交由內核層面的netfilter網絡過濾器來處理,
而firewalld服務則是把配置好的防火牆策略交由內核層面的nftables包過濾框架來處理。
iptables:
策略與規則鏈:
防火牆會從上至下的順序來讀取配置的策略規則,在找到匹配項後就立即結束匹配工作並去執行匹配項中定義的行為(即放行或阻止)。如果在讀取完所有的策略規則之後沒有匹配項,就去執行默認的策略。一般而言,防火牆策略規則的設置有兩種:一種是“通”(即放行),一種是“堵”(即阻止)。當防火牆的默認策略為拒絕時(堵),就要設置允許規則(通),否則誰都進不來;如果防火牆的默認策略為允許時,就要設置拒絕規則,否則誰都能進來,防火牆也就失去了防範的作用。
iptables服務把用於處理或過濾流量的策略條目稱之為規則,多條規則可以組成一個規則鏈,而規則鏈則依據數據包處理位置的不同進行分類,具體如下:
- 在進行路由選擇前處理數據包(PREROUTING);
- 處理流入的數據包(INPUT);
- 處理流出的數據包(OUTPUT);
- 處理轉發的數據包(FORWARD);
- 在進行路由選擇後處理數據包(POSTROUTING)。
iptables命令可以根據流量的源地址、目的地址、傳輸協議、服務類型等信息進行匹配,一旦匹配成功,iptables就會根據策略規則所預設的動作來處理這些流量。
常用的參數以及作用:
- -P:設置默認策略;
- -F:清空規則鏈;
- -L:查看規則鏈;
- -A:在規則鏈的末尾加入新規則;
- -I num:在規則鏈的頭部加入新規則;
- -D num:刪除某一條規則;
- -s:匹配來源地址IP/MASK,加歎號“!”表示除這個IP外;
- -d:匹配目標地址;
- -i網卡名稱:匹配從這塊網卡流入的數據;
- -o網卡名稱:匹配從這塊網卡流出的數據;
- -p:匹配協議,如TCP、UDP、ICMP;
- --dport num:匹配目標端口號;
- --sport num:匹配來源端口號;
firewalld:
RHEL 7系統中集成了多款防火牆管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems,Linux系統的動態防火牆管理器)服務是默認的防火牆配置管理工具,
它擁有基於CLI(命令行界面)和基於GUI(圖形用戶界面)的兩種管理方式。
firewalld中常用的區域名稱及策略規則:
- trusted:允許所有的數據包
- home:拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、mdns、ipp-client、amba-client與dhcpv6-client服務相關,則允許流量
- internal:等同於home區域
- work:拒絕流入的流量,除非與流出的流量數相關;而如果流量與ssh、ipp-client與dhcpv6-client服務相關,則允許流量
- public:拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、dhcpv6-client服務相關,則允許流量
- external:拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
- dmz:拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
- block:拒絕流入的流量,除非與流出的流量相關
- drop:拒絕流入的流量,除非與流出的流量相關
firewall-cmd命令中使用的參數以及作用:
- --get-default-zone:查詢默認的區域名稱
- --set-default-zone=:設置默認的區域,使其永久生效
- --get-zones:顯示可用的區域
- --get-services:顯示預先定義的服務
- --get-active-zones:顯示當前正在使用的區域與網卡名稱
- --add-source=:將源自此IP或子網的流量導向指定的區域
- --remove-source=:不再將源自此IP或子網的流量導向某個指定區域
- --add-interface=:將源自該網卡的所有流量都導向某個指定區域
- --change-interface=:將某個網卡與區域進行關聯
- --list-all:顯示當前區域的網卡配置參數、資源、端口以及服務等信息
- --list-all-zones:顯示所有區域的網卡配置參數、資源、端口以及服務等信息
- --add-service=:設置默認區域允許該服務的流量
- --add-port=:設置默認區域允許該端口的流量
- --remove-service=:設置默認區域不再允許該服務的流量
- --remove-port=:設置默認區域不再允許該端口的流量
- --reload:讓“永久生效”的配置規則立即生效,並覆蓋當前的配置規則
- --panic-on:開啟應急狀況模式
- --panic-off:關閉應急狀況模式
與Linux系統中其他的防火牆策略配置工具一樣,使用firewalld配置的防火牆策略默認為運行時(Runtime)模式,又稱為當前生效模式,而且隨著系統的重啟會失效。如果想讓配置策略一直存在,就需要使用永久(Permanent)模式了,
方法就是在用firewall-cmd命令正常設置防火牆策略時添加--permanent參數,這樣配置的防火牆策略就可以永久生效了。
示例:
服務的訪問控制列表:
TCP Wrappers是RHEL 7系統中默認啟用的一款流量監控程序,它能夠根據來訪主機的地址與本機的目標服務程序作出允許或拒絕的操作。
在配置TCP Wrappers服務時需要遵循兩個原則:
- 編寫拒絕策略規則時,填寫的是服務名稱,而非協議名稱;
- 建議先編寫拒絕策略規則,再編寫允許策略規則,以便直觀地看到相應的效果。
閱讀更多 JavaCodingfarmer 的文章