Linux UFW防火墙安装与配置详解:从入门到精通
什么是UFW?
UFW 是 Uncomplicated Firewall 的缩写,意为“不复杂的防火墙”。它是 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文件中一些常见服务的端口。
#使用服务名:
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 服务器的安全性了。