广告位
在Ubuntu 18.04上配置Ubuntu防火墙(UFW)
作者: 分类:Linux浏览(2,499)2019-11-18

安装UFW

UFW默认安装在Ubuntu 18.04中,但是您可以验证一下:

which ufw

您应该收到以下输出:

/usr/sbin/ufw

如果未收到输出,则表示未安装UFW。在这种情况下,您可以自己安装它:

sudo apt-get install ufw

允许连接

如果您运行的是Web服务器,则希望全世界都能访问您的网站。因此,您需要确保Web的默认TCP端口是打开的。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

通常,可以使用以下格式来允许您需要的任何端口:

sudo ufw allow <port>/<optional: protocol>

拒绝连接

如果您需要拒绝访问某个端口,请使用以下deny命令:

sudo ufw deny <port>/<optional: protocol>

例如,您可以拒绝访问默认的MySQL端口:

sudo ufw deny 3306

UFW还支持最常用服务端口的简化语法:

root@:~$ sudo ufw deny mysql
Rule updated
Rule updated (v6)

强烈建议您限制22从可信任IP地址以外的任何地方访问SSH端口(默认情况下,此端口为port )。

允许从受信任的IP地址访问

通常,您只需要允许访问公共开放的端口(例如port)80。对所有其他端口的访问应受到限制或限制。您可以将家庭或办公室IP地址(最好是静态IP)列入白名单,以便能够通过SSH或FTP访问服务器:

sudo ufw allow from 192.168.0.1 to any port 22

您还可以允许访问MySQL端口:

sudo ufw allow from 192.168.0.1 to any port 3306

启用UFW

在启用(或重新启动)UFW之前,您需要确保允许SSH端口从您的IP地址接收连接。要启动/启用UFW防火墙,请使用以下命令:

sudo ufw enable

您将看到以下输出:

root@ubuntu:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Y,然后按ENTER启用防火墙:

Firewall is active and enabled on system startup

检查UFW状态

打印UFW规则列表:

sudo ufw status

您将看到类似于以下内容的输出:

Status: active

To                         Action      From
--                         ------      ----
80/tcp                     DENY        Anywhere
443/tcp                    DENY        Anywhere
3306                       DENY        Anywhere
22                         ALLOW       192.168.0.1
3306                       ALLOW       192.168.0.1
80/tcp (v6)                DENY        Anywhere (v6)
443/tcp (v6)               DENY        Anywhere (v6)
3306 (v6)                  DENY        Anywhere (v6)

使用verbose参数查看更详细的状态报告:

sudo ufw status verbose

该输出将类似于以下内容:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80/tcp                     DENY IN     Anywhere
443/tcp                    DENY IN     Anywhere
3306                       DENY IN     Anywhere
22                         ALLOW IN    192.168.0.1
3306                       ALLOW IN    192.168.0.1
80/tcp (v6)                DENY IN     Anywhere (v6)
443/tcp (v6)               DENY IN     Anywhere (v6)
3306 (v6)                  DENY IN     Anywhere (v6)

禁用/重新加载/重启UFW

如果需要重新加载防火墙规则,请运行以下命令:

sudo ufw reload

要禁用或停止UFW:

sudo ufw disable

为了重新启动UFW,您需要先将其禁用,然后再次启用它:

sudo ufw disable
sudo ufw enable

注意: 启用UFW之前,请确保您的IP地址允许使用SSH端口。

删除规则

要管理您的UFW规则,你需要列出他们。您可以通过使用参数检查UFW状态来做到这一点numbered

sudo ufw status numbered

您将看到类似于以下内容的输出:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 80/tcp                     DENY IN     Anywhere
[ 2] 443/tcp                    DENY IN     Anywhere
[ 3] 3306                       DENY IN     Anywhere
[ 4] 22                         ALLOW IN    192.168.0.1
[ 5] 3306                       ALLOW IN    192.168.0.1
[ 6] 80/tcp (v6)                DENY IN     Anywhere (v6)
[ 7] 443/tcp (v6)               DENY IN     Anywhere (v6)
[ 8] 3306 (v6)                  DENY IN     Anywhere (v6)

现在,要删除任何这些规则,您将需要在方括号中使用以下数字:

sudo ufw delete [number]

要删除HTTP规则(80),请使用以下命令:

sudo ufw delete 1

启用IPv6支持

如果在VPS上使用IPv6,则需要确保在UFW中启用了IPv6支持。为此,请在文本编辑器中打开配置文件:

sudo vi /etc/default/ufw

打开后,请确保将IPV6其设置为“是”:

IPV6=yes

进行此更改后,保存文件。然后,通过禁用并重新启用它来重新启动UFW:

sudo ufw disable
sudo ufw enable

返回默认设置

如果您需要返回默认设置,只需键入以下命令。这将还原您的所有更改:

sudo ufw reset

恭喜,您已经设置了一些基本的防火墙规则。

图片压缩在线工具 tools online