如何在Debian 10上使用UFW設置防火牆

正確配置的防火牆是整個系統安全的最重要方面之一。

UFW(簡單防火牆)是用於管理iptables防火牆規則的用戶友好型前端。 它的主要目標是使iptables的管理更容易,或者顧名思義,使其不複雜。

本文介紹了如何在Debian 10上使用UFW設置防火牆。

先決條件

只有root用戶或具有sudo特權的用戶才能管理系統防火牆。

安裝UFW#

輸入以下命令以安裝 ufw 包:

sudo apt updatesudo apt install ufw

檢查UFW狀態

安裝將不會自動激活防火牆,以避免服務器鎖定。 您可以通過鍵入以下內容來檢查UFW的狀態:

sudo ufw status verbose

輸出將如下所示:

Status: inactive

如果激活了UFW,則輸出將類似於以下內容:

UFW默認策略#

默認情況下,UFW阻止所有傳入連接並允許所有出站連接。 這意味着除非您專門打開端口,否則任何嘗試訪問您的服務器的人都將無法連接。 服務器上運行的應用程序和服務將能夠訪問外界。

默認策略在 /etc/default/ufw 文件,可以使用 sudo ufw default <policy> <chain> 命令。

防火牆策略是構建更詳細和用戶定義的規則的基礎。 通常,初始UFW默認策略是一個很好的起點。

應用檔案

大多數應用程序附帶一個描述服務的應用程序配置文件,並包含UFW設置。 配置文件是在 /etc/ufw/applications.d 軟件包安裝過程中的目錄。

要列出系統上可用的所有應用程序配置文件,請執行以下操作:

sudo ufw utf --help

根據系統上安裝的軟件包,輸出將類似於以下內容:

Available applications:
  DNS
  IMAP
  IMAPS
  OpenSSH
  POP3
  POP3S
  Postfix
  Postfix SMTPS
  Postfix Submission
  ...

要查找有關特定配置文件和包含的規則的更多信息,請使用 app info 命令,然後是配置文件名稱。 例如,要獲取有關OpenSSH配置文件的信息,可以使用:

sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

輸出包括配置文件名稱,標題,描述和防火牆規則。

允許SSH連接

在首先啟用UFW防火牆之前,您需要允許傳入的SSH連接。

如果要從遠程位置連接到服務器,並且在顯式允許傳入SSH連接之前啟用UFW防火牆,則將無法再連接到Debian服務器。

要將UFW防火牆配置為接受SSH連接,請運行以下命令:

sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

如果SSH服務器正在偵聽默認端口22以外的端口,則需要打開該端口。

例如,您的ssh服務器偵聽端口 7722,您將執行:

sudo ufw allow 7722/tcp

啟用UFW#

現在,UFW防火牆已配置為允許傳入SSH連接,請運行以下命令啟用它:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

將警告您啟用防火牆可能會破壞現有的ssh連接。 輸入“ y”,然後按“ Enter”。

開啟端口

根據服務器上運行的應用程序,您需要打開運行服務的端口。

以下是幾個如何允許傳入連接到某些最常見服務的示例:

打開端口80-HTTP#

允許HTTP連接:

sudo ufw allow http

而不是 http 配置文件,您可以使用端口號, 80

sudo ufw allow 80/tcp

打開端口443-HTTPS#

允許HTTPS連接:

sudo ufw allow https

您也可以使用端口號, 443

sudo ufw allow 443/tcp

打開端口8080#

如果運行Tomcat或偵聽端口的任何其他應用程序 8080 使用以下命令打開端口:

sudo ufw allow 8080/tcp

打開端口範圍

使用UFW,您還可以允許訪問端口範圍。 打開範圍時,必須指定端口協議。

例如,允許端口來自 71007200 雙方 tcpudp,運行以下命令:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

允許特定的IP地址

要允許從特定IP地址訪問所有端口,請使用 ufw allow from 命令後跟IP地址:

sudo ufw allow from 64.63.62.61

在特定端口號上允許特定IP地址

為了允許訪問特定端口,假設端口 22 在IP地址為64.63.62.61的工作機上,使用以下命令:

sudo ufw allow from 64.63.62.61 to any port 22

允許子網#

允許從IP地址的子網進行連接的命令與使用單個IP地址時的命令相同。 唯一的區別是您需要指定網絡掩碼。 例如,如果要允許訪問從192.168.1.1到192.168.1.254的IP地址到端口3360(MySQL),則可以使用以下命令:

sudo ufw allow from 192.168.1.0/24 to any port 3306

允許連接到特定的網絡接口

要允許訪問特定端口,假設端口3360僅訪問特定網絡接口 eth2, 使用 allow in on 以及網絡接口的名稱:

sudo ufw allow in on eth2 to any port 3306

拒絕連接

所有傳入連接的默認策略設置為 deny,這意味着UFW將阻止所有傳入連接,除非您專門打開連接。

假設您打開了端口 80443,並且您的服務器正受到來自 23.24.25.0/24 網絡。 拒絕來自的所有連接 23.24.25.0/24,請使用以下命令:

sudo ufw deny from 23.24.25.0/24

如果您只想拒絕訪問端口 8044323.24.25.0/24 使用:

sudo ufw deny from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443

編寫拒絕規則與編寫允許規則相同。 您只需要更換 allowdeny

刪除UFW規則

刪除UFW規則有兩種方法。 通過規則編號並通過指定實際規則。

通過規則編號刪除UFW規則比較容易,特別是如果您不熟悉UFW。

要首先按規則編號刪除規則,您需要找到要刪除的規則編號。 為此,請運行以下命令:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

要刪除規則號3(允許連接到端口8080的規則),可以使用以下命令:

sudo ufw delete 3

第二種方法是通過指定實際規則來刪除規則。 例如,如果您添加了一個規則以打開端口 8069 您可以使用以下方法將其刪除:

sudo ufw delete allow 8069

禁用UFW#

如果出於任何原因要停止UFW並停用所有運行的規則,請執行以下操作:

sudo ufw disable

以後,如果您想重新啟用UTF並激活所有規則,只需鍵入:

sudo ufw enable

重置UFW#

重置UFW將禁用UFW,並刪除所有活動規則。 如果您想還原所有更改並重新開始,這將很有幫助。

要重置UFW,只需鍵入以下命令:

sudo ufw reset

結論#

您已經了解了如何在Debian 10機器上安裝和配置UFW防火牆。 確保限制系統正常運行所必需的所有傳入連接,同時限制所有不必要的連接。

如有疑問,請在下面發表評論。

ufw防火牆iptables debian安全性

Sidebar