​​Linux UFW防火墙安装与配置详解:从入门到精通​

什么是UFW?

UFW 是 ​​U​​ncomplicated ​​F​​ire​​w​​all 的缩写,意为“不复杂的防火墙”。它是 iptables 的一个前端工具,旨在简化 Linux 防火墙的配置过程,让新手和管理员都能轻松地管理防火墙规则。

UFW对服务器起到什么作用?

UFW 防火墙对 Linux 服务器来说,扮演着 ​​“守门人”​​ 或 ​​“安全警卫”​​ 的角色。它的核心作用是​​控制进出服务器网络端口的流量​​,从而极大地增强服务器的安全性。

安装UFW

在我们日常使用中,大多数基于 Debian/Ubuntu 的系统中,UFW 通常已经预装。如果没有,可以使用包管理器轻松安装。
1、更新软件包(确保您的系统软件包列表是最新的。)

#Debian/Ubuntu 的系统软件包更新命令
sudo apt update

2、安装 UFW​

sudo apt install ufw

基本配置与使用

1、检查 UFW 状态(安装完成后,首先检查 UFW 的状态,默认情况下它应该是​​未激活​​的。)

sudo ufw status
#输出通常是 Status: inactive。

如果要查看更详细的规则信息(当 UFW 激活后),可以使用:

sudo ufw status verbos

2、设置默认策略(非常重要!)

在启动防火墙之前,必须先设置默认策略。这是防火墙的“兜底”规则,决定了对于未明确允许的传入和传出连接如何处理。
一个非常安全且常见的做法是:​​拒绝所有传入连接,允许所有传出连接​​。

#拒绝所有传入连接
sudo ufw default deny incoming

#允许所有传出连接
sudo ufw default allow outgoing

default deny incoming:阻止所有外部主动发起的连接。
default allow outgoing:允许服务器上的程序自由访问外部网络(如下载更新、访问API等)。

3、允许特定服务的连接(根据部署的网站的业务需求开放相对应的端口)

方法一:使用服务名(推荐)

UFW 知道 /etc/services文件中一些常见服务的端口。

允许 SSH 连接 (端口 22)​​:这是​​最重要的一步​​,否则激活防火墙后你将无法远程连接服务器!
#使用服务名:
sudo ufw allow ssh

#或者使用端口号:
sudo ufw allow 22/tcp

#服务名和端口号根据个的喜爱随机选取一种即可。

开放网页所需用到的端口:80端口、443端口

#允许 HTTP (端口 80) 和 HTTPS (端口 443)**,如果你的机器是 Web 服务器:

#使用服务名:
sudo ufw allow http
sudo ufw allow https

#或者使用端口号:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

#服务名和端口号根据个的喜爱随机选取一种即可。

方法二:允许特定端口

允许一个特定端口(如 3000,用于 Node.js 应用):

sudo ufw allow 3000

允许特定端口和协议(如 UDP 端口 1194 用于 OpenVPN):

sudo ufw allow 1194/udp

允许一个端口范围(如 8000 到 8010):

sudo ufw allow 8000:8010/tcp

4、激活 UFW

在确认​​已经允许了 SSH 连接​​之后,就可以启用 UFW 了。

sudo ufw enable

系统会提示“命令可能会破坏现有的 SSH 连接”,输入 y并按回车确认。激活后,防火墙会立即生效,并且会在系统启动时自动运行。

再次检查状态,确认规则已生效:

sudo ufw status numbered

numbered参数会为规则加上编号,方便后续管理(如删除规则)。

高级管理与规则操作

1、拒绝连接

如果你想明确阻止某个端口或 IP 的访问。

# 拒绝一个端口的访问
sudo ufw deny 21/tcp

# 拒绝来自特定 IP 地址的所有连接
sudo ufw deny from 192.168.1.100

2、删除规则

有两种方法可以删除规则:
​​方法一(推荐):使用规则编号​​
首先查看带编号的规则列表:

sudo ufw status numbered

假设你想删除编号为 3 的规则(例如是允许端口 21 的规则):

sudo ufw delete 3

方法二:通过指定规则本身​

直接写出你想删除的规则:

# 比如删除允许 SSH 的规则
sudo ufw delete allow ssh

3、限制连接(Rate Limiting)

这是一个非常有用的安全功能,可以自动阻止某个 IP 在短时间内发起过多连接(常用于防止 SSH 暴力破解)。

对 SSH 连接启用限制:

sudo ufw limit ssh

启用后,如果某个 IP 在 30 秒内发起 6 次或更多连接,后续连接将被阻止,直到一段时间后再解除。这对于正常使用不会有影响,但能有效遏制攻击。

4、允许特定 IP 或子网

允许来自特定 IP 的所有连接:

sudo ufw allow from 192.168.1.50

允许特定子网(如 192.168.1.0/24):

sudo ufw allow from 192.168.1.0/24

允许特定 IP 访问特定端口:

sudo ufw allow from 192.168.1.50 to any port 22

5、重置 UFW

如果你想把 UFW 的配置全部清空,回到初始状态,可以使用重置命令。

警告:这会删除所有规则,并将默认策略恢复为允许所有连接,请谨慎操作!
sudo ufw reset

系统会再次确认是否继续。

禁用或完全关闭 UFW

临时禁用 UFW​​(规则会保留,下次启用还会生效):

sudo ufw disable

完全重置并禁用 UFW​​(最彻底的方式):

sudo ufw reset
sudo ufw disable

 最用总结

安装 UFW > 设置默认策略 > 允许 SSH > 允许其他服务 > 仔细检查规则 > 启用 UFW ​> 定期维护

遵循这个指南,你就可以轻松地使用 UFW 来增强你的 Linux 服务器的安全性了。

阅读剩余
THE END