如何在Linux系統中設定防火牆?


防火牆是每個現代計算機系統不可或缺的組成部分,它保護網路並防止非法訪問。本文將深入探討Linux防火牆領域,學習如何配置防火牆。

在我們深入探討在Linux中建立防火牆的技術細節之前,讓我們先澄清一下什麼是防火牆以及為什麼它如此重要!

防火牆是一種網路安全裝置,它根據預定義的安全規則監控和限制網路流量。防火牆的主要功能是在允許授權訪問的同時阻止對計算機系統或網路的未授權訪問。它像門衛一樣,控制誰以及什麼可以進入和離開網路。

在Linux中配置防火牆主要有兩個選擇:iptables和firewalld。

iptables是一個用於管理Linux核心防火牆的命令列程式。多年來,它一直是Linux伺服器的預設防火牆,並且至今仍在廣泛使用。

firewalld是管理Linux防火牆的一種更現代的方法。它是一個動態守護程序,提供了一個D-Bus介面用於管理防火牆規則,許多Linux發行版都使用它作為預設防火牆。

現在讓我們深入瞭解使用iptables和firewalld在Linux中設定防火牆所需的步驟。

使用iptables建立防火牆

  • 要開始設定iptables防火牆,首先確保它已安裝在您的系統上。雖然大多數Linux發行版中都包含iptables,但最好還是仔細檢查一下。

  • 開啟終端並輸入以下命令以檢視iptables是否已安裝在您的系統上:sudo iptables -L

  • 如果您的機器上尚未安裝iptables,請使用以下命令安裝它:sudo apt-get install iptables

  • 驗證iptables已安裝在您的系統上後,您可以開始設定防火牆。

  • iptables配置的第一步是為傳入和傳出流量建立預設策略。預設策略決定了對與防火牆中任何規則都不匹配的資料包執行的操作。

  • 要將預設策略設定為丟棄所有傳入和傳出流量,請執行以下命令:

  • sudo iptables -P INPUT DROP
    sudo iptables -P OUTPUT DROP
    
  • 設定預設策略後,您可以開始新增規則以允許或阻止特定型別的流量。向iptables新增規則的基本語法如下:

  • sudo iptables -A [CHAIN] -p [PROTOCOL] --dport [PORT] -j [ACTION]
    

讓我們分解規則的組成部分:

  • 鏈(CHAIN) - 指定將新增規則的防火牆鏈。iptables中的三個預設鏈是INPUT、OUTPUT和FORWARD。

  • 協議(PROTOCOL) - 指定流量的協議。常用協議包括TCP、UDP和ICMP。

  • 埠(PORT) - 指定流量的埠號。

  • 動作(ACTION) - 指定對與規則匹配的流量應執行的操作。常用操作包括ACCEPT、DROP和REJECT。

例如,以下命令將接受INPUT鏈上的傳入SSH流量(埠22):

sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT

同樣,以下命令將允許OUTPUT鏈上的HTTP流量(埠80):

sudo iptables -A OUTPUT -p tcp —dport 80 -j ACCEPT

使用firewalld建立防火牆

在Linux中設定防火牆的另一個選項是使用firewalld。firewalld是一個現代的動態守護程序,一些Linux發行版(如CentOS、Fedora和Red Hat Enterprise Linux)使用它作為預設的防火牆管理工具。

使用firewalld配置防火牆的第一步是檢視它是否已安裝在您的系統上。

大多數最新的Linux發行版都預裝了firewalld,但是您可以透過在終端中輸入以下命令來驗證它的存在:

sudo firewall-cmd —state

如果您的機器上尚未安裝firewalld,請使用以下命令安裝它:sudo yum install firewalld

確認firewalld已安裝在您的系統上後,您可以開始配置防火牆。

配置firewalld的第一步是檢查預設區域。預設區域是一組預定義的規則,用於管理系統上允許的流量。要檢查預設區域,請執行以下命令:

sudo firewall-cmd --get-default-zone

預設情況下,預設區域設定為“public”。您可以透過執行以下命令更改預設區域:

sudo firewall-cmd --set-default-zone=zone

其中“zone”是您想設定為預設區域的名稱。

下一步是向防火牆新增規則以允許或阻止特定型別的流量。Firewalld使用稱為“服務”的概念將相關的埠和協議組合在一起。一些常用的服務包括“http”、“https”、“ssh”和“smtp”。

例如,要允許傳入HTTP流量,可以使用以下命令:

sudo firewall-cmd --add-service=http --permanent

“--permanent”選項使規則永久生效,因此它會在重啟後保留。如果您不使用“--permanent”選項,則該規則將在系統重啟時被刪除。

您還可以使用“--add-port”選項允許特定埠。例如,以下命令允許埠22上的傳入SSH流量:

sudo firewall-cmd --add-port=22/tcp --permanent

新增必要的規則後,請務必重新載入防火牆以使更改生效:

sudo firewall-cmd --reload

更新於:2023年2月27日

1K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.