詳述CentOS 7中Firewalld防火牆基礎

Firewalld概述

Firewalld簡介

  • 支持網絡區域所定義的網絡連接以及接口安全等級的動態防火牆管理工具linux

  • 支持IPv四、IPv6防火 牆設置以及以太網橋安全

  • 支持服務或應用程序直接添加防火牆規則接口網絡

  • 擁有兩種配置模式tcp

    運行時配置ide

    永久配置模塊化

Firewalld和iptables的關係

netfilter

  • netfilterLinux2.4.x以後新一代的Linux防火牆機制,是linux內核的一個子系統
  • netfilter採用模塊化設計,具備良好的可擴充性工具

  • 位於Linux內核中的包過濾功能體系
  • 稱爲Linux防火牆的「內核態」

Firewalld/iptables

  • CentOS7默認的管理防火牆規則的工具(Firewalld)
  • 稱爲Linux防火牆的「用戶態」

Firewalld和iptables的區別

- Firewalld iptables
配置文件 /usr/lib/firewalld<br/>/etc/firewalld/ /etc/sysconfig/iptables
對規則的修改 不須要所有刷新策略,不丟失現行鏈接 須要所有刷新策略,丟失鏈接
靜態防火牆 動態防火牆(靈活) 靜態防火牆

Firewalld網絡區域

區域介紹

區域 描述
drop(丟棄) 任何接收的網絡數據包都被丟棄,沒有任何回覆。僅能有發送出去的網絡鏈接
block(限制) 任何接收的網絡鏈接都被lPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒絕
public(公共) 在公共區域內使用,不能相信網絡內的其餘計算機不會對您的計算機形成危害,只能接收通過選取的鏈接
external(外部) 特別是爲路由器啓用了假裝功能的外部網。您不能信任來自網絡的其餘計算,不能相信它們不會對您的計算機形成危害,只能接收通過選擇的鏈接
dmz(非軍事區) 用於您的非軍事區內的電腦,此區域內可公開訪問,能夠有限地進入您的內部網絡,僅僅接收通過選擇的鏈接
work(工做) 用於工做區。您能夠基本相信網絡內的其餘電腦不會危害您的電腦。僅僅接收通過選擇的鏈接
home(家庭) 用於家庭網絡。您能夠基本信任網絡內的其餘計算機不會危害您的計算機。僅僅接收通過選擇的鏈接
internal(內部) 用於內部網絡。您能夠基本上信任網絡內的其餘計算機不會威脅您的計算機。僅僅接受通過選擇的鏈接
trusted(信任) 可接受全部的網絡鏈接

Firewalld數據處理流程

  • 檢查數據來源的源地址
    • 若源地址關聯到特定的區域,則執行該區域所指定的規則
    • 若源地址未關聯到特定的區域,則使用傳入網絡接口的區域並執行該區域所指定的規則
    • 若網絡接口未關聯到特定的區域,則使用默認區域並執行該區域所指定的規則

Firewalld防火牆的配置方法

運行時配置

  • 實時生效,並持續至Firewalld從新啓動或從新加載配置
  • 不中斷現有鏈接
  • 不能修改服務配置

永久配置

  • 不當即生效,除非Firewalld從新啓動或從新加載配置
  • 中斷現有鏈接
  • 能夠修改服務配置

Firewall-config圖形工具

  • 運行時配置/永久配置

詳述CentOS 7中Firewalld防火牆基礎

  • 從新加載防火牆
    • 更改永久配置並生效

詳述CentOS 7中Firewalld防火牆基礎

  • 關聯網卡到指定區域

詳述CentOS 7中Firewalld防火牆基礎

  • 修改默認區域

詳述CentOS 7中Firewalld防火牆基礎

  • 鏈接狀態

詳述CentOS 7中Firewalld防火牆基礎

  • 「區域」選項卡
    • 「服務」子選項卡
    • 「端口」子選項卡
    • 「協議」子選項卡
    • 「源端口」子選項卡,
    • 「假裝」子選項卡
    • 「端口轉發」子選項卡
    • "ICMP過濾器」子選項卡

詳述CentOS 7中Firewalld防火牆基礎

  • "服務」選項卡
    • 「模塊」子選項卡
    • 「目標地址」子選項卡
      詳述CentOS 7中Firewalld防火牆基礎

Firewall-cmd命令行工具

  • 啓動、中止、查看 firewalld 服務命令行

    systemctl start firewalld      //啓動 firewalld
    systemctl enable firewalld     //設置 firewalld 爲開機自啓動
    systemctl status firewalld     //查看 firewalld 狀態信息
    firewall-cmd --state           //查看 firewalld 狀態信息
    systemctl stop firewalld       //中止 firewalld 
    systemctl disable firewalld    //設置 firewalld 開機不自啓動
  • 獲取預約義信息設計

    • firewall-cmd 預約義信息主要包括三種:可用的區域、可用的服務以及可用的 ICMP 阻塞類型
    firewall-cmd --get-zones      //顯示預約義的區域 
    firewall-cmd --get-service    //顯示預約義的服務
    firewall-cmd --get-icmptypes  //顯示預約義的 ICMP 類型
    • firewall-cmd --get-icmptypes 命令的執行結果中各類阻塞類型的含義

    destination-unreachable:目的地址不可達。 code

    echo-reply:應答迴應(pong)。

    parameter-problem:參數問題。

    redirect:從新定向。

    router-advertisement:路由器通告。

    router-solicitation:路由器徵尋。

    source-quench:源端抑制。

    time-exceeded:超時。

    timestamp-reply:時間戳應答迴應。

    timestamp-request:時間戳請求。

  • 區域管理

    • 使用 firewall-cmd 命令能夠實現獲取和管理區域,爲指定區域綁定網絡接口等功能。
