如何在Ubuntu 16.04上配置和設定防火牆


在這篇文章中,我們將學習如何配置和設定 Ubuntu 16.04 上的 UFW (防火牆)。UFW 代表 Uncomplicated Firewall,它作為 IPTABLES 的介面,簡化了防火牆配置過程。對於初學者來說,學習和配置防火牆規則非常困難,而這將幫助我們保護網路免受未知使用者或機器的攻擊。UFW 基於我們配置的策略(規則)工作。

先決條件

  • 為此,我們需要一個具有 root 許可權的非 root 使用者。

安裝 UFW (防火牆)

UFW 預設情況下已安裝在 Ubuntu 上,如果未安裝,則可以使用以下命令安裝:

$ sudo apt-get install ufw -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
   ufw
0 upgraded, 1 newly installed, 0 to remove and 88 not upgraded.
Need to get 149 kB of archives.
After this operation, 838 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 ufw all 0.35-0ubuntu2 [149 kB]
Fetched 149 kB in 0s (165 kB/s)
Preconfiguring packages ...
Selecting previously unselected package ufw.
(Reading database ... 98515 files and directories currently installed.)
Preparing to unpack .../ufw_0.35-0ubuntu2_all.deb ..
Unpacking ufw (0.35-0ubuntu2) ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up ufw (0.35-0ubuntu2) ...

啟用 UFW (防火牆)

以下是啟用 UFW 的命令:

$ sudo ufw enable
Command may disrupt existing SSH connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

停用 UFW (防火牆)

以下是停用 UFW 防火牆的命令。

$ sudo ufw disable

防火牆已停止並在系統啟動時停用 spesifikasi android

啟用預設策略

作為初學者,我們將首先配置預設策略,它控制和處理與其他規則不匹配的流量。預設情況下,規則將拒絕所有傳入連線,並允許所有傳出連線,這可以阻止其他人嘗試從網際網路訪問這臺機器。

$ sudo ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

啟用 SSH 連線

使用上面的命令,我們停用了所有傳入連線,它將拒絕所有傳入連線,我們需要建立一個規則來明確允許 SSH 傳入連線。

以下是啟用 SSH 傳入連線的命令:

$ sudo ufw allow ssh
Rule added
Rule added (v6)

透過上述命令,將允許埠 22 的傳入連線。我們可以直接使用埠號 22 來允許 SSH 連線,使用以下命令:

$ sudo ufw allow 22
Skipping adding existing rule
Skipping adding existing rule (v6)

但是,如果我們已將 SSH 守護程式配置為使用不同的埠,例如 2022 或 1022,則可以使用以下命令:

$ sudo ufw allow 1022
Rule added
Rule added (v6)

檢查 UFW (防火牆) 狀態

以下是檢查防火牆規則當前狀態的命令:

$ sudo ufw status
Status: active
To             Action          From
--             ------          ----
22             ALLOW          Anywhere
2222           DENY           Anywhere
1022           ALLOW          Anywhere
22 (v6)        ALLOW          Anywhere (v6)
2222 (v6)      DENY           Anywhere (v6)
1022 (v6)      ALLOW          Anywhere (v6)

為常規埠(HTTP、HTTPS 和 FTP)啟用 UFW

此時,我們將允許其他人連線到伺服器的常規埠,例如 HTTP、HTTPS 和 FTP 埠。

HTTP 埠 80

$ sudo ufw allow 80
Rule added
Rule added (v6)

我們可以使用以下命令檢查 UFW (防火牆) 狀態

$ sudo ufw status
Status: active
To             Action          From
--             ------          ----
22             ALLOW          Anywhere
2222           DENY           Anywhere
1022           ALLOW          Anywhere
80             ALLOW          Anywhere
22 (v6)        ALLOW          Anywhere (v6)
2222 (v6)      DENY           Anywhere (v6)
1022 (v6)      ALLOW          Anywhere (v6)
80 (v6)        ALLOW          Anywhere (v6)

同樣,我們將使用以下命令分別啟用 HTTPS 和 FTP 埠 (443 和 21)。

$ sudo ufw allow https
Rule added
Rule added (v6)

$ sudo ufw allow ftp
Rule added
Rule added (v6)

啟用允許特定埠範圍

我們還可以使用 UFW 允許或拒絕特定埠範圍,以允許多個埠而不是單個埠。

以下是啟用特定埠範圍的命令:

$ sudo ufw allow 500:800/tcp
Rule added
Rule added (v6)

啟用允許特定 IP 地址

如果我們想允許特定機器訪問所有埠,可以使用以下命令。

$ sudo ufw allow from 192.168.100.1
Rule added

如果我們只想允許特定埠,可以使用以下命令。

$ sudo ufw allow from 192.168.100.1 to any port 8080
Rule added

如果我們想啟用特定的子網,例如辦公室網路,可以使用以下命令。

$ sudo ufw allow from 192.168.0.0/24
Rule added

拒絕連線或規則

如果我們想拒絕任何埠或網路,可以使用以下命令來拒絕連線。

$ sudo ufw deny http
Rule updated
Rule updated (v6)

如果我們想拒絕來自特定網路的所有連線,可以使用以下命令。

$ sudo ufw deny from 192.168.2.1
Rule added

刪除規則

我們可以透過兩種方式刪除規則:一種是使用實際規則,另一種是使用規則編號。

實際規則

可以使用我們使用 allow 命令允許的實際規則來刪除規則。

以下是從 UFW 刪除 HTTP 規則的命令:

$ sudo ufw delete allow http
Rule deleted
Rule deleted (v6)

規則編號

我們可以使用規則編號來刪除防火牆規則,可以使用以下命令獲取防火牆規則列表。

$ sudo ufw status numbered
Status: active
To                      Action             From
--                      ------             ----
[ 1] 2222               DENY IN            Anywhere
[ 2] 1022               ALLOW IN           Anywhere
[ 3] 443                ALLOW IN           Anywhere
[ 4] 21/tcp             ALLOW IN           Anywhere
[ 5] 500:800/tcp        ALLOW IN           Anywhere
[ 6] Anywhere           ALLOW IN           192.168.100.1
[ 7] 8080               ALLOW IN           192.168.100.1
[ 8] Anywhere           ALLOW IN           192.168.0.0/24
[ 9] Anywhere           DENY IN            192.168.2.1
[10] 2222 (v6)          DENY IN            Anywhere (v6)
[11] 1022 (v6)          ALLOW IN           Anywhere (v6)
[12] 443 (v6)           ALLOW IN           Anywhere (v6)
[13] 21/tcp (v6)        ALLOW IN           Anywhere (v6)
[14] 500:800/tcp (v6)   ALLOW IN           Anywhere (v6)

如果我們想刪除規則 14,則可以使用以下命令刪除規則:

$ sudo ufw delete 14
Deleting:
allow 500:800/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)

在這篇文章中,我們學習瞭如何安裝、啟用和停用 UFW 防火牆。我們還學習瞭如何允許、拒絕和刪除規則,這將幫助我們保護伺服器的安全。

更新於:2020年1月23日

2K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.