Ubuntu 18.04 LTS 系統中已經默認附帶了 UFW 工具,如果您的系統中沒有安裝,可以在「終端」中執行如下命令進行安裝:
sudo apt install ufw
檢查UFW狀態
sudo ufw status verbose
無論您使用的是 Ubuntu 18.04 系統附帶還是剛手動安裝的 UFW,默認都是禁用狀態,所以輸出是「不活動」
UFW默認策略
防火牆策略是構建用戶自定義規則的基礎,在絕大多數情況下,初始的 UFW 默認策略就是一個很好的起點。
而默認情況下,UFW 將阻止所有傳入連接並允許所有傳出連接。也就是說,除非您專門打開特定端口,否則任何嘗試訪問您的服務器的人都無法連接,但服務器上運行的應用程序和服務卻能夠對外訪問。
UFW 默認策略在 /etc/default/ufw 文件中進行定義,可以使用 sudo ufw default 命令對策略進行更改。
打開80端口——HTTP
sudo ufw allow http
也可以直接指定端口號 80:
sudo ufw allow 80/tcp
打開443端口——HTTPS
sudo ufw allow https
也可以直接指定端口號 443:
sudo ufw allow 443/tcp
允許端口范圍
在使用 UFW 的端口范圍時,必需指定 tcp 或 udp 協議。例如,要開啟服務器上 7100 到 7200 的 tcp 和 udp 端口,可以運行以下命令:
sudo ufw allow 7100:7200/tcp sudo ufw allow 7100:7200/udp
允許特定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 端口,則可以使用以下命令:
sudo ufw deny from 23.34.45.0/24 to any port 80 sudo ufw deny from 23.34.45.0/24 to any port 443
編寫拒絕規則與編寫允許規則相同,您只需要將 allow 替換為 deny 就行
刪除UFW策略
對新手用戶而言,通過規則編號來刪除特定規則比較好,不過在此之前需要先用命令列出規則編號的數字:
sudo ufw status numbered
例如要刪除開放 8080 端口的規則 4 可以使用如下命令:
sudo ufw delete 4
例如要刪除打開8069 端口的規則,可以使用如下命令:
sudo ufw delete allow 8069
禁用UFW
sudo ufw disable
重置UFW
sudo ufw reset