【转】如何在Ubuntu 16.04上使用UFW设置防火墙
https://www.howtoing.com/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04/
如何在Ubuntu 16.04上使用UFW設置防火墻
介紹
UFW或Uncomplicated Firewall是iptables的接口,旨在簡化配置防火墻的過程。 雖然iptables是一個堅實和靈活的工具,但是初學者可能很難學會如何使用它來正確配置防火墻。如果您希望開始保護網絡安全,并且不確定使用哪種工具,UFW可能是您的最佳選擇。
本教程將向您介紹如何在Ubuntu 16.04上使用UFW設置防火墻。
先決條件
要遵循本教程,您需要:
·?一個帶有sudo非root用戶的Ubuntu 16.04服務器,您可以通過使用Ubuntu 16.04教程的初始服務器設置中的第1步-3進行設置?。
UFW默認安裝在Ubuntu上。如果由于某種原因卸載它,你可以使用sudo apt-get?install ufw?。
第1步 – 使用IPv6與UFW(可選)
本教程是用IPv4編寫的,但將適用于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知道什么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響應提示。
防火墻現在處于活動狀態。隨意運行sudo ufw status verbose命令以查看設置的規則。本教程的其余部分將更詳細地介紹如何使用UFW,例如允許或拒絕不同類型的連接。
第5步 – 允許其他連接
此時,您應該允許服務器需要響應的所有其他連接。應該允許的連接取決于您的特定需求。幸運的是,你已經知道如何編寫允許基于服務名稱或端口的連接的規則;我們已經在端口22上使用SSH。您也可以執行以下操作:
·?端口80上的HTTP,這是未加密的Web服務器使用的,使用sudo ufw allow http或sudo ufw allow?80
·?HTTPS端口443,這是加密的Web服務器使用,使用sudo ufw allow https或sudo ufw allow?443
·?FTP在端口21,用于未加密的文件傳輸(您可能不應該使用),使用sudo ufw allow ftp或sudo ufw allow?21/tcp
除了指定端口或已知服務之外,還有其他幾種允許其他連接的方法。
特定端口范圍
您可以使用UFW指定端口范圍。一些應用程序使用多個端口,而不是單個端口。
例如,要允許使用端口6000?–?6007?X11連接,請使用以下命令:
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
當使用UFW指定端口范圍時,必須指定規則應應用于的協議(?tcp或udp?)。我們以前沒有提到過,因為沒有指定協議只允許兩個協議,這在大多數情況下是OK的。
特定IP地址
使用UFW時,還可以指定IP地址。例如,如果要允許來自特定IP地址(例如工作或家庭IP地址為15.15.15.51,則需要指定from?,然后指定IP地址:
sudo ufw allow from?15.15.15.51
您還可以通過添加to any port后面跟端口號to any port指定允許IP地址連接的特定端口。 例如,如果要允許15.15.15.51連接到端口22?(SSH),請使用以下命令:
sudo ufw allow from?15.15.15.51?to any port 22
子網
如果要允許IP地址的子網,您可以使用CIDR表示法來指定網絡掩碼。例如,如果要允許所有的IP地址范圍從15.15.15.1到15.15.15.254您可以使用此命令:
sudo ufw allow from?15.15.15.0/24
同樣,您也可以指定允許子網15.15.15.0/24連接到的目標端口。 再次,我們將使用端口22?(SSH)作為示例:
sudo ufw allow from?15.15.15.0/24?to any port 22
連接到特定的網絡接口
如果要創建僅適用于特定網絡接口的防火墻規則,可以通過指定“allow in on”,然后指定網絡接口的名稱來實現。
在繼續之前,您可能需要查找網絡接口。為此,請使用以下命令:
ip addr
Output?Excerpt:...2:?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或eth1?。
因此,如果您的服務器有一個名為eth0的公共網絡接口,您可以使用此命令允許HTTP流量(端口80?):
sudo ufw allow in?on eth0 to any port 80
這樣做將允許您的服務器從公共Internet接收HTTP請求。
或者,如果您希望您的MySQL數據庫服務器(端口3306?)監聽專用網絡接口eth1上的eth1?,例如,您可以使用以下命令:
sudo ufw allow in?on eth1 to any port 3306
這將允許您的專用網絡上的其他服務器連接到您的MySQL數據庫。
第6步 – 拒絕連接
如果您尚未更改傳入連接的默認策略,則UFW將配置為拒絕所有傳入連接。通常,通過要求創建明確允許特定端口和IP地址通過的規則,這簡化了創建安全防火墻策略的過程。
但是,有時您會希望根據源IP地址或子網拒絕特定連接,也許是因為您知道您的服務器正在從那里受到攻擊。此外,如果您希望將默認傳入策略更改為允許?(這對于安全性不推薦),您需要為您不希望允許連接的任何服務或IP地址創建拒絕規則。
要編寫拒絕規則,可以使用上述命令,將allow替換為deny?。
例如,要拒絕HTTP連接,可以使用以下命令:
sudo ufw deny http
或者如果你想拒絕15.15.15.51的所有連接,你可以使用這個命令:
sudo ufw deny from?15.15.15.51
現在讓我們來看看如何刪除規則。
第7步 – 刪除規則
了解如何刪除防火墻規則與知道如何創建它們同樣重要。有兩種不同的方法指定要刪除的規則:按規則編號或實際規則(類似于創建規則時指定的規則)。我們將從規則編號方法開始,因為如果你是UFW的新手,相比編寫要刪除的實際規則更容易。
按規則編號
如果您使用規則編號刪除防火墻規則,您首先要做的是獲取防火墻規則列表。 UFW狀態命令有一個選項,可以顯示每個規則旁邊的數字,如下所示:
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
如果我們決定刪除規則2,允許端口80(HTTP)連接,我們可以在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:?activeLogging:?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連接。請確保允許您的服務器的任何其他傳入連接,同時限制任何不必要的連接,以便您的服務器可以正常工作和安全。
要了解更常見的UFW配置,請查看UFW Essentials:常見防火墻規則和命令教程。
總結
以上是生活随笔為你收集整理的【转】如何在Ubuntu 16.04上使用UFW设置防火墙的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何低成本快速积累用户,分享4种无脑式操
- 下一篇: 计算N^N