ubuntu18.4默認防火牆UFW安裝配置

轉載:如何在Ubuntu 18.04上使用UFW設置防火牆
https://blog.csdn.net/u013068789/article/details/82051943
介紹
UFW或Uncomplicated Firewall是iptables一個接口,旨在簡化配置防火牆的過程。 雖然iptables是一個可靠而靈活的工具,但初學者很難學會如何使用它來正確配置防火牆。 如果您希望開始保護網絡,並且您不確定使用哪種工具,UFW可能是您的正確選擇。

本教程將向您展示如何在Ubuntu 18.04上使用UFW設置防火牆。

先決條件
要學習本教程,您需要:

一個帶有sudo非root用戶的Ubuntu 18.04服務器,您可以按照Ubuntu 18.04教程的初始服務器設置中的第1步-3進行設置 。
UFW默認安裝在Ubuntu上。 如果由於某種原因已經卸載,可以使用sudo apt install ufw 。

第1步 - 將IPv6與UFW一起使用(可選)
本教程是在考慮IPv4的情況下編寫的,但只要您啓用IPv6,它將適用於IPv6。 如果您的Ubuntu服務器已啓用IPv6,請確保將UFW配置爲支持IPv6,以便除IPv4之外還管理IPv6的防火牆規則。 要執行此操作,請使用nano或您喜歡的編輯器打開UFW配置。

sudo nano /etc/default/ufw
然後確保IPV6值爲yes 。 它應該如下所示:

/ etc / default / ufw摘錄

IPV6=yes
保存並關閉文件。 現在,當啓用UFW時,它將配置爲同時寫入IPv4和IPv6防火牆規則。 但是,在啓用UFW之前,我們需要確保將防火牆配置爲允許您通過SSH進行連接。 讓我們從設置默認策略開始。

第2步 - 設置默認策略
如果您剛剛開始使用防火牆,則要定義的第一個規則是您的默認策略。 這些規則控制如何處理未明確匹配任何其他規則的流量。 默認情況下,UFW設置爲拒絕所有傳入連接並允許所有傳出連接。 這意味着任何試圖訪問您的服務器的人都無法連接,而服務器中的任何應用程序都可以訪問外部世界。

讓我們將您的UFW規則設置回默認值,以便我們確保您能夠按照本教程進行操作。 要設置UFW使用的默認值,請使用以下命令:

sudo ufw default deny incoming

sudo ufw default allow outgoing
這些命令將默認設置爲拒絕傳入並允許傳出連接。 僅這些防火牆默認值可能足以用於個人計算機,但服務器通常需要響應來自外部用戶的傳入請求。 我們接下來會調查一下。

第3步 - 允許SSH連接
如果我們現在啓用了我們的UFW防火牆,它將拒絕所有傳入的連接。 這意味着,如果我們希望服務器響應這些類型的請求,我們將需要創建明確允許合法傳入連接的規則 - 例如SSH或HTTP連接。 如果您使用的是雲服務器,則可能需要允許傳入的SSH連接,以便連接和管理服務器。

要將服務器配置爲允許傳入SSH連接,可以使用以下命令:

sudo ufw allow ssh
這將創建防火牆規則,允許端口22上的所有連接,這是SSH守護程序默認監聽的端口。 UFW知道什麼端口allow ssh意思,因爲它在/etc/services文件中列爲/etc/services 。

但是,我們實際上可以通過指定端口而不是服務名來編寫等效規則。 例如,此命令與上面的命令相同:

sudo ufw allow 22
如果將SSH守護程序配置爲使用其他端口,則必須指定相應的端口。 例如,如果SSH服務器正在監聽端口2222 ,則可以使用此命令允許該端口上的連接:

sudo ufw allow 2222
現在您的防火牆已配置爲允許傳入SSH連接,我們可以啓用它。

第4步 - 啓用UFW
要啓用UFW,請使用以下命令:

sudo ufw enable
您將收到一條警告,指出該命令可能會破壞現有的SSH連接。 我們已經設置了允許SSH連接的防火牆規則,因此可以繼續。 用y迴應提示ENTER 。

防火牆現在處於活動狀態。 運行sudo ufw status verbose命令以查看已設置的規則。 本教程的其餘部分將介紹如何更詳細地使用UFW,例如允許或拒絕不同類型的連接。

第5步 - 允許其他連接
此時,您應該允許服務器需要響應的所有其他連接。 您應該允許的連接取決於您的特定需求。 幸運的是,您已經知道如何編寫允許基於服務名稱或端口的連接的規則; 我們已經在端口22上爲SSH做了這個。 你也可以這樣做:

端口80上的HTTP,這是未加密的Web服務器使用的,使用sudo ufw allow http或sudo ufw allow 80
端口443上的HTTPS,這是加密的Web服務器使用的,使用sudo ufw allow https或sudo ufw allow 443
除了指定端口或已知服務之外,還有其他幾種允許其他連接的方法。

特定端口範圍
您可以使用UFW指定端口範圍。 某些應用程序使用多個端口,而不是單個端口。

例如,要允許使用端口6000 - 6007 X11連接,請使用以下命令:

sudo ufw allow 6000:6007/tcp

sudo ufw allow 6000:6007/udp
使用UFW指定端口範圍時,必須指定規則應適用的協議( tcp或udp )。 我們之前沒有提到這一點,因爲沒有指定協議會自動允許兩種協議,這在大多數情況下都可以。

