服务器防火墙启用

1.安装防火墙

sudo apt update
sudo apt install ufw

2.配置必要端口

sudo ufw allow 80    # 开放 HTTP
sudo ufw allow 443   # 开放 HTTPS
sudo ufw allow 22    # 开放 SSH

3.启用 UFW

启用 ufw 防火墙(此操作会启动防火墙):
执行这一步操作前,一定要先执行第二步,尤其是配置放行ssh连接的端口,不然会把所有端口都关掉。导致服务器无法连接。

sudo ufw enable

其他必要端口: 根据业务需求开放其他端口。例如,数据库服务:

  • MySQL: 3306
  • PostgreSQL: 5432

允许特定 IP 访问: 如果需要限制某个端口只允许特定 IP 访问,可以用:

sudo ufw allow from <IP地址> to any port <端口号>

4.检查当前防火墙状态

sudo ufw status verbose

5.重新加载规则(如有修改)

sudo ufw reload

6.停用或调整 UFW(如果需要)

sudo ufw disable

7.如果你想基于协议管理规则,例如只开放 TCP:

sudo ufw allow 22/tcp

8.关闭所有不必要端口(谨慎使用)

sudo ufw default deny incoming   # 默认拒绝所有传入流量
sudo ufw default allow outgoing  # 默认允许所有传出流量

关闭指定端口:
先查看当前所有开放的端口和规则,确认需要关闭的端口。

sudo ufw status numbered
  • 这会显示所有已配置的规则,并为每条规则分配一个编号(#)。
  • 输出示例:
Status: active

    To                         Action      From
--                         ------      ----
[ 1] 22                       ALLOW       Anywhere
[ 2] 80                       ALLOW       Anywhere
[ 3] 443                      ALLOW       Anywhere

使用以下命令禁用特定端口:

sudo ufw delete allow <端口号>

比如:

sudo ufw delete allow 80

如果指定了协议(如 TCP 或 UDP),请用以下命令:

sudo ufw delete allow <端口号>/<协议>

如果规则较多,可以按编号删除规则:

sudo ufw delete <规则编号>

删除后,检查规则是否正确更新:

sudo ufw status verbose

注意事项

  1. 确保端口未被使用: 在关闭某个端口前,确认对应的服务(如 Web 服务、数据库)已停止或切换到其他端口。
sudo netstat -tuln | grep <端口号>

如果端口仍被占用,应停止相关服务。
2. 测试关键服务: 删除端口规则后,测试其他服务(如 SSH)是否正常工作,避免意外断开连接。
3. 重新加载 UFW(可选): 如果规则修改后需要强制应用,可以重新加载 UFW:

sudo ufw reload