選項 說明
--get -default -zone 顯示網絡鏈接或接口的默認區域
--set -default -zone=&lt;zone&gt; 設置網絡鏈接或接口的默認區域
--get -active -zones 顯示已激活的全部區域
--get- zone -of -interface=&lt;interface&gt; 顯示指定接口綁定的區域
--zone=&lt;zone&gt; --add-interface=&lt;interface&gt; 爲指定接口綁定區域
--zone=&lt;zone&gt; --change-interface=&lt;interface&gt; 爲指定的區域更改綁定的網絡接口
--zone=&lt;zone&gt; --remove-interface=&lt;interface&gt; 爲指定的區域刪除綁定的網絡接口
--list-all-zones 顯示全部區域及其規則
[--zone=&lt;zone&gt;] --list-a 顯示全部指定區域的全部規則,省略--zone=&lt;zone&gt;時表示僅
  • 服務管理
    • firewalld預先定義了 很 多 服 務 ,存放在/usr/lib/firewalld/services/ 目錄中,服務經過單個的 XML 配置文件來指定,這些配置文件則按如下格式命名:service-name.xml,每一個文件對應一項具體的網絡服務,當默認提供的服務不適用或者須要自定義某項服務的端口時,咱們須要將 service配置文件放置在 /etc/firewalld/services/ 目錄中。service 配置優勢:經過服務名字來管理規則更加人性化、經過服務來組織端口分組的模式更加高效,若是一個服務使用了若干個網絡端口,則服 務的配置文件就至關於提供了到這些端口的規則管理的批量操做快捷方式。
    • firewall-cmd 命令區域中服務管理的經常使用選項說明:
選項 說明
[--zone=&lt;zone&gt;] --list-services 顯示指定區域內容許訪問的全部服務
[--zone=&lt;zone&gt;] --add-service=&lt;service&gt; 爲指定區域設置容許訪問的某項服務
[--zone=&lt;zone&gt;] --remove-service=&lt;service&gt; 刪除指定區域已設置的容許訪問的某項服務
[--zone=&lt;zone&gt;] --list-ports 顯示指定區域內容許訪問的全部端口號
[--zone=&lt;zone&gt;] --add-port=&lt;portid&gt;[-&lt;portid&gt;]/&lt;protocol&gt; 爲指定區域設置容許訪問的某個/某段端口號 (包括協議名)
[--zone=&lt;zone&gt;] --remove-port=&lt;portid&gt;[-&lt;portid&gt;]/&lt;protocol&gt; 刪除指定區域已設置的容許訪問的端口號(包括協議名)
[--zone=&lt;zone&gt;] --list-icmp-blocks 顯示指定區域內拒絕訪問的全部 ICMP 類型
[--zone=&lt;zone&gt;] --add-icmp-block=&lt;icmptype&gt; 爲指定區域設置拒絕訪問的某項 ICMP 類型
[--zone=&lt;zone&gt;] --remove-icmp-block=&lt;icmptype&gt; 刪除指定區域已設置的拒絕訪問的某項 ICMP 類 型,省略--zone=&lt;zone&gt;時表示對默認區域操做
  • 端口管理

    • 在進行服務配置時,預約義的網絡服務能夠使用服務名配置,服務所涉及的端口就會自 動打開。可是,對於非預約義的服務只能手動爲指定的區域添加端口。
    firewall-cmd --zone=internal --add-port=443/tcp      //再internal區域打開443端口
    firewall-cmd --zone=internal --remove-port=443/tcp   //再internal區域禁用443端口
  • 兩種配置模式
    • firewall-cmd 命令工具備兩種配置模式:運行時模式(Runtime mode)表示 當前內存中運行的防火牆配置,在系統或 firewalld 服務重啓、中止時配置將失效、永久模 式(Permanent mode)表示重啓防火牆或從新加載防火牆時的規則配置,是永久存儲在配置 文件中的。
    • firewall-cmd 命令工具與配置模式相關的選項有三個:
選項 說明
--reload 從新加載防火牆規則並保持狀態信息,即將永久配置應用爲運行時配置
--permanent 帶有此選項的命令用於設置永久性規則,這些規則只有在從新啓動 firewalld 或從新加載防火牆規則時纔會生效;若不帶有此選項,表示用於設置運行時規則
--runtime-to-permanent 將當前的運行時配置寫入規則配置文件中,使之成爲永久性

/etc/firewalld/中的配置文件

  • Firewalld會優先使用/etc/firewalld/中的配置,若是不存在配置文件,則使用/usr/lib/firewalld/中的配置
  • /etc/firewalld/:用戶自定義配置文件,須要時能夠經過從/usr/lib/firewalld/中拷貝
  • /usr/lib/firewalld/:默認配置文件,不建議修改,若恢復至默認配置,可直接刪除/etc/firewalld/中的配置
相關文章
相關標籤/搜索