如何在Ubuntu 18.04 LTS上使用UFW設置防火牆

正確配置防火牆是整個系統安全中最重要的方面之一。默認情況下,Ubuntu 18.04 LTS 附帶了一個名爲 UFW(Uncomplicated Firewall)的防火牆配置工具,UFW 是一個「用戶友好」的前端,可以用於管理 iptables 防火牆規則,其主要目的就是讓管理 iptables 更加輕鬆容易。

安裝UFW

Ubuntu 18.04 LTS 系統中已經默認附帶了 UFW 工具,如果您的系統中沒有安裝,可以在「終端」中執行如下命令進行安裝:

sudo apt install ufw

檢查UFW狀態

安裝完成後,您可以使用以下命令檢查 UFW 的狀態:

sudo ufw status verbose

無論您使用的是 Ubuntu 18.04 系統附帶還是剛手動安裝的 UFW,默認都是禁用狀態,所以輸出是「不活動」:

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

UFW默認策略

防火牆策略是構建用戶自定義規則的基礎,在絕大多數情況下,初始的 UFW 默認策略就是一個很好的起點。

而默認情況下,UFW 將阻止所有傳入連接並允許所有傳出連接。也就是說,除非您專門打開特定端口,否則任何嘗試訪問您的服務器的人都無法連接,但服務器上運行的應用程序和服務卻能夠對外訪問。

UFW 默認策略在 /etc/default/ufw 文件中進行定義,可以使用 sudo ufw default 命令對策略進行更改。

應用程序策略

當您使用 apt 安裝軟件包時,應用程序配置文件就會添加到 /etc/ufw/applications.d 目錄當中,該目錄主要用於描述服務存放 UFW 設置

我們可以使用以下命令列出所有應用程序配置策略:

sudo ufw app list

根據當前系統上已安裝的軟件包,輸出類似於:

如果要查找有關配置文件和包含規則的更多信息,可以使用類似以下命令:

sudo ufw app info 'Nginx Full'

從上面的輸出可以看出「Nginx Full」配置文件會打開 80 和 443 端口 。

允許SSH連接

在服務器上正式啓用 UFW 防火牆之前,需要事先添加允許 SSH 連接的傳入規則。不然 UFW 啓用之後 SSH 連不上了不要跑來鬧哦……

要配置 UFW 防火牆以允許傳入 SSH 連接,請鍵入以下命令:

sudo ufw allow ssh

如果您的 SSH 端口是自定義的,沒使用默認的 22 端口,可以通過如下命令偵聽並允許該端口上的連接,例如 4422 端口:

sudo ufw allow 4422/tcp

啓用UFW

如果您的 UFW 防火牆已配置爲允許傳入 SSH 連接,則可以執行以下命令啓用 UFW:

sudo ufw enable

如果看到啓用防火牆可能會中斷現有的 ssh 連接的警告,只需鍵入 y 同意並按「回車」鍵即可。

允許偵聽傳入端口連接

根據 Ubuntu 服務器上運行的應用程序和特定需要,您可能需要允許其他端口的傳入連接。下面系統極客將演示如何允許常見服務的示例。

打開80端口——HTTP

可以使用以下命令允許 HTTP 連接:

sudo ufw allow http

也可以直接指定端口號 80:

sudo ufw allow 80/tcp

或者也可以使用應用程序配置文件,在本例中爲「Nginx HTTP」:

sudo ufw allow 'Nginx HTTP'

打開443端口——HTTPS

可以使用以下命令允許 HTTPS 連接:

sudo ufw allow https

也可以直接指定端口號 443:

sudo ufw allow 443/tcp

或者也可以使用應用程序配置文件,在本例中爲「Nginx HTTPS」:

sudo ufw allow 'Nginx HTTPS'

打開8080端口

如果運行 Tomcat 或使用偵聽 8080 端口的應用程序,可以執行以下命令允許傳入連接:

sudo ufw allow 8080/tcp

允許端口範圍

除允許單個端口連接之外,UFW 還允許直接配置端口範圍。在使用 UFW 的端口範圍時,必需指定 tcp 或 udp 協議。例如,要開啓服務器上 7100 到 7200 的 tcp 和 udp 端口,可以運行以下命令:


 
  1. sudo ufw allow 7100:7200/tcp
  2. sudo ufw allow 7100:7200/udp

允許特定IP地址

如果您要允許某個 IP 地址的所有端口訪問,可以使用如下命令:

sudo ufw allow from 123.123.123.123

允許子網

如果要允許特定子網範圍的計算機對服務器某個端口的訪問,例如:允許從 192.168.1.1 到 192.168.1.254 網段到服務器 3306(MySQL)端口的訪問,可以執行如下命令:

sudo ufw allow from 192.168.1.0/24 to any port 3306

拒絕連接

前面已經介紹過,傳入連接的默認策略都被設置爲拒絕。假設您打開了 80 和 443 端口,而服務器又受到來自 23.34.45.0/24 的攻擊,可以通過如下命令拒絕該網絡的所有連接:

sudo ufw deny from 23.34.45.0/24

如果只想拒絕訪問 80 和 443 端口,則可以使用以下命令:


 
  1. sudo ufw deny from 23.34.45.0/24 to any port 80
  2. sudo ufw deny from 23.34.45.0/24 to any port 443

編寫拒絕規則與編寫允許規則相同,您只需要將 allow 替換爲 deny 就成。

刪除UFW策略

我們可以根據規則編號指定實際規則這 2 種方式來刪除 UFW 規則。

對新手用戶而言,通過規則編號來刪除特定規則比較好,不過在此之前需要先用命令列出規則編號的數字:

sudo ufw status numbered

例如要刪除開放 8080 端口的規則 4 可以使用如下命令:

sudo ufw delete 4

第二種方法是通過指定實際規則來進行刪除操作,例如要刪除打開8069 端口的規則,可以使用如下命令:

sudo ufw delete allow 8069

禁用UFW

如果想要停止使用 UFW 並停用所有規則,可以直接選擇禁用 UFW:

sudo ufw disable

重置UFW

在重置 UFW 時,系統會禁用 UFW 並刪除所有活動規則。如果您想要還原所有更改並重新開始,可以使用如下命令:

sudo ufw reset

更多優質技術文章閱讀,IEEE、萬方文獻及國內外專利下載,請關注微信公衆號IEEE

轉自:https://www.sysgeek.cn/ubuntu-18-04-ufw/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章