防火墻
概念
- 支持網絡區域所定義的網絡鏈接以及接口安全等級的動態防火墻管理工具
- 支持IPv4、IPv6防火墻設置以及以太網橋
- 支持服務或應用程序直接添加防火墻規則接口
- 擁有兩種配置模式
- 運行時配置:添加的策略立即生效,不用重載防火墻,策略臨時存在(重啟后失效)
- 永久配置:添加的策略需要重載防火墻才會生效,策略永遠存在
形態
不管是什么防火墻,只要是在Linux中運行的防火墻,就有兩種形態
- 內核態:netfilter
- 指的是操作系統內核運行的環境,具有最高權限和直接訪問系統硬件的能力。在內核態運行的代碼可以執行高級的系統操作。
- netfilter:是Linux內核的一個框架,用于實現網絡數據包的過濾和修改。它提供了對數據包進行處理的接口,可以用于實現防火墻功能、網絡地址轉換(NAT)等。
- 通常netfilter被firewalld和iptables管理
- 用戶態:iptables、firewalld
- 是指操作系統提供給應用程序運行的環境,應用程序在用戶態運行,不能直接訪問硬件,必須通過系統調用等方式訪問操作系統提供的服務。
- iptables:是Linux系統中一個傳統的命令行工具,用于配置IPv4數據包過濾規則和網絡地址轉換(NAT)規則。iptables配置的規則會被netfilter在內核態中執行。
- firewalld:是一個動態管理防火墻的工具,提供了簡化配置和管理防火墻規則的方式。它作為用戶態程序運行,并與內核態中的netfilter交互,實現網絡安全策略。
防火墻分類
- 包過濾防火墻:匹配數據包內的關鍵字,進行過濾
- 狀態話防火墻(思科、華為等設備 )
firewalld網絡區域
- 區域如同進入主機的安全門,每個區域都具有不同限制程度的規則
- 可以使用一個或多個區域,但是任何一個活躍區域至少需要關聯源地址或接口
- 默認情況下,public區域是默認區域,包含所有接口(網卡)
區域劃分??
- 阻塞區域(block):任何傳入的網絡數據包都將被阻止。
- 隔離區域(DMZ):隔離區域也稱為非軍事區域,內外網絡之間增加的一層網絡,起到緩沖作用。對于隔離區域,只有選擇接受傳入的網絡連接。
- 丟棄區域(drop):任何傳入的網絡連接都被拒絕。
- 外部區域(external):不相信網絡上的其他計算機,不會損害你的計算機。只有選擇接受傳入的網絡連接。
- 家庭區域(home):相信網絡上的其他計算機,不會損害你的計算機。
- 內部區域(internal):信任網絡上的其他計算機,不會損害你的計算機。只有選擇接受傳入的網絡連接。
- 公共區域(public):不相信網絡上的任何計算機,只有選擇接受傳入的網絡連接。
- 信任區域(trusted):所有的網絡連接都可以接受。
- 工作區域(work):相信網絡上的其他計算機,不會損害你的計算機。
配置防火墻相關命令
命令 | 說明 |
firewall-cmd --state | 查詢防火墻狀態 |
firewall-cmd --get-zones | 獲取當前所有區域 |
firewall-cmd --get-service | 獲取所有能管理的服務 這里的服務都是默認端口,如果服務的端口被修改了,就不能直接管理該服務 |
firewall-cmd --get-default-zone | 當前接口默認屬于哪個區域 |
firewall-cmd --set-default-zone=internal | 將當前接口的默認區域修改為internal |
firewall-cmd --get-active-zones | 查詢當前被激活的區域 |
firewall-cmd --get-zone-of-interface=ens33 | 查詢指定接口所在的區域 |
firewall-cmd --zone=dmz --list-interface | 列出指定區域有哪些接口 |
firewall-cmd --zone=dmz --add-service=http | 為指定區域添加支持的服務 |
firewall-cmd --zone=dmz --remove-service=http | 刪除該區域的指定服務的默認端口 |
firewall-cmd --zone=dmz --list-services | 列出指定區域支持的服務 |
firewall-cmd --zone=dmz --add-port=80/tcp | 添加端口號策略 為同一個服務添加訪問端口時,要把對應部署的服務默認端口刪除 |
firewall-cmd --zone=dmz --change-interface=ens33 | 修改指定接口的所在區域為dmz |
firewall-cmd --zone=dmz --add-service=http --permanent | 為dmz區域以永久時的方式部署http服務 |
firewall-cmd --zone=dmz --remove-interface=ens38 | 刪除dmz區域的ens38接口 |
firewall-cmd --list-all --zone=dmz | 列出指定區域的全部信息 |
firewall-cmd --reload | 重載防火墻 |