配置完网站环境之后几乎就把防火墙UFW的事给忘了,直到最近安装雷池时才再一次地和它有了接触。
防火墙是用于监控和过滤传入和传出网络流量的工具。 它通过定义一组确定是允许还是阻止特定流量的安全规则来工作。而Debian系统中的UFW配置工具可以使得防火墙地管理变得更加简便。
Debian12中内置了该工具,即便系统中没有,也可以通过以下命令进行安装:

sudo apt update && sudo apt install ufw

使用sudo ufw status verbose命令将显示防火墙的状态。Status: inactive表示UFW为非活动状态,而Status: active表示防火墙已激活。
UFW防火墙的默认行为是阻止所有传入连接,并允许所有出站流量。这意味着除非你允许指定的端口,否则任何尝试访问服务器的人都将无法连接。
可以运行命令sudo ufw app list列出服务器上所有可用的应用程序配置文件。sudo ufw app info命令可以查找指定配置文件包含的防火墙规则详细信息。比如:

# sudo ufw app info 'WWW Full'
Profile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)

Ports:
  80,443/tcp

在启用UFW防火墙之前,必须明确允许SSH的连接,否则将无法连接到服务器。
sudo ufw allow ssh命令将UFW防火墙配置为允许SSH的连接。如果SSH不是监听默认端口22。则需要打开该端口。如果SSH服务监听端口非22,比如922,请运行命令sudo ufw allow 922/tcp允许该端口的连接。
然后运行sudo ufw enable命令启用防火墙,系统会提示你命令可能会中断SSH的连接是否要进行该操作。

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

只需键入y并按Enter回车。
接下来就是允许HTTP连接。可以使用指定端口和协议得方式(ufw allow port_number/protocol):

sudo ufw allow 80/tcp #仅tcp 80
sudo ufw allow 443/tcp #仅tcp 443

或者也可直接指定服务(sudo ufw allow http),系统会根据配置文件打开80和443端口。
如果需要打开其他端口,比如雷池的9443端口,则可以运行:

sudo ufw allow 9443/tcp

反之,如果想要删除某个规则,可以采用以下命令:

sudo ufw delete allow 9443 通过端口号删除规则

或者它通过编号的方式将其删除,比如:

sudo ufw status numbered #列出已编号的防火墙规则
sudo ufw delete 5 #根据编号删除

其中5号为9443端口的规则。
最后,其实这种防火墙设置在云服务器的网络规则中就已经有了,所以也并非一定要安装和启用UFW的。

参考资料:
如何在Debian 11配置防火墙ufw

最后修改:2025 年 05 月 16 日
如果觉得我的文章对你有用,请随意赞赏