Debian安装UFW防火墙
1、ufw简介
UFW,即简单防火墙,是iptables
的接口,旨在简化防火墙的配置过程。 尽管iptables
是可靠且灵活的工具,但对于初学者而言,可能很难学习如何使用它来正确配置防火墙。 如果您希望开始保护网络安全并且不确定使用哪种工具,UFW可能是您的正确选择
2、在UFW中使用IPv6(可选)
本教程是在考虑IPv4的前提下编写的,但是只要启用它就可以在IPv6上使用。 如果您的Debian服务器已启用IPv6,则需要确保UFW已配置为支持IPv6;否则,请执行以下步骤。 这将确保UFW除了管理IPv4外,还将管理IPv6的防火墙规则。
1 |
nano /etc/default/ufw |
确保IPV6
值为yes
。
3、特定端口范围
您可以使用UFW指定端口范围。 例如,某些应用程序使用多个端口而不是单个端口
例如,使用端口6000
– 6007
,使用这些命令:
1 2 |
ufw allow 6000:6007/tcp ufw allow 6000:6007/udp |
使用UFW指定端口范围时,必须指定规则应适用的协议( tcp
或udp
)。 我们之前没有提到这一点,因为未指定协议会自动允许这两种协议,这在指定单个端口情况下是可以的。
4、特定的IP地址
使用UFW时,您还可以指定IP地址。 例如,如果要允许来自特定IP地址的连接,例如192.168.2.1
的工作或家庭IP地址, 192.168.2.1
需要指定from
,然后指定IP地址:
1 |
ufw allow from 192.168.2.1 |
您还可以通过添加to any port后跟端口号to any port指定允许IP地址连接的特定端口。 例如,如果要允许192.168.2.1
连接到端口22 (SSH),请使用以下命令:
1 |
ufw allow from 192.168.2.1 to any port 22 |
5、子网路
如果要允许IP地址的子网,可以使用CIDR表示法指定网络掩码。 例如,如果要允许所有IP地址从192.168.2.1
到192.168.2.255
,可以使用以下命令:
1 |
ufw allow from 192.168.2.0/24 |
同样,您也可以指定允许子网192.168.2.0/24
连接到的目标端口。 同样,我们将使用端口22 (SSH)作为示例:
1 |
ufw allow from 192.168.2.0/24 to any port 22 |
6、启用UFW
要启用UFW,请使用以下命令:
1 |
ufw enable |
您将收到一条警告,指出该命令可能会破坏现有的SSH连接。 我们已经设置了允许SSH连接的防火墙规则,因此可以继续。 用y响应提示,然后按ENTER 。
该命令默认会将UFW设置为开机启动,如果发现重启后UFW并没有自动启动,可以手动设置UFW服务开机自动启
#可以手动设置UFW服务开机自动启
1 2 3 4 |
#手动开启 systemctl start ufw #自动开机开启 systemctl enable ufw |
7、查看状态
防火墙已经正常启动 运行sudo ufw status verbose
命令以查看您设置的规则
1 |
ufw status verbose |
8、拒绝连接
如果您尚未更改传入连接的默认策略,则UFW被配置为拒绝所有传入连接。 通常,这要求您创建明确允许特定端口和IP地址通过的规则,从而简化了创建安全防火墙策略的过程。
有时,您可能想基于源IP地址或子网拒绝特定的连接,也许是因为您知道服务器正受到来自那里的攻击。 另外,如果要将默认传入策略更改为允许 (不建议这样做),则需要为不想允许连接的任何服务或IP地址创建拒绝规则。
要编写拒绝规则,您可以使用上述命令,将allow替换为deny 。
例如,要拒绝HTTP连接,可以使用以下命令
1 |
ufw deny http |
或者,如果您要拒绝192.168.2.1
所有连接,192.168.2.1
可以使用以下命令:
1 |
ufw deny from 192.168.2.1 |
9、删除规则
知道如何删除防火墙规则与知道如何创建防火墙规则一样重要。 有两种方法可以指定要删除的规则:按规则编号或按规则本身。 这类似于创建规则时如何指定规则。 我们将从解释按规则编号删除方法开始。
如果您使用规则号删除防火墙规则,则要做的第一件事就是获取防火墙规则列表。 UFW status命令具有numbered选项,该选项在每个规则旁边显示数字:
1 |
ufw status numbered |
如果我们决定删除规则1 (该规则允许端口22上的ssh连接),则可以在以下UFW delete命令中指定此规则:
1 |
ufw delete 2 |
10、按实际规则
规则编号的替代方法是指定要删除的实际规则。 例如,如果要删除allow http规则,则可以这样编写:
1 |
ufw delete allow http |
您还可以使用allow 80代替服务名称来指定规则:
1 |
ufw delete allow 80 |
11、检查UFW状态和规则
您可以随时使用以下命令检查UFW的状态:
1 |
ufw status verbose |
12、禁用或重置UFW
如果您决定不想使用UFW,则可以使用以下命令将其禁用也就是关闭ufw:
1 |
ufw disable |
如果已经配置了UFW规则,但是您决定要重新开始,则可以使用reset命令 也就是重置ufw规则:
1 |
ufw reset |