如何在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.