关于UFW(Uncomplicated Firewall)的使用方法,这是一款在Ubuntu、Debian及其衍生系统(包括统信UOS、麒麟OS)上非常好用的防火墙管理工具。 ### 先安装UFW 在大多数Ubuntu/Debian系统中,UFW可能已经预装了。如果没有,安装起来非常简单: ```bash sudo apt update sudo apt install ufw ``` ### 基础使用流程 配置UFW建议遵循以下步骤,能帮你避免很多新手容易踩的坑: **1. 设置默认策略(安全基线)** 在启用防火墙前,先设置默认策略。推荐配置是“默认拒绝所有入站连接,默认允许所有出站连接”,这能最大程度保证安全,同时不影响系统正常对外访问。 ```bash sudo ufw default deny incoming sudo ufw default allow outgoing ``` **2. 放行SSH端口(生命线!)** 这是最关键的一步,**一定要在做任何其他操作之前先做**。如果你是通过SSH远程连接服务器,忘了放行22端口就直接启用防火墙,你会立刻断开连接,把自己锁在服务器外面。 ```bash sudo ufw allow ssh # 或者明确指定端口:sudo ufw allow 22/tcp ``` **3. 启用UFW防火墙** 确认SSH端口已放行后,就可以启用防火墙了。 ```bash sudo ufw enable ``` 系统会提示“Command may disrupt existing ssh connections”,输入 `y` 确认即可。 **4. 添加其他规则** 根据你的服务需求,放行必要的端口。规则添加后立即生效,无需重启。 ```bash # 放行Web服务 sudo ufw allow http # 放行80/tcp sudo ufw allow https # 放行443/tcp # 放行特定端口 sudo ufw allow 8080/tcp # 允许特定IP访问所有端口 sudo ufw allow from 192.168.1.100 # 允许特定IP访问特定端口(例如仅允许内网访问MySQL) sudo ufw allow from 192.168.1.0/24 to any port 3306 # 拒绝特定IP sudo ufw deny from 10.0.0.5 ``` **5. 查看和管理规则** ```bash # 查看防火墙状态和规则列表 sudo ufw status # 查看带编号的详细规则(方便删除) sudo ufw status numbered # 按编号删除规则(例如删除第3条) sudo ufw delete 3 # 按规则内容删除 sudo ufw delete allow 80 ``` ### 其他常用命令 | 操作 | 命令 | |------|------| | 禁用防火墙 | `sudo ufw disable` | | 重置所有规则 | `sudo ufw reset` | | 重载防火墙 | `sudo ufw reload` | | 启用日志 | `sudo ufw logging on` | | 查看日志 | `tail -f /var/log/ufw.log` | | 限制连接尝试(防暴力破解) | `sudo ufw limit ssh` | ### 新手避坑指南 - **永远先放行SSH**:这是最重要的原则,没有之一。 - **不要直接关闭防火墙**:服务访问不了时,排查端口放行规则,而不是直接 `ufw disable`。关闭防火墙等于家门不上锁。 - **生产环境最小权限**:只放行必要的端口,数据库端口(如3306)不要对公网开放,尽量用IP白名单限制访问。 UFW的核心就是这些,日常90%的需求都能覆盖。上手之后,你会发现它确实名副其实——Uncomplicated(不复杂)。