特定的IP地址
使用UFW時,您還可以指定IP地址。 例如,如果要允許來自特定IP地址的連接,例如工作或家庭IP地址203.0.113.4,則需要指定from ,然後指定IP地址:

sudo ufw allow from 203.0.113.4
您還可以通過添加to any port後跟端口號to any port指定允許IP地址連接的特定端口。 例如,如果要允許203.0.113.4連接到端口22 (SSH),請使用以下命令:

sudo ufw allow from 203.0.113.4 to any port 22
子網
如果要允許IP地址子網,可以使用CIDR表示法指定網絡掩碼。 例如,如果要允許所有IP地址範圍從203.0.113.1到203.0.113.254 ,則可以使用此命令:

sudo ufw allow from 203.0.113.0/24
同樣,您也可以指定允許子網203.0.113.0/24連接的目標端口。 同樣,我們將使用端口22 (SSH)作爲示例:

sudo ufw allow from 203.0.113.0/24 to any port 22
與特定網絡接口的連接
如果要創建僅適用於特定網絡接口的防火牆規則,可以通過指定“允許接通”,然後指定網絡接口的名稱來執行此操作。

您可能希望在繼續之前查找網絡接口。 爲此,請使用以下命令:

ip addr

Output Excerpt2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state

. . .

3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default

. . .
突出顯示的輸出表示網絡接口名稱。 它們通常被命名爲eth0或enp3s2 。

因此,如果您的服務器具有名爲eth0的公共網絡接口,則可以使用以下命令允許HTTP流量(端口80 ):

sudo ufw allow in on eth0 to any port 80
這樣做將允許您的服務器從公共互聯網接收HTTP請求。

或者,如果您希望MySQL數據庫服務器(端口3306 )監聽專用網絡接口eth1上的連接,例如,您可以使用此命令:

sudo ufw allow in on eth1 to any port 3306
這將允許專用網絡上的其他服務器連接到MySQL數據庫。

第6步 - 拒絕連接
如果尚未更改傳入連接的默認策略,則UFW配置爲拒絕所有傳入連接。 通常,這會通過要求您創建明確允許特定端口和IP地址的規則來簡化創建安全防火牆策略的過程。

但是,有時您會希望根據源IP地址或子網拒絕特定連接,可能是因爲您知道您的服務器正在受到***。 此外,如果要將默認傳入策略更改爲允許 (不建議這樣做),則需要爲不希望允許連接的任何服務或IP地址創建拒絕規則。

要編寫拒絕規則,您可以使用上述命令,將allow替換爲deny 。

例如,要拒絕HTTP連接,可以使用以下命令:

sudo ufw deny http
或者,如果要拒絕來自203.0.113.4所有連接,可以使用此命令:

sudo ufw deny from 203.0.113.4
現在讓我們來看看如何刪除規則。

第7步 - 刪除規則
瞭解如何刪除防火牆規則與瞭解如何創建防火牆規則同樣重要。 有兩種不同的方法可以指定要刪除的規則:按規則編號或實際規則(類似於創建規則時的規則)。 我們將從規則編號方法刪除開始,因爲它更容易。

按規則編號
如果您使用規則編號刪除防火牆規則,那麼您要做的第一件事就是獲取防火牆規則列表。 UFW status命令可以選擇顯示每個規則旁邊的數字,如下所示:

sudo ufw status numbered

Numbered Output:Status: active

To Action From


[ 1] 22 ALLOW IN 15.15.15.0/24

[ 2] 80 ALLOW IN Anywhere
如果我們決定要刪除允許端口80(HTTP)連接的規則2,我們可以在UFW刪除命令中指定它,如下所示:

sudo ufw delete 2
這將顯示確認提示,然後刪除規則2,允許HTTP連接。 請注意,如果啓用了IPv6,則還需要刪除相應的IPv6規則。

按實際規則
規則編號的替代方法是指定要刪除的實際規則。 例如,如果要刪除allow http規則,可以這樣寫:

sudo ufw delete allow http
您還可以通過allow 80而不是服務名稱來指定規則:

sudo ufw delete allow 80
此方法將刪除IPv4和IPv6規則(如果存在)。

第8步 - 檢查UFW狀態和規則
您可以隨時使用以下命令檢查UFW的狀態:

sudo ufw status verbose
如果UFW被禁用,默認情況下,你會看到如下內容:

OutputStatus: inactive
如果UFW處於活動狀態,如果您按照第3步進行操作,輸出將表明它處於活動狀態,並且它將列出所有已設置的規則。例如,如果防火牆設置爲允許來自任何地方的SSH(端口22 )連接,則輸出可能如下所示:

OutputStatus: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

To Action From


22/tcp ALLOW IN Anywhere
如果要檢查UFW如何配置防火牆,請使用status命令。

第9步 - 禁用或重置UFW(可選)
如果您決定不想使用UFW,可以使用以下命令禁用它:

sudo ufw disable
您使用UFW創建的任何規則將不再處於活動狀態。 如果您以後需要激活它,可以隨時運行sudo ufw enable 。

如果您已經配置了UFW規則但是您決定要重新開始,則可以使用reset命令:

sudo ufw reset
這將禁用UFW並刪除先前定義的任何規則。 請注意,如果您在任何時候修改了默認策略,默認策略都不會更改爲原始設置。 這應該會讓你重新開始使用UFW。

結論
您的防火牆現在配置爲允許(至少)SSH連接。 確保允許服務器的任何其他傳入連接,同時限制任何不必要的連接,以便您的服務器功能和安全

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