前言
UFW 是 “简单防火墙” 的缩写,是更复杂的 iptables 实用程序的前端。它旨在使管理防火墙变得像设置端口打开和关闭以及调节允许通过的流量一样简单。
ufw 可以在 Debian 和 Ubuntu 系统中使用,是默认的防火墙配置工具,默认 ufw 是禁用状态,支持 IPv4
和 IPv6
。
国内的服务器,一般都会有安全组,如果有安全组,则无须使用 ufw
国外的服务器,一般端口全都是放行的,所以有必要使用 ufw
如果是 CentOS 系统,可以使用 firewalld,强烈建议弃用 CentOS 系统,官方早已经不维护了,会有很多漏洞无法修复。
推荐系统:Debian > Ubuntu >>>>> CentOS
提示:以下所有命令默认在 root
环境下运行,如果是非 root
环境,则命令需要加前缀:sudo
ufw 使用
更新软件包
apt update
apt upgrade -y
安装
# 安装
apt-get install ufw
# 帮助命令
ufw --help
推荐配置
如果要开启防火墙的话,建议先拒绝所有入站流量,然后逐一打开需要的端口。
# 默认阻止入站(不会立即切断你的 SSH 连接,因为防火墙尚未启用)
ufw default deny incoming
# 默认允许出站
ufw default allow outgoing
# 拒绝所有访问(如果配置了入站/出战,这个可以不配置)
ufw default deny
# 根据需求开启端口
ufw allow 22
⚠注意
确保在修改 SSH 端口后,不要关闭当前 SSH 窗口,尝试使用新的端口进行 SSH 登录,以确保没有防火墙或其他网络配置问题,以免被自己锁定出服务器。
启用禁用
# 启用
ufw enable
# 查看状态
ufw status verbose
# 禁用
ufw disable
# 防火墙规则存放位置
# /etc/ufw 中的规则文件(后缀名:.rules)
允许拒绝
allow 例子:
# 接受 97 端口的 tcp/udp 流量
ufw allow 97
# 接受 97 端口的 tcp/udp 流量,并添加备注
ufw allow 97 comment 'open 97 port'
# 接受 97 端口的 tcp 流量
ufw allow 97/tcp
# 接受 97 端口的 udp 流量
ufw allow 97/udp
# 通过服务名来处理, 会从 /etc/services 中查找端口
ufw allow ssh
# 允许特定IP访问
ufw allow from 1.2.3.4
# 允许特定子网访问
ufw allow from 1.2.3.4/97
# 允许特定IP使用任何协议访问22端口
ufw allow from 1.2.3.4 to any port 22
# 允许特定IP使用任何TCP协议访问22端口
ufw allow from 1.2.3.4 to any port 22 proto tcp
deny 例子:
# 拒绝 97 端口的 tcp/udp 流量
ufw deny 97
# 拒绝 97 端口的 tcp 流量
ufw deny 97/tcp
# 拒绝 97 端口的 udp 流量
ufw deny 97/udp
# 通过服务名来处理, 会从 /etc/services 中查找端口
ufw deny ssh
# 拒绝特定IP访问
ufw deny from 1.2.3.4
# 同allow
ufw deny from 1.2.3.4 to any port 22
ufw deny from 1.2.3.4 to any port 22
ufw allow from 1.2.3.4/97 to any port 22 proto tcp
删除
# 要删除规则,只需在原始规则前加上删除,删除 80 端口的 tcp 配置
ufw delete deny 80/tcp
# 显示规则的顺序和ID号
ufw status numbered
# 删除编号规则(删除规则,规则将向上移动以填充列表)
ufw delete 1
日志
# 启用日志
ufw logging on
# 禁用日志
ufw logging off