在 Debian 12 上安装和配置一个好的防火墙工具可以帮助你保护服务器安全。根据之前的讨论,我推荐你使用 firewalld,因为它提供了灵活性,并且能够动态管理防火墙规则,同时保持较高的易用性。

安装 firewalld

以下是安装和配置 firewalld 的步骤:

1. 安装 firewalld

首先,确保你的包列表是最新的,然后安装 firewalld

sudo apt update
sudo apt install firewalld

2. 启动并启用 firewalld

安装完成后,启动 firewalld 并设置为开机自动启动:

sudo systemctl start firewalld
sudo systemctl enable firewalld

3. 配置 firewalld

firewalld 使用 "区域" 的概念,每个区域可以有不同的防火墙规则。默认情况下,服务器上的所有网络接口都分配到 "public" 区域。我们将配置允许 SSH、HTTP、HTTPS 和 FTP 流量。

允许 SSH 流量

首先,确保你不会在启用防火墙后失去 SSH 连接:

sudo firewall-cmd --zone=public --permanent --add-service=ssh
允许 HTTP 和 HTTPS 流量

接下来,允许 HTTP 和 HTTPS 流量以确保网站服务正常运行:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
允许 FTP 流量

如果你需要 FTP 服务,允许 FTP 流量:

sudo firewall-cmd --zone=public --permanent --add-service=ftp
重新加载防火墙规则

在添加或修改规则后,你需要重新加载 firewalld 以使更改生效:

sudo firewall-cmd --reload

4. 验证配置

你可以使用以下命令查看当前配置的规则和允许的服务:

sudo firewall-cmd --zone=public --list-all

5. 配置其他服务(可选)

根据需要,你可以配置其他服务或端口。例如,如果你使用特定端口或服务,可以使用以下命令添加相应规则:

sudo firewall-cmd --zone=public --permanent --add-port=12345/tcp

6. 启用日志记录(可选)

如果你想启用防火墙日志记录,以监控和审查连接情况:

sudo firewall-cmd --set-log-denied=all
sudo systemctl restart firewalld

总结

firewalld 是一个功能强大且灵活的防火墙工具,非常适合在 Debian 12 上使用。通过上述步骤,你可以保护你的服务器免受未经授权的访问,同时确保关键服务的正常运行。如果你有更多问题或需要进一步的帮助,随时告诉我!