next up previous contents
Next: firewall-cmd 命令 Up: Netfilter Previous: Netfilter   Contents

前言

  1. Linux 核心包含一個功能強大的網路過濾子系統 netfilter。
  2. netfilter 子系統允許核心模組檢查每一個傳送到系統的封包,因此可以在送到用戶端時對封包修改、拒絕、丟棄。
  3. RHEL/CentOS 6 使用 iptables 與核心的 netfilter 互動,但 iptables 只能調整 IPV4 的防火牆規則,對於 IPV6 及則必須使用 ip6tables。
  4. RHEL/CentOS 7 使用新的方法 firewalld 與核心的 netfilter 互動,firewalld 是一個系統 daemon,它可以監看並修改系統的防火牆規則,且同時適用於 IPV4 與 IPV6。
  5. firewalld 將所有網路傳輸分成不同的 zones。運作方式流程為:
    1. 進入系統的封包,先檢查來源 IP。
    2. 如果來源 IP 有綁定指定的 zone,就使用該 zone 的規則。
    3. 如果來源 IP 沒有綁定某一個 zone,就使用進入系統使用的網路介面 (network interface) 連結的 zone。
    4. 如果網路介面沒有連結任何一個 zone,就使用管理者預設的 zone。
  6. 系統預先定義的 zones 如下:
    Zone name Default configuration
    trusted 完全開放,允許所有進入的封包。
    home 只開放 ssh, mdns, ipp-client, samba-client, or dhcpv6-client 等服務及相開的送出封包,其餘封包皆拒絕。
    internal 與 home zone 完全相同。
    work 只開放 ssh, ipp-client, or dhcpv6-client 等服務及相開的送出封包,其餘封包皆拒絕。
    public 只開放 ssh or dhcpv6-client 等服務及相開的送出封包,其餘封包皆拒絕。新增的網路介面預設使用這個 zone。
    external 只開放 ssh 服務及相開的送出封包,其餘封包皆拒絕,送出的 IPv4 封包經由這個 zone 轉傳,IP 會被偽裝為送出的網路介面的 IP。
    dmz 只開放 ssh 服務及相開的送出封包,其餘封包皆拒絕。
    block 拒絕所有封包。
    drop 丟棄所有封包。
  7. 防火牆設定方式:
    1. 直接編輯目錄 /etc/firewalld/ 下的設定檔。
    2. 使用圖形化工具 firewall-config。
    3. 使用文字介面命令 firewall-cmd。
  8. 雖然 firewall-cmd 命令參數多又長,但因此命令有參數補齊功能,使用 TAB 鍵就可顯示可用參數及補齊,建議還是使用文字介面命令工具 firewall-cmd 比較穩定且方便。



















next up previous contents
Next: firewall-cmd 命令 Up: Netfilter Previous: Netfilter   Contents
De-Yu Wang 2018-09-07