新聞中心
正確配置的防火墻是整個系統(tǒng)安全性最重要的方面之一。 默認情況下,ubuntu附帶一個名為UFW(簡單防火墻)的防火墻配置工具。UFW是管理iptables防火墻規(guī)則的一個用戶友好的前端,它的主要目標是使管理iptables更容易,或者如其名所說,簡單。

在句容等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網站設計制作、網站設計 網站設計制作按需網站制作,公司網站建設,企業(yè)網站建設,品牌網站設計,網絡營銷推廣,成都外貿網站建設,句容網站建設費用合理。
先決條件
安裝UFW
ufw防火墻應該默認安裝在Ubuntu 18.04中,但是如果它沒有安裝在你的系統(tǒng)上,你可以通過鍵入以下命令來安裝它:
sudo apt install ufw
檢查UFW狀態(tài)
安裝完成后,您可以使用以下命令檢查UFW的狀態(tài):
sudo ufw status verbose
UFW在默認情況下是禁用的,如果您剛剛安裝或從未激活過UFW,則輸出如下所示:
輸出
Status: inactive
如果UFW被激活,輸出將如下所示:
狀態(tài):激活
日志: on (low)
默認:deny (incoming), allow (outgoing), disabled (routed)
新建配置文件: skip
至 動作 來自
- -- --
80,443/tcp (Nginx Full) ALLOW IN Anywhere
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
UFW默認策略
默認情況下,UFW將阻止所有傳入連接并允許所有出站連接。 這意味著任何試圖訪問您的服務器的用戶都將無法連接,除非您專門打開該端口,而服務器上運行的所有應用程序和服務都將能夠訪問外部世界。
默認策略在/etc/default/ufw文件中定義,可以使用sudo ufw default
防火墻策略是構建更詳細和用戶定義規(guī)則的基礎。 在大多數情況下,最初的UFW默認政策是一個很好的起點。
應用程序配置
使用apt安裝軟件包時,它將向/etc/ufw/applications.d目錄中添加應用程序配置文件,該目錄描述該服務并包含UFW設置。
您可以鍵入以下內容列出服務器上可用的所有應用程序配置文件
sudo ufw app list
根據系統(tǒng)上安裝的軟件包,輸出將如下所示:
可用應用程序:
CUPS
Nginx Full
Nginx HTTP
Nginx HTTPS
Postfix
Postfix SMTPS
Postfix Submission
如果您想要查找有關配置文件和包含規(guī)則的更多信息,可以使用以下命令:
sudo ufw app info 'Nginx Full'
配置: Nginx Full
標題:Web Server (Nginx, HTTP + HTTPS)
描述: Small, but very powerful and efficient web server
端口:
80,443/tcp
正如您從上面的輸出中看到'Nginx Full'配置文件打開端口80和443,
允許SSH連接
在啟用UFW防火墻之前,我們需要添加一個允許傳入SSH連接的規(guī)則。 如果您從遠程位置連接到服務器(幾乎總是如此),并且在明確允許傳入SSH連接之前啟用UFW防火墻,則您將不再能夠連接到您的Ubuntu服務器。
要配置您的UFW防火墻以允許傳入SSH連接,請鍵入以下命令:
sudo ufw allow ssh
規(guī)則已添加
規(guī)則已添加 (v6)
如果您將SSH端口更改為自定義端口而不是端口22,則需要打開該端口。 例如,如果您的ssh守護進程在端口5522上偵聽,那么您可以使用以下命令來允許該端口上的連接:
sudo ufw allow 5522/tcp
啟用UFW
現在您的UFW防火墻已配置為允許傳入SSH連接,我們可以通過鍵入以下命令啟用它:
sudo ufw enable
在系統(tǒng)啟動時啟用和激活防火墻
輸出:
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
你可以使用端口號80而不是http:
sudo ufw allow 80/tcp
或者您可以使用應用程序配置文件,在本例中是'Nginx HTTPS':
sudo ufw allow 'Nginx HTTP'
打開端口443 - HTTPS
使用以下命令可以允許HTTP連接:
sudo ufw allow https
要實現相同而不是https,您可以使用端口號443:
sudo ufw allow 443/tcp
或者您可以使用應用程序配置文件,在本例中是'Nginx HTTPS':
sudo ufw allow 'Nginx HTTP'
打開端口8080
如果運行Tomcat或在端口8080上偵聽的任何其他應用程序以允許傳入連接,請輸入:
sudo ufw allow 8080/tcp
允許端口范圍
UFW允許我們允許訪問端口范圍,而不是允許訪問單個端口。 使用UFW允許端口范圍時,您必須指定協(xié)議,即tcp或udp。 例如,如果要允許tcp和udp上的端口從8000到8100,則運行以下命令:
sudo ufw allow 8000:8100/tcp
sudo ufw allow 8000:8100/udp
允許特定的IP地址
如果您希望允許您的家庭計算機上的所有端口使用IP地址55.56.57.58訪問,則需要在IP地址之前指定:
sudo ufw allow from 55.56.57.58允許特定端口上的特定IP地址
要允許在特定端口上訪問,可以使用IP地址為55.56.57.58的工作機器上的端口22,然后您需要指定IP地址后面的任何端口和端口號:
sudo ufw allow from 55.56.57.58 to any port 22
允許子網
允許連接到IP地址的子網的命令與使用單個IP地址時相同,唯一的區(qū)別是您需要指定網絡掩碼。 例如,如果你想允許訪問從192.168.1.1到192.168.1.254到3306(MySQL)的IP地址,你可以使用這個命令:
sudo ufw allow from 192.168.1.0/24 to any port 3306
允許連接到特定的網絡接口
為了允許在特定端口上訪問,我們假設端口3306僅適用于特定的網絡接口eth2,那么您需要指定允許輸入以及網絡接口的名稱:
sudo ufw allow in on eth2 to any port 3306
拒絕連接
所有傳入連接的默認策略設置為拒絕,如果您沒有更改它,UFW將阻止所有傳入連接,除非您專門打開連接。
假設您打開端口80和443,并且您的服務器受到33.34.35.0/34網絡的攻擊。 要拒絕來自33.34.35.0/34的所有連接,可以使用以下命令:
sudo ufw deny from 33.34.35.0/34
如果您只想拒絕對端口80和443的訪問,則可以使用以下命令:
sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443
寫入拒絕規(guī)則與編寫允許規(guī)則相同,您只需將允許替換為拒絕。
刪除UFW規(guī)則
有兩種不同的方法可以通過規(guī)則編號和指定實際規(guī)則來刪除UFW規(guī)則。
通過規(guī)則編號刪除UFW規(guī)則更容易,尤其是如果您是UFW的新手。 要首先通過規(guī)則編號刪除規(guī)則,您需要按數字列出規(guī)則,您可以使用以下命令執(zhí)行此操作:
sudo ufw status numbered
狀態(tài): 激活
至 動作 來自
- -- --
[ 1] Nginx Full ALLOW IN Anywhere
[ 2] 22/tcp ALLOW IN Anywhere
[ 3] 5522/tcp ALLOW IN Anywhere
[ 4] 80/tcp ALLOW IN Anywhere
[ 5] Nginx HTTP ALLOW IN Anywhere
[ 6] 443/tcp ALLOW IN Anywhere
[ 7] Nginx HTTPS ALLOW IN Anywhere
[ 8] 8080/tcp ALLOW IN Anywhere
[ 9] Nginx Full (v6) ALLOW IN Anywhere (v6)
[10] 22/tcp (v6) ALLOW IN Anywhere (v6)
[11] 5522/tcp (v6) ALLOW IN Anywhere (v6)
[12] 80/tcp (v6) ALLOW IN Anywhere (v6)
[13] Nginx HTTP (v6) ALLOW IN Anywhere (v6)
[14] 443/tcp (v6) ALLOW IN Anywhere (v6)
[15] Nginx HTTPS (v6) ALLOW IN Anywhere (v6)
[16] 8080/tcp (v6) ALLOW IN Anywhere (v6)
要刪除規(guī)則編號3,允許連接到端口8080的規(guī)則,可以使用以下命令:
sudo ufw delete 2
第二種方法是通過指定實際規(guī)則來刪除規(guī)則,例如,如果您添加了一條規(guī)則以打開端口8168,則可以使用以下規(guī)則將其刪除:
sudo ufw delete allow 8168
禁用UFW
如果因任何原因想停止UFW并停用您可以使用的所有規(guī)則:
sudo ufw disable稍后如果您想要重新啟用UTF并激活所有規(guī)則,請輸入:
sudo ufw enable
重置UFW
重置UFW將禁用UFW,并刪除所有活動規(guī)則。 如果您想恢復所有更改并重新開始,這很有幫助。
要重置UFW,只需輸入以下命令:
sudo ufw reset
所有規(guī)則將被重設為安裝時的默認值。要繼續(xù)嗎 (y|n)?
總結
您已經學會了如何在Ubuntu 18.04服務器上安裝和配置UFW防火墻。 確保允許系統(tǒng)正常運行所需的所有傳入連接,同時限制所有不必要的連接。
如果您有任何問題,請隨時在下面留言。
網頁題目:如何在Ubuntu18.04上使用UFW設置防火墻
鏈接分享:http://m.fisionsoft.com.cn/article/dpecdje.html


咨詢
建站咨詢
