如何在 CentOS 7 上啟用和使用 firewalld?
防火牆是任何計算機系統的重要組成部分,有助於防止未經授權的訪問和惡意攻擊。在 CentOS 7 上,firewalld 是一個流行的防火牆管理工具,它提供了一種簡單直觀的方式來配置和管理防火牆規則。本文將討論如何在 CentOS 7 上啟用和使用 firewalld。
在 CentOS 7 上啟用 Firewalld
CentOS 7 上預設情況下未啟用 firewalld 服務。因此,在使用它之前,我們需要啟用並啟動該服務。
要啟用並啟動 firewalld 服務,我們需要在終端中執行以下命令:
sudo systemctl enable firewalld sudo systemctl start firewalld
這些命令將在 CentOS 7 系統上啟用並啟動 firewalld 服務。(此處應補充具體的命令,例如 `sudo systemctl enable firewalld` 和 `sudo systemctl start firewalld`)
在 CentOS 7 上使用 Firewalld
啟用並啟動 firewalld 服務後,我們可以開始使用它來配置防火牆規則。
要列出所有可用的防火牆區域,我們可以執行以下命令:
sudo firewall-cmd --get-zones
此命令將列出 CentOS 7 系統上所有可用的防火牆區域,例如 public、home、work 和 trusted。(此處應補充具體的命令,例如 `sudo firewall-cmd --get-active-zones`)
要檢查當前活動的區域,我們可以執行以下命令:
sudo firewall-cmd --get-default-zone
此命令將顯示 CentOS 7 系統上當前活動的防火牆區域。(此處應補充具體的命令,例如 `sudo firewall-cmd --get-active-zones`)
要向防火牆新增新服務,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-service=http --permanent
此命令將 HTTP 服務新增到 public 防火牆區域並使規則永久生效,這意味著即使在系統重新啟動後,該規則也將被儲存並應用。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-service=http --zone=public` )
要從防火牆中刪除服務,我們可以執行以下命令:
sudo firewall-cmd --zone=public --remove-service=http --permanent
此命令將從 public 防火牆區域刪除 HTTP 服務並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --remove-service=http --zone=public`)
要重新載入防火牆規則,我們可以執行以下命令:
sudo firewall-cmd --reload
此命令將重新載入防火牆規則並應用我們所做的任何更改。(此處應補充具體的命令,例如 `sudo firewall-cmd --reload`)
除了上面提到的基本命令外,firewalld 還提供了許多其他選項,我們可以使用它們來配置和管理防火牆規則。以下是一些我們可以與 CentOS 7 上的 firewalld 一起使用的其他有用命令:
要列出所有活動的防火牆規則,我們可以執行以下命令:
sudo firewall-cmd --list-all
此命令將顯示 CentOS 7 系統上所有活動的防火牆規則。(此處應補充具體的命令,例如 `sudo firewall-cmd --list-all` 或其他相關命令)
要向防火牆新增埠,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
此命令將埠 80/tcp 新增到 public 防火牆區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-port=80/tcp --zone=public`)
要從防火牆中刪除埠,我們可以執行以下命令:
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
此命令將埠 80/tcp 從 public 防火牆區域刪除並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --remove-port=80/tcp --zone=public`)
要阻止 IP 地址或 IP 地址範圍,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" reject' --permanent
此命令將阻止 IP 地址 192.168.1.10 訪問 public 防火牆區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" reject' --zone=public`)
要允許 IP 地址或 IP 地址範圍,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept' --permanent
此命令將允許 IP 地址 192.168.1.10 訪問 public 防火牆區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept' --zone=public`)
firewalld 還支援管理網路介面、建立和管理自定義區域以及管理服務和應用程式。以下是一些我們可以與 CentOS 7 上的 firewalld 一起使用的其他命令:
要列出所有網路介面,我們可以執行以下命令:
sudo firewall-cmd --get-interfaces
此命令將顯示 CentOS 7 系統上所有網路介面。(此處應補充具體的命令,例如 `ip link show` 或 `ifconfig`)
要向防火牆新增網路介面,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-interface=eth0 --permanent
此命令將網路介面 eth0 新增到 public 防火牆區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-interface=eth0 --zone=public`)
要從防火牆中刪除網路介面,我們可以執行以下命令:
sudo firewall-cmd --zone=public --remove-interface=eth0 --permanent
此命令將網路介面 eth0 從 public 防火牆區域刪除並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --remove-interface=eth0 --zone=public`)
要建立一個自定義區域,我們可以執行以下命令:
sudo firewall-cmd --permanent --new-zone=myzone
此命令將建立一個名為 myzone 的新自定義區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --new-zone=myzone --description="My custom zone"`)
要管理服務或應用程式,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --remove-service=http --permanent
這些命令將向 public 防火牆區域新增或刪除 HTTP 服務並使規則永久生效。(此處應補充具體的命令,類似於第51和53條)
firewalld 還支援管理 ICMP(網際網路控制訊息協議)資料包、管理源埠和目標埠以及配置豐富的規則。以下是一些我們可以與 CentOS 7 上的 firewalld 一起使用的其他命令:
要管理 ICMP 資料包,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-icmp-block-inversion --permanent sudo firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
這些命令將允許傳入的 ICMP 資料包進入 public 防火牆區域並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-icmp-block-inversion=no --zone=public` 允許所有ICMP,並根據需要新增更具體的規則)
要管理源埠和目標埠,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port port="22" protocol="tcp" accept' --permanent sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" destination address="192.168.1.10" port port="22" protocol="tcp" accept' --permanent
這些命令將允許 IP 地址 192.168.1.10 上的 22 埠(SSH)的傳入或傳出流量並使規則永久生效。(此處應補充具體的命令,例如使用 `--add-rich-rule` 指定更具體的規則)
要配置豐富的規則,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" accept' --permanent
此命令將允許 IP 地址範圍 192.168.1.0/24 上的 80 埠(HTTP)的傳入流量並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'` )
firewalld 還允許我們管理埠轉發和偽裝。以下是一些我們可以與 CentOS 7 上的 firewalld 一起使用的其他命令:
要管理埠轉發,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
此命令將把 80 埠上的傳入流量轉發到 8080 埠並使規則永久生效。(此處應補充具體的命令,例如使用 `--add-forward-port` )
要管理偽裝,我們可以執行以下命令:
sudo firewall-cmd --zone=public --add-masquerade --permanent
此命令將為 public 防火牆區域啟用偽裝並使規則永久生效。(此處應補充具體的命令,例如 `sudo firewall-cmd --permanent --direct --add-masquerade --zone=public` )
結論
firewalld 是一個優秀的防火牆管理工具,它提供了一種簡單直觀的方式來配置和管理 CentOS 7 上的防火牆規則。在本文中,我們討論瞭如何在 CentOS 7 上啟用和使用 firewalld。透過遵循上述步驟,我們可以輕鬆配置和管理 CentOS 7 系統上的防火牆規則,並保護它免受未經授權的訪問和惡意攻擊。