返回博客
一月 13, 2026指南

如何在 Linux 服务器上配置防火墙

配置 UFW (Ubuntu) 和 Firewalld (CentOS) 防火墙以保护服务器安全的完整指南。

如何在 Linux 服务器上配置防火墙

防火墙对于服务器安全至关重要,它控制传入和传出的网络流量。本指南涵盖了在 Ubuntu/Debian 上配置 UFW 以及在 CentOS/RHEL 系统上配置 Firewalld 的方法。

安装 UFW

bash
sudo apt update
sudo apt install ufw -y

UFW 基本命令

bash
# 检查状态
sudo ufw status

# 启用防火墙
sudo ufw enable

# 允许 SSH(重要!)
sudo ufw allow 22/tcp

# 允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 拒绝某个端口
sudo ufw deny 3306/tcp

# 删除一条规则
sudo ufw delete allow 80/tcp

使用应用程序配置文件

bash
# 列出可用的应用程序
sudo ufw app list

# 允许 Nginx
sudo ufw allow 'Nginx Full'

# 允许 OpenSSH
sudo ufw allow 'OpenSSH'

安装 Firewalld

bash
sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld

Firewalld 基本命令

bash
# 检查状态
sudo firewall-cmd --state

# 列出所有规则
sudo firewall-cmd --list-all

# 允许某项服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# 允许某个端口
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

使用区域 (Zones)

Firewalld 使用区域来管理网络安全。常用区域:

bash
# 列出所有区域
sudo firewall-cmd --get-zones

# 设置默认区域
sudo firewall-cmd --set-default-zone=public

# 向区域添加服务
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --reload

安全最佳实践

  • 在启用防火墙之前务必先允许 SSH,以免把自己锁在外面
  • 尽可能使用特定 IP 地址:sudo ufw allow from 192.168.1.100
  • 定期检查防火墙规则并删除不使用的规则
  • 启用日志记录以监控防火墙活动
  • 在应用于生产环境之前测试防火墙规则