banner
约 900 字
3 分钟

UFW 防火墙使用教程:五分钟加固你的服务器

摘要

服务器裸奔是最常见的安全隐患。本教程依据 UFW 官方手册整理,介绍"先放行 SSH 再 enable"的铁律、端口放行与删除、按来源 IP 限制、limit 防 SSH 爆破、默认策略白名单思路,并附 CentOS firewalld 对应命令。

UFW 防火墙使用教程:新手也能管好服务器端口

买来的服务器"默认一切端口都能访问",是被扫端口、被爆破的重灾区。UFW(Uncomplicated Firewall)是 Ubuntu/Debian 官方推荐的防火墙前端,把复杂的 nftables 规则简化成几条人话命令。本教程依据 UFW 官方文档(man ufw)与 Ubuntu Server 文档整理。

一、基本原则:先放行 SSH 再开启

远程服务器上配置防火墙,第一条铁律是先放行 SSH 端口再 enable,否则一开启就把自己锁在门外:

bash
sudo ufw allow 22/tcp       # 先放行 SSH!
sudo ufw enable             # 再启用防火墙
sudo ufw status verbose     # 查看当前规则

如果你的 SSH 改成了别的端口(比如 2222),就 allow 2222/tcp

二、常用命令

bash
sudo ufw allow 80/tcp           # 放行 HTTP
sudo ufw allow 443/tcp          # 放行 HTTPS
sudo ufw allow 8080             # 放行 TCP+UDP 的 8080
sudo ufw deny 3306              # 拒绝 MySQL 端口
sudo ufw delete allow 8080      # 删除一条规则
sudo ufw reset                  # 清空全部规则,重来

按服务名放行也可以(规则来自 /etc/services):

bash
sudo ufw allow ssh
sudo ufw allow "Nginx Full"    # 同时放行 80 和 443

三、限制来源 IP

只允许自己的 IP 访问管理端口,是最有效的加固手段:

bash
sudo ufw allow from 203.0.113.5 to any port 22 proto tcp
sudo ufw deny from 203.0.113.0/24    # 封掉一个网段

四、rate limiting 防爆破

UFW 内置了连接频率限制,非常适合保护 SSH:

bash
sudo ufw limit ssh

同一 IP 在 30 秒内发起超过 6 次连接就会被临时拒绝,暴力破解脚本基本就废了。

五、默认策略

UFW 启用后默认"拒绝所有入站、允许所有出站",这正是服务器想要的姿势。确认或修改:

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

思路是白名单:默认全关,需要哪个端口开哪个。用 sudo ufw status numbered 带编号查看规则,删除时用编号更不容易出错:

bash
sudo ufw status numbered
sudo ufw delete 3

六、CentOS/RHEL 用户怎么办

UFW 主要在 Debian/Ubuntu 系可用。RHEL 系对应的简洁工具是 firewalld:

bash
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

七、总结

需求

命令

开启防火墙

allow 22/tcpenable

查看规则

ufw status verbose

放行网站端口

allow 80/tcpallow 443/tcp

限制 SSH 来源

allow from IP to any port 22

防 SSH 爆破

ufw limit ssh

删除规则

delete allow 8080 或按编号删

给新服务器开荒的标准动作就三步:改 SSH 端口、ufw limit ssh、只放行必需端口。花五分钟,省掉日后九成的扫描告警。

END