UFW(Uncomplicated Firewall)是Ubuntu系统内置的简化防火墙管理工具,通过直观命令封装iptables复杂逻辑,实现高效安全策略配置:启用前务必放行SSH以防失联,设置“拒绝入站、允许出站”为推荐默认策略,灵活添加端口/服务/IP/子网级规则(支持编号管理与顺序调整),并辅以日志监控、规则重置等高级功能;操作时需注意规则匹配顺序(先匹配生效)、IPv4/IPv6同步生效等细节,即可在保障远程访问安全的前提下,快速构建系统网络防护屏障。

一、UFW 简介

UFW(Uncomplicated Firewall)是 Ubuntu 系统中预装的防火墙管理工具,作为 iptables 的前端,提供更友好、直观的界面来管理防火墙规则。其主要特点包括:

  • 简便易用:命令行语法直观,易于上手
  • 默认策略:启用时提供基本安全保护
  • 灵活性高:可轻松添加、修改和删除规则
  • 日志记录:支持详细日志记录,便于故障排查

二、基本操作

1. 安装与启用

# 安装(如未预装)
sudo apt update && sudo apt install ufw

# 启用防火墙(重要:启用前确保已放行SSH,避免被锁在系统外)
sudo ufw allow ssh
sudo ufw enable

# 禁用防火墙
sudo ufw disable

2. 状态查看

# 基本状态
sudo ufw status

# 详细状态(包含默认策略和日志级别)
sudo ufw status verbose

# 带编号的状态(便于删除特定规则)
sudo ufw status numbered

三、默认策略设置

# 拒绝所有入站连接(推荐)
sudo ufw default deny incoming

# 允许所有出站连接(推荐)
sudo ufw default allow outgoing

四、规则配置

1. 允许规则

# 允许特定端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 允许服务(使用服务名称)
sudo ufw allow ssh
sudo ufw allow http

# 允许特定IP访问
sudo ufw allow from 192.168.1.100

# 允许特定IP访问特定端口
sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

# 允许子网访问
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

# 对特定网络接口设置规则
sudo ufw allow in on eth0 to any port 80

2. 拒绝规则

# 拒绝特定端口
sudo ufw deny 21/tcp

# 拒绝服务
sudo ufw deny ssh

# 拒绝特定IP
sudo ufw deny from 192.168.1.100

# 拒绝特定IP访问特定端口
sudo ufw deny from 192.168.1.100 to any port 22

五、规则管理

1. 删除规则

# 通过规则内容删除
sudo ufw delete allow ssh
sudo ufw delete allow 80/tcp

# 通过规则编号删除(先查看编号)
sudo ufw status numbered
sudo ufw delete 2

2. 移动规则顺序

# 先查看规则编号
sudo ufw status numbered

# 删除原规则
sudo ufw delete 9

# 在指定位置插入规则
sudo ufw insert 1 deny from 192.168.1.100

六、高级操作

# 重置防火墙(清除所有规则并关闭防火墙)
sudo ufw reset

# 设置日志级别
sudo ufw logging on
sudo ufw logging medium

# 查看日志
sudo less /var/log/ufw.log

七、实用提示

  1. 启用防火墙前:务必先放行SSH连接,避免被锁在远程服务器外
  2. 规则顺序:UFW按规则添加顺序处理,先匹配的规则生效
  3. 服务名称:UFW支持使用服务名称(如ssh、http)代替端口号
  4. IPv6支持:大多数规则会同时应用于IPv4和IPv6

通过以上命令,您可以有效地管理Ubuntu系统的防火墙,保护系统安全。