目錄
UFW 設定 – 如果防火牆配置不當,您的 Linux 雲端伺服器(VPS)容易受到網路攻擊。即使您的主機供應商提供了堅固的安全功能,您也必須採取額外措施來確保其安全性。
有一種有效的保護您的 Linux VPS 的方法是在 Ubuntu 中啟用 Uncomplicated Firewall。此功能有助於篩選伺服器上的惡意進出流量。
在本文章中,小編將說明如何使用 UFW 設定 進行 Ubuntu 防火牆配置並創建自定義規則。此 UFW 設定指南還將探討其重要性和最佳實踐。
了解 Ubuntu 防火牆的重要性
防火牆是一個安全系統,監控您的伺服器的出站和入站連接。它使用一組預先設定的規則來允許或阻止這些連接。
由於連接到網路的電腦可以接收和處理來自任何來源的請求,包括網路攻擊,因此安全工具至關重要。以下是擁有防火牆保護的好處:
- 網路威脅防護:防火牆會阻止網路犯罪分子用來發動駭客攻擊或註入惡意軟體的惡意連線。
- 流量過濾:VPS 使用者可以設定自訂規則,僅允許特定連線到達伺服器並阻止其他連線。
- 存取控制:系統管理員可以使用防火牆阻止傳出流量,以防止伺服器上的使用者存取潛在的惡意網站。
- 數據採集:防火牆追蹤系統事件,您可以分析這些事件以設定更合適的規則。
UFW 是用於 Linux 防火牆配置的應用程式。它預先安裝在 Ubuntu 22.04 LTS 和 Debian 10 或更新版本上,但是默認情況下是禁用的。
Uncomplicated Firewall(UFW)利用命令行界面(CLI),並使用 iptables 進行配置。iptables 是 Linux 內置的防火牆,包含表格 – 用於存儲決定如何過濾流量的規則。
它還具有名為 GUFW 的圖形用戶界面,用戶可以在其桌面環境上安裝。與此同時,UFW 命令行用法適用於像 VPS 這樣的遠端伺服器。
如何在不同的 Ubuntu 版本上設定 Ubuntu 防火牆
在 Ubuntu 中配置防火牆規則之前,我們必須啟用 UFW。雖然我們將在本教程中使用 Ubuntu 22.04,但這些 Linux 命令也應該適用於較舊的版本。
在雲端主機上配置 UFW 需要使用遠端連接 SSH (Terminal)。以下是在 TAKI Cloud 上通過 Ubuntu 系統進行操作的方法:
- 進入 TAKI Cloud 客戶服務中心 → 我的產品 & 服務。
- 在 產品 / 服務 中找到要設定的 VPS。
- 進到 VPS 產品詳情裡,找到 IP 地址使用終端機並輸入以下指令遠端連線。
- 輸入您的 SSH root 密碼。
ssh username@server-ip
如果您使用像 PuTTY 這樣的 SSH 應用程式進行連接,請將伺服器 IP 地址粘貼到指定的字段中,並使用端口 22 進行連接。在 CLI 中,輸入 root 用戶名和密碼。出於安全考慮,請注意,當您輸入密碼時,密碼不會顯示出來。
- 使用以下命令啟動 UFW:
sudo ufw enable
- 如果您收到 UFW 命令有錯誤,並顯示錯誤是未找到,則表示您的系統上未安裝防火牆。 要安裝它,請使用以下命令:
sudo apt-get install ufw
- 若要確認安裝是否成功,請使用下列命令檢查防火牆狀態:
sudo ufw status
預設 UFW 策略阻止所有傳入連接並允許傳出連接,這對於大多數用戶來說已經足夠了。 但是,如果您代管網路服務或應用程式,則必須建立自訂規則。
如何使用 UFW 設定 在 Ubuntu 上設定防火牆規則
防火牆規則是一個用於決定系統如何處理連接 – 允許或拒絕。在本部分中,我們將解釋如何基於端口、IP 地址和服務創建自定義的 UFW 規則。
使用 UFW 設定 開啟和關閉端口
端口是應用程式用來與伺服器建立連接的連接介面。
打開未使用的端口會造成安全漏洞,因為網路攻擊可能會利用它們來訪問您的伺服器。因此,在 Linux VPS 中關閉和開啟端口是提高其安全性的重要措施。
為了降低風險,用戶可以使用 UFW 設定打開和關閉端口,以控制允許哪些應用程式連接到伺服器。以下是命令語法:
打開端口
sudo ufw allow port/protocol
關閉端口
sudo ufw deny port/protocol
將 port 替換為端口編號,protocol 替換為 TCP 或 UDP。要查找您應用程序的值,請參考 IANA 的端口編號註冊表。
使用 allow 來更改默認的入站策略。例如,運行以下命令以啟用 SSH 連接的端口:
sudo ufw allow 22/tcp
要更改出站流量的默認策略,請使用 deny 選項。例如,輸入以下命令來阻止從您的伺服器到 MySQL 資料庫的連接:
sudo ufw deny 56/tcp
您也可以使用單一命令開啟或關閉連接埠範圍。 基本指令語法如下:
sudo ufw allow/deny starting_port:ending_port/protocol
例如,以下是拒絕從連接端口 300 到 310 UDP 的存取的命令:
sudo ufw deny 300:310/UDP
在 Ubuntu 防火牆上使用服務
UFW 設定 讓管理員可以透過開啟和關閉端口來管理 Ubuntu 系統上的網路服務。他們可以通過輸入服務名稱而不是指定端口來實現。
例如,HTTP 傳輸使用端口 80,而 HTTPS 連接則需要端口 443。如果您想啟用 HTTP 連接,請執行以下命令:
sudo ufw allow http
該命令將自動開啟 HTTP 端口,即 80 端口。同樣地,啟用 HTTPS 連接意味著開啟 443 端口。
拒絕或允許 IP 位址連接
UFW 設定 允許用戶拒絕對特定 IP 位址的存取。 為此,請執行以下命令:
sudo ufw deny from ipaddress
如果要允許從指定 IP 位址進行訪問,請將拒絕替換為允許,如下所示:
sudo ufw allow from 192.168.100.3
您還可以建立一條適用於特定網路接口的規則。例如,這條規則的語法允許一個 IP 地址僅連接到特定的端口:
sudo ufw allow from ipaddress to any port portnumber
以下是一個範例命令,僅在使用連接埠位 88 時才允許 IP 位址連接到您的伺服器:
sudo ufw allow from 192.168.100.3 to any port 88
或者,使用此命令阻止 IP 位址在使用指定連接埠位時連接到您的伺服器:
sudo ufw deny from 192.168.100.3 to any port 88
刪除 Ubuntu 防火牆上的規則
若要在 Ubuntu 中刪除防火牆規則,請使用刪除命令。 用法如下:
sudo ufw delete rule_number
由於我們要刪除防火牆規則需要其編號標籤,因此請使用以下命令列出它們:
sudo ufw status numbered
現在,將佔位符替換為適當的規則編號。 例如,以下命令將刪除第2條規則。
sudo ufw delete 2
或者,您可以將防火牆配置重設為預設規則。 為此,請使用以下命令將傳入和傳出設定為預設值:
傳入預設值
sudo ufw default deny incoming
傳出預設值
sudo ufw default allow outgoing
若要完全刪除 UFW 規則並重新開始,請使用重設指令:
sudo ufw reset
如果您想了解更多命令,請執行以下命令來瀏覽 UFW 手冊:
sudo ufw -help
TAKI Cloud 的 VPS 具有內建防火牆管理功能,可透過 TAKI Cloud 客戶服務中心存取。 它提供圖形使用者介面來幫助使用者輕鬆配置防火牆規則。 選擇您的 VPS 並導航至防火牆部分:
UFW 設定 最佳實踐
在這一部分,我們將解釋 Ubuntu 防火牆的最佳實踐,以幫助您有效地利用該程序來提高 VPS 的安全性。
啟用 UFW 日誌記錄
UFW 日誌記錄允許系統管理員查看存儲在 iptables 中的所有入站或出站封包。它提供有關封包的詳細資訊,包括它們的來源、目的地和傳輸協議。
此功能幫助用戶排解連接問題並識別潛在的安全威脅。但是,它默認為禁用狀態。要檢查其狀態,請使用以下命令:
sudo ufw status verbose
要啟用它,請執行以下命令:
sudo ufw logging on
使用相同指令的 off 值來停用 UFW 日誌記錄。 您可以執行不同的命令來查看 UFW 日誌,但最簡單的方法是使用 less。 這是命令:
sudo less /var/log/ufw*
上面的指令假定 UFW 日誌的預設目錄。 如果您將防火牆日誌儲存在其他資料夾中,請相應地變更檔案路徑。
使用 IPv6 與 UFW
隨著 IPv4 IP 地址的耗盡,IPv6 在現代網路中變得越來越重要。UFW 允許您過濾 IPv6 以提高 VPS 的安全性,但此功能默認為禁用狀態。
要啟用它,請使用以下命令使用像 Nano 這樣的文本編輯器更改 UFW 配置文件:
sudo nano /etc/default/ufw
找到 IPv6 並將值從 no 變更為 yes。 按 Ctrl + X 退出 Nano,然後按 Y 確認更改。 若要停用它,請將值變更回 no。
檢查 UFW 與 Docker 是否相容
Docker 可能會與 UFW 發生衝突,因為它可以修改 iptables 中的防火牆規則。無論規則如何,UFW 都不會阻止 Docker 容器中的應用程式連接到被阻止的端口。
由於 UFW 不會顯示端口是開啟的,這種不相容性會使您的伺服器面臨安全風險。有多種方式可以匹配 UFW 和 Docker 的規則,但使用 ufw-docker 實用程式是最簡單的。
打開終端機 (Terminal) 或您的 SSH client 端,並按照以下步驟安裝和使用該工具:
- 輸入以下命令以從儲存庫下載腳本:
sudo wget -O /usr/local/bin/ufw-docker \ https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker
sudo chmod +x /usr/local/bin/ufw-docker
- 使用以下命令安裝該實用程式:
sudo install ufw-docker
- 使用以下命令重新啟動 UFW:
sudo systemctl restart ufw
- 運行 ufw-docker 命令為 Docker 容器打開端口,如下方演示:
sudo ufw-docker allow httpd 80
設置 UFW 應用程式配置文件
許多應用程式需要多個網路接口,逐個允許它們可能很繁瑣。UFW 允許您使用一個命令針對應用程式的端口輕鬆設置規則:
sudo ufw allow app_name
將 app_name 替換為您的應用程式設定檔。 例如,以下是允許傳入 SSH 連線的指令:
sudo ufw allow ssh
您也可以使用以下指令允許從來源 IP 位址到特定目標的 port:
sudo ufw allow from source_IP to destination_IP app app_name
UFW 預設預先配置了應用程式設定文件,您可以使用以下命令取得該設定檔:
sudo ufw app list
- 執行 touch 指令在 UFW 應用程式資料夾中建立一個空檔:
sudo touch /etc/ufw/applications.d/file_name
- 使用 Nano 執行以下命令開啟檔案:
sudo nano /etc/ufw/applications.d/file_name
- 輸入以下程式碼來設定您的應用程式設定檔。 將 ports/protocol 替換為適當的值:
[app_name]
title=application_title
description=application_description
ports=ports/protocol|ports/protocol|ports/protocol
- 按 Ctrl + X 關閉 Nano,按 Y 確認變更。
- 使用以下指令更新 UFW 中的應用程式定義:
sudo ufw app update appname
sudo ufw app info appname
在設置編碼中使用逗號可以指定具有相同協議的多個 port。對於 port 範圍,請使用冒號而不是破折號。請參考以下演示:
ports=80,443,8140/tcp|800:1500/udp
遵循防火牆之外的其他安全實踐
啟用 UFW 是許多重要的 Ubuntu 安全措施之一。由於存在各種網路威脅,系統管理員必須使用其他安全實踐來加強防火牆。
以下是您應該在 VPS 主機環境中實施的幾項額外安全實踐:
- 定期更新:舊的軟件包存在漏洞,使您的 VPS 暴露於網絡威脅之中。為了最小化風險,定期更新您的 VPS 軟件並啟用 cron 任務來自動化此過程。
- 更改 SSH 端口:SSH 連接默認使用端口 22,黑客經常利用此端口來訪問您的服務器。更改 SSH 端口有助於提高 VPS 的安全性。
- 使用 SSH 金鑰:SSH 金鑰是連接到您的 VPS 的附加安全憑證。它們比密碼更長且更複雜,因此更安全。
- 禁用 root 登錄:root 用戶可以修改系統的任何方面,使其成為黑客的常見目標。為了保護您的 VPS,禁用 root 登錄並創建具有超級用戶權限的替代用戶角色。
- 安裝 IDS/IPS 工具:入侵檢測和防禦系統讓您可以快速確定惡意網絡流量的來源,您可以使用 UFW 阻止它。要了解有關如何安裝此工具的更多信息,請查看我們在 Ubuntu 上設置 Suricata 的教程。
結論
當 VPS 系統配置不當時,容易受到網路威脅的影響。提高 Ubuntu 伺服器安全性的有效方法之一是安裝 Uncomplicated Firewall(UFW),它可以過濾出站和入站連接。
UFW 默認已安裝,但用戶必須通過終端機 (Terminal) 或類似 PuTTY 的 SSH client端手動啟用它。啟用後,您可以編輯默認策略,根據端口、IP 地址或服務過濾連接。
此外,請遵循防火牆的最佳實踐,以提高 Ubuntu 網路安全性。例如,啟用日誌記錄以詳細跟踪流量,檢查 UFW 與 Docker 的相容性,設置應用程序配置文件,以及通過使用 SSH 金鑰等其他安全實踐來加強防火牆。
了解有關如何保護 Linux 的更多資訊
Ubuntu 防火牆常見問題解答
在本文章中,我們將回答有關在 Ubuntu 中設定 UFW 的幾個常見問題。
是的,UFW 是在 Ubuntu 8.04 LTS 中引入的,並且在更高版本(包括 22.04)中預先安裝了它。但是,它在預設設定下被禁用。
要啟用它,請輸入sudo ufw enable 指令。預設情況下,其他 UFW 功能也被停用,例如 IPv6 支援和日誌記錄。
UFW 有多種用於不同目的的命令。例如,sudo ufw status 指令檢查防火牆是否處於作用中狀態。
其他重要指令包括 sudo ufw deny 和 sudo ufw allowed, 它們會更改傳入和傳出連線的預設設定。輸入 sudo ufw -help 以列出所有指令。
無論 Ubuntu 版本如何,UFW 指令大多相同。但是,如果您使用早於 18.04 TLS 的版本,則無法執行它們。
UFW 是 Ubuntu 防火牆的命令列版本,而 GUFW 具有圖形使用者介面。兩者的工作原理相似,都可以配置系統的防火牆。
GUFW 具有視覺化介面,對於初學者來說更容易使用。然而,UFW 對於遠端伺服器來說更方便,因為它使用 SSH。