如何在 Debian 9 系统上使用 UFW 配置防火墙

UFW 的英文全称是 Uncomplicated Firewall ,字面上的理解就是“简单的防火墙”,它是 iptables 工具的一个对用户友好的前端。对初学者来说,使用 iptables 来配置和管理防火墙可能比较复杂,而使用 UFW 管理 iptables 防火墙规则,则相对容易很多,它极大的简化了 iptables 的管理过程。

如何在 Debian 9 系统上使用 UFW 配置防火墙
如何在 Debian 9 系统上使用 UFW 配置防火墙

通过本文牛奇网为您介绍如何在 Debian 9 上使用 UFW 设置防火墙。在继续本教程之前,请确保您的 Debian 用户拥有sudo 权限。

第 1 步 – 安装 UFW

默认情况下,Debian 中并未安装 UFW,执行下面的命令安装 UFW:

sudo apt install ufw

安装完成后,可以使用以下命令检查 UFW 的状态:

sudo ufw status verbose

因为我们尚未开启 UFW ,输出可能如下所示:

Status: inactive

第 2 步 – 配置 UFW 支持 IPv6(可选)

如果您的服务器开启了 ipv6,需要配置 UFW 支持 IPv6。使用 nano 或 vi 编辑器打开 UFW 配置文件:

sudo nano /etc/default/ufw

将配置中的IPV6 值设为 yes,如下所示:

IPV6=yes

保存并关闭文件。现在,当启用 UFW 时,它将被配置为同时支持 IPv4 和 IPv6 。但在启用 UFW 之前,还需要确保防火墙允许通过 SSH 连接。我们从设置默认策略开始。

第 3 步 – 设置默认策略

默认情况下,UFW 被设置为拒绝所有传入连接,并允许所有传出连接,这意味着任何访问服务器的请求都无法连接。

执行下面的命令,设置默认的 UFW 策略:

sudo ufw default deny incoming
sudo ufw default allow outgoing

如果个人电脑使用这些策略是没问题的,但是服务器需要对外界的请求进行响应,所以需要对默认的策略进行更改。

第 4 步 – 允许 SSH 连接

如果现在启用 UFW 防火墙,它将拒绝所有传入的连接。如果要通过 SSH 连接服务器,我们需要创建允许合法传入连接(例如 SSH 或 HTTP 连接)的规则。

要将服务器配置为允许传入的 SSH 连接,可以执行以下命令:

sudo ufw allow ssh

这将创建一条新的防火墙规则,允许端口 22 上的所有连接,22 是 SSH 默认侦听的端口。

我们实际上可以直接开放指定端口,执行下面的命令开放 22 端口,这和上一条命令的效果相同:

sudo ufw allow 22

如果您已经配置 SSH 使用不同的端口,则必须开放对应的端口。例如,如果您的 SSH 服务器使用 2222 端口,可以执行下面的命令开放该端口:

sudo ufw allow 2222

现在防火墙已被配置为允许传入的 SSH 连接,我们现在就可以启用 UFW 了。

第 5 步 – 启用 UFW

执行以下命令启用 UFW :

sudo ufw enable

执行上面的命令后,将收到一条警告,指出该命令可能会中断现有的 SSH 连接。因为我们已经设置 UFW 允许 SSH 连接,所以我们输入“Y” 并回车。

现在可以使用以下命令再次检查 UFW 的状态:

sudo ufw status verbose

第 6 步 – 设置 UFW 开放其他端口

现在,可以根据要在服务器上部署的项目,配置 UFW 开放其他特定端口。

为 HTTP 访问开放 80 端口

可以执行以下命令允许 HTTP 连接:

sudo ufw allow http

也可以直接开放 HTTP 使用的端口号 80 :

sudo ufw allow 80/tcp

为 HTTPS 访问开放 443 端口

可以执行以下命令允许 HTTPS 连接:

sudo ufw allow https

也可以直接开放 HTTPS 使用的端口号 443 :

sudo ufw allow 443/tcp

开放 8080 端口

如果服务器上运行 Tomcat 或其他使用 8080 端口的程序,可以执行下面的命令开放 8080 端口:

sudo ufw allow 8080/tcp

开放特定端口范围

因为有一些程序要使用多个端口,因此可以使用 UFW 开放特定端口范围。例如,要允许使用 60006007 端口的 tcp 和 udp 连接,可以执行以下命令:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

使用 UFW 开放特定端口范围时,必须指定规则适用的协议(tcp 或 udp )。

开放特定 IP 地址

使用 UFW 时,还可以允许指定 IP 地址。例如,如果要允许来自特定 IP 地址的连接,如允许来自公司的 IP 地址 203.0.113.4,可以执行如下的命令:

sudo ufw allow from 203.0.113.4

还可以指定允许 IP 地址连接的特定端口。例如,如果想允许 203.0.113.4 连接到端口 22(SSH),可以执行以下命令:

sudo ufw allow from 203.0.113.4 to any port 22

允许子网访问

如果要允许 IP 地址的子网访问,例如,要允许从 203.0.113.1203.0.113.254 的所有IP地址访问,可以执行以下命令:

sudo ufw allow from 203.0.113.0/24

同样,也可以指定 203.0.113.0/24 允许子网连接的目标端口:

sudo ufw allow from 203.0.113.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 或者 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

第 7 步 – 拒绝连接

默认情况下,UFW 将拒绝所有传入连接,如果我们已经开启了 80443 端口,并且服务器遭到 23.24.25.0/24 的网络攻击。我们可以执行如下命令,拒绝来自 23.24.25.0/24 的所有连接:

sudo ufw deny from 23.24.25.0/24

如果只想拒绝 23.24.25.0/2480 和 443 端口的访问,可以执行如下的命令:

sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443

第 8 步 – 删除规则

要删除 UFW 规则有两种不同的方法,分别为通过规则编号和指定实际规则。如果您对 UFW 不是很熟悉,按规则编号删除 UFW 规则更容易。要通过规则编号删除规则,首先需要知道如何找到要删除的规则编号。

要找到规则编号,可以执行以下命令:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

例如,要删除第 3 条规则,即允许连接到 8080 端口的规则,可以执行下面的命令:

sudo ufw delete 3

此外,我们也可以直接指定要删除的规则。例如,我们可以执行下面的命令删除开放 80 端口的规则:

sudo ufw delete allow http

或者直接通过端口号:

sudo ufw delete allow 80

第 9 步 – 检查 UFW 状态和规则

可以使用以下命令检查 UFW 的状态:

sudo ufw status verbose

如果 UFW 被禁用,将看到如下内容:

Output
Status: inactive

如果 UFW 处于活动状态,则输出可能如下所示:

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

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

第 10 步 – 禁用或重置 UFW(可选)

如果不想继续使用 UFW,可以使用以下命令关闭它:

sudo ufw disable

执行该命令后,使用 UFW 创建的任何规则都将不再有效。如果以后需要激活它,可以运行如下命令:

sudo ufw enable

如果您已经配置了 UFW 规则,但想要重置 UFW 规则,可以使用 reset 命令:

sudo ufw reset

该命令将关闭 UFW 并删除之前定义的全部规则。

总结

通过上面的内容,牛奇网向您介绍了如何在 Debian 9 服务器上安装和配置 UFW 防火墙。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-setup-a-firewall-with-ufw-on-debian-9/

(0)
牛奇网牛奇网
上一篇 2022年1月25日 下午4:03
下一篇 2022年1月26日 上午11:46

相关推荐

发表回复

登录后才能评论