UFW(Uncomplicated Firewall)是Ubuntu系统默认的防火墙管理工具,基于iptables开发,旨在简化防火墙规则的配置流程。它提供了简洁的命令行接口,适合新手快速上手,同时支持IPv4和IPv6协议。
多数Ubuntu系统(如Server、Desktop版本)默认预装UFW,可通过以下命令检查是否安装:
ufw --version
若未安装,执行以下命令安装:
sudo apt update && sudo apt install ufw
启用防火墙并设置开机自动启动:
sudo ufw enable
系统会提示“Command may disrupt existing ssh connections”,输入y确认(需确保已开放SSH端口,避免被锁)。
临时关闭防火墙(不影响下次启动):
sudo ufw disable
默认策略决定了未明确允许的流量的处理方式,建议采用“拒绝所有入站,允许所有出站”的安全策略:
sudo ufw default deny incoming # 拒绝所有外部入站连接
sudo ufw default allow outgoing # 允许所有本机出站连接
执行后,防火墙会默认阻止所有未明确开放的端口,仅放行用户主动发起的连接。
/etc/services中定义):sudo ufw allow ssh # 允许SSH服务(默认22/tcp)
sudo ufw allow http # 允许HTTP服务(默认80/tcp)
sudo ufw allow https # 允许HTTPS服务(默认443/tcp)
sudo ufw allow 80/tcp # 允许TCP协议的80端口
sudo ufw allow 443/tcp # 允许TCP协议的443端口
sudo ufw allow 53/udp # 允许UDP协议的53端口(DNS)
sudo ufw allow from 192.168.1.100 # 允许192.168.1.100访问所有本机端口
sudo ufw allow from 192.168.1.0/24 # 允许192.168.1.0/24网段访问所有本机端口
allow类似):sudo ufw deny 22/tcp # 拒绝TCP协议的22端口(SSH)
sudo ufw deny smtp # 拒绝SMTP服务(默认25/tcp)
allow 22/tcp):sudo ufw delete allow 22/tcp
sudo ufw status numbered # 显示带编号的规则列表
sudo ufw delete 1 # 删除编号为1的规则
查看简要状态(是否启用、默认策略、开放端口):
sudo ufw status
输出示例:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
查看详细状态(包含规则编号、协议、源/目标地址):
sudo ufw status verbose
开启/关闭防火墙日志(日志默认存储在/var/log/ufw.log):
sudo ufw logging on # 开启日志
sudo ufw logging off # 关闭日志
日志级别可通过/etc/ufw/ufw.conf中的LOGLEVEL调整(如low、medium、high)。
sudo ufw allow from 192.168.1.0/24
sudo ufw deny from 10.0.0.0/8
允许连续端口范围(如8000-8005/tcp):
sudo ufw allow 8000:8005/tcp
若配置错误或需要重新开始,可重置UFW(清除所有规则并禁用):
sudo ufw reset
执行后,需重新启用并配置默认策略。
sudo ufw allow 22/tcp
sudo ufw enable
/etc/default/ufw,将IPV6=yes(默认开启)。通过以上步骤,可快速掌握Ubuntu防火墙(UFW)的基本配置与管理,保障系统网络安全。