1、ufw简介

UFW,即简单防火墙,是iptables的接口,旨在简化防火墙的配置过程。 尽管iptables是可靠且灵活的工具,但对于初学者而言,可能很难学习如何使用它来正确配置防火墙。 如果您希望开始保护网络安全并且不确定使用哪种工具,UFW可能是您的正确选择

2、在UFW中使用IPv6(可选)

本教程是在考虑IPv4的前提下编写的,但是只要启用它就可以在IPv6上使用。 如果您的Debian服务器已启用IPv6,则需要确保UFW已配置为支持IPv6;否则,请执行以下步骤。 这将确保UFW除了管理IPv4外,还将管理IPv6的防火墙规则。

确保IPV6值为yes 。

3、特定端口范围

您可以使用UFW指定端口范围。 例如,某些应用程序使用多个端口而不是单个端口

例如,使用端口6000 – 6007 ,使用这些命令:

使用UFW指定端口范围时,必须指定规则应适用的协议( tcpudp )。 我们之前没有提到这一点,因为未指定协议会自动允许这两种协议,这在指定单个端口情况下是可以的。

4、特定的IP地址

使用UFW时,您还可以指定IP地址。 例如,如果要允许来自特定IP地址的连接,例如192.168.2.1的工作或家庭IP地址, 192.168.2.1需要指定from ,然后指定IP地址:

您还可以通过添加to any port后跟端口号to any port指定允许IP地址连接的特定端口。 例如,如果要允许192.168.2.1连接到端口22 (SSH),请使用以下命令:

5、子网路
如果要允许IP地址的子网,可以使用CIDR表示法指定网络掩码。 例如,如果要允许所有IP地址从192.168.2.1192.168.2.255 ,可以使用以下命令:

同样,您也可以指定允许子网192.168.2.0/24连接到的目标端口。 同样,我们将使用端口22 (SSH)作为示例:

6、启用UFW
要启用UFW,请使用以下命令:

您将收到一条警告,指出该命令可能会破坏现有的SSH连接。 我们已经设置了允许SSH连接的防火墙规则,因此可以继续。 用y响应提示,然后按ENTER 。

该命令默认会将UFW设置为开机启动,如果发现重启后UFW并没有自动启动,可以手动设置UFW服务开机自动启

#可以手动设置UFW服务开机自动启

7、查看状态

防火墙已经正常启动 运行sudo ufw status verbose命令以查看您设置的规则

8、拒绝连接
如果您尚未更改传入连接的默认策略,则UFW被配置为拒绝所有传入连接。 通常,这要求您创建明确允许特定端口和IP地址通过的规则,从而简化了创建安全防火墙策略的过程。

有时,您可能想基于源IP地址或子网拒绝特定的连接,也许是因为您知道服务器正受到来自那里的攻击。 另外,如果要将默认传入策略更改为允许 (不建议这样做),则需要为不想允许连接的任何服务或IP地址创建拒绝规则。

要编写拒绝规则,您可以使用上述命令,将allow替换为deny 。

例如,要拒绝HTTP连接,可以使用以下命令

或者,如果您要拒绝192.168.2.1所有连接,192.168.2.1可以使用以下命令:

9、删除规则
知道如何删除防火墙规则与知道如何创建防火墙规则一样重要。 有两种方法可以指定要删除的规则:按规则编号或按规则本身。 这类似于创建规则时如何指定规则。 我们将从解释按规则编号删除方法开始。

如果您使用规则号删除防火墙规则,则要做的第一件事就是获取防火墙规则列表。 UFW status命令具有numbered选项,该选项在每个规则旁边显示数字:

如果我们决定删除规则1 (该规则允许端口22上的ssh连接),则可以在以下UFW delete命令中指定此规则:

10、按实际规则
规则编号的替代方法是指定要删除的实际规则。 例如,如果要删除allow http规则,则可以这样编写:

您还可以使用allow 80代替服务名称来指定规则:

11、检查UFW状态和规则
您可以随时使用以下命令检查UFW的状态:

12、禁用或重置UFW
如果您决定不想使用UFW,则可以使用以下命令将其禁用也就是关闭ufw:

如果已经配置了UFW规则,但是您决定要重新开始,则可以使用reset命令 也就是重置ufw规则: