帮助中心 >
  关于网络安全 >
  给Ubuntu服务器装个简单好用的防火墙
给Ubuntu服务器装个简单好用的防火墙
时间 : 2026-01-19 15:34:01
编辑 : Jtti

在互联网上公开运行的服务器,第一道防线往往就是防火墙。它决定了哪些网络流量可以进出你的系统。对于刚接触Linux服务器的用户来说,传统的iptables规则集可能显得复杂难懂。幸运的是,UbuntuDebian系统提供了一个名为UFW的工具,它的全称是“Uncomplicated Firewall”,顾名思义,就是让防火墙配置变得简单直接。它本质上是一个对iptables的前端封装,通过人性化的命令简化了规则管理。

UFW在很多Ubuntu版本中已经默认安装。如果你的系统没有,安装过程非常迅速。首先更新软件包列表,然后安装ufw软件包。这个操作需要管理员权限,所以会用到sudo

sudo apt update

sudo apt install ufw

安装完成后,建议先不要急于启用。第一步是设置默认策略,这决定了如何处理那些没有特定规则匹配的流量。一个合理的基础策略是:默认拒绝所有传入连接,但允许所有传出连接。这样,服务器可以自由访问外部网络,而外部未经允许的连接则会被阻挡在门外。

sudo ufw default deny incoming

sudo ufw default allow outgoing

接下来,你需要根据服务器运行的服务,逐一开放必要的端口。最常见的情况是开放SSH端口(通常是22)。如果你正在通过SSH远程管理服务器,必须在启用防火墙前完成这一步,否则可能会立即断开连接并被锁在服务器外面。使用UFW允许SSH连接的命令很直观。

sudo ufw allow ssh

UFW内置了一些常用服务的定义,比如“ssh”对应端口22“http”对应端口80“https”对应端口443。你也可以直接使用端口号来指定规则,这在服务使用非标准端口时很必要。例如,如果你将SSH服务改到了2222端口,应该这样设置:

sudo ufw allow 2222/tcp

对于运行网站的服务器,你需要开放HTTPHTTPS端口。

sudo ufw allow http

sudo ufw allow https

如果你运行的是其他服务,比如MySQL数据库(默认端口3306)或自定义的API服务(例如在端口3000上),同样需要为其添加规则。规则可以指定协议(TCPUDP),这对于像DNS这样的UDP服务很重要。

sudo ufw allow 3306/tcp

sudo ufw allow 3000/tcp

sudo ufw allow 53/udp

除了允许特定端口的连接,UFW还允许基于IP地址设置更精细的规则。例如,你可以只允许某个特定IP地址(比如你的办公室或家用网络IP)连接到SSH端口,这比向全世界开放要安全得多。

sudo ufw allow from 203.0.113.10 to any port 22

相应地,你也可以拒绝来自特定IP地址的所有流量,这在遇到恶意扫描或攻击时很有用。

sudo ufw deny from 192.168.1.100

在添加了一系列规则后,你可以随时查看当前的规则列表。使用status命令会显示所有已配置的规则。加上`numbered`参数会为每条规则显示编号,这在后续需要删除某条特定规则时会很方便。

sudo ufw status numbered

如果你发现某条规则添加错了,或者不再需要,可以将其删除。删除规则有两种方式。一种是使用创建规则时的原始命令,只是把`allow``deny`换成`delete`。例如,删除允许HTTP的规则:

sudo ufw delete allow http

另一种更通用的方法是利用规则编号。先运行`sudo ufw status numbered`查看编号,然后使用`delete`命令跟上编号。

sudo ufw delete 3

在所有必要规则都配置妥当,并且反复确认SSH连接已被允许之后,就可以正式启用UFW防火墙了。启用命令会激活所有规则,并让防火墙随系统启动而自动加载。

sudo ufw enable

启用后,防火墙立即生效。你应该再次检查状态,并测试关键服务(如SSHWeb)是否仍能正常访问。如果测试通过,说明配置正确。

UFW还提供了一些高级特性。例如,`limit`规则可以帮助缓解破解攻击。它对某个端口的连接尝试进行速率限制,在一段时间内超过次数的连接会被暂时拒绝。这对保护SSH端口特别有用。

sudo ufw limit ssh

日志记录对于监控和排查问题很重要。你可以开启UFW的日志功能,记录被防火墙处理的连接尝试。日志通常保存在`/var/log/ufw.log`中。

sudo ufw logging on

如果你需要临时关闭防火墙进行某些测试(请注意安全风险),可以使用disable命令。这会使所有规则失效,但不会删除它们。

sudo ufw disable

如果想要彻底重新开始,可以使用reset命令。这会禁用UFW,并删除所有用户定义的规则。系统将回到安装UFW之初的状态。

sudo ufw reset

在管理防火墙时,一个重要的原则是最小权限。即只开放业务绝对必需的端口,其他一律关闭。对于生产服务器,建议在本地虚拟机或测试环境中先演练一遍完整的规则配置过程,确保没有遗漏也不会误操作。特别是通过远程SSH连接时,一个错误的规则就可能导致无法挽回的管理权限丢失。

UFW的成功之处在于它在强大和易用之间找到了平衡。它没有隐藏iptables的复杂性,而是提供了一套清晰的语法来管理它。你既可以用简单的命令满足日常需求,也可以在需要时深入底层去理解它生成的iptables规则。对于绝大多数UbuntuDebian服务器的使用场景,UFW提供的功能已经足够。花一点时间熟悉它的命令,为你的服务器配置好这道网络大门,是系统安全中一项投入小但收效显著的基础工作。

售前客服
JTTI-Ellis
JTTI-Jean
JTTI-Selina
JTTI-Amano
JTTI-Coco
JTTI-Defl
JTTI-Eom
技术支持
JTTI-Noc
标题
电子邮件地址
类型
销售问题
销售问题
系统问题
售后问题
投诉与建议
市场合作
信息
验证码
提交