ufw 防火墙
2024年10月31日大约 3 分钟
ufw(Uncomplicated Firewall)是 Ubuntu 和一些基于 Debian 的 Linux 发行版中的默认防火墙工具。ufw 是一个简化的前端,便于用户管理防火墙规则,背后使用 iptables 来实际处理数据包的过滤。ufw 设计友好,即使是初学者也可以轻松配置防火墙。
基本使用
启用与禁用防火墙
sudo ufw enable # 启用防火墙
sudo ufw disable # 禁用防火墙查看防火墙状态
sudo ufw status # 显示防火墙规则状态(简略)
sudo ufw status verbose # 显示详细的防火墙规则状态规则管理
在 ufw 中,规则按照“允许”(allow)或“拒绝”(deny)来设定,对应的是开放或阻止特定的端口或服务。
允许与拒绝端口
允许端口:
sudo ufw allow 22/tcp # 允许 TCP 端口 22(常用于 SSH) sudo ufw allow 80/tcp # 允许 HTTP 流量 sudo ufw allow 443/tcp # 允许 HTTPS 流量拒绝端口:
sudo ufw deny 21/tcp # 拒绝 FTP 服务的端口 21 sudo ufw deny 25 # 拒绝端口 25(默认 TCP)
允许与拒绝 IP 地址
允许特定 IP 地址访问:
sudo ufw allow from 192.168.1.100 # 允许指定 IP 访问所有端口 sudo ufw allow from 192.168.1.100 to any port 22 # 允许指定 IP 访问 SSH 端口拒绝特定 IP 地址访问:
sudo ufw deny from 192.168.1.101 # 拒绝指定 IP 地址的访问
删除规则
使用与添加规则时相同的语句删除指定规则,或通过规则编号删除。
sudo ufw delete allow 80/tcp # 删除允许 80 端口的规则
sudo ufw delete deny from 192.168.1.101 # 删除拒绝特定 IP 的规则应用服务名称管理
ufw 支持使用服务名称管理端口(服务名称由 /etc/services 文件定义),简化了常见服务的规则管理。
sudo ufw allow http # 允许 HTTP 服务
sudo ufw allow https # 允许 HTTPS 服务
sudo ufw allow ssh # 允许 SSH 服务配置默认规则
可以设置默认规则来决定是否默认允许或拒绝所有流量。
sudo ufw default deny incoming # 默认拒绝所有传入连接
sudo ufw default allow outgoing # 默认允许所有传出连接其他选项
限制(Limit):限制特定端口,以减缓对服务器的暴力攻击。例如,将 SSH 端口设为限制状态会在检测到异常访问后自动限制连接频率。
sudo ufw limit ssh # 限制 SSH 连接(防暴力破解)重置(Reset):将
ufw恢复到初始状态,清除所有规则。sudo ufw reset
示例配置流程
假设要配置一个 Web 服务器的防火墙:
启用防火墙:
sudo ufw enable设置默认规则:
sudo ufw default deny incoming # 拒绝所有传入流量 sudo ufw default allow outgoing # 允许所有传出流量允许 Web 服务:
sudo ufw allow http # 允许 HTTP 流量 sudo ufw allow https # 允许 HTTPS 流量允许 SSH 访问(若不使用默认端口,记得指定端口):
sudo ufw allow ssh # 允许 SSH 连接查看状态:
sudo ufw status verbose # 确认配置的规则是否生效
总结
ufw 的设计简单直接,适合轻量级的防火墙配置需求,尤其适合初学者或简单服务器的防火墙管理。