共计 2336 个字符,预计需要花费 6 分钟才能阅读完成。
本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
xiaoz 之前经常使用的服务器操作系统是 Redhat 系列的 CentOS。然而,自从 CentOS Stream 变成了 RHEL 的滚动更新预览版后,xiaoz 开始逐渐转向 Debian。虽然一开始有些不习惯,但使用了一段时间之后,xiaoz 发现 Debian 仍然非常易用。
就拿防火墙管理这一块来说,我在 CentOS 下使用 firewalld
,转用 Debian 后,我发现ufw
更加简单易用。本文将分享 ufw
的快速上手方法。
关于 ufw
ufw(Uncomplicated Firewall)是一个简化的、易于使用的 Linux 防火墙工具,旨在方便用户管理 iptables 防火墙规则。它为用户提供了一个直观且易于理解的命令行界面,使得配置防火墙规则变得更加简单。
ufw 的一些主要特点和功能:
- 简化的防火墙管理:ufw 提供了一个简洁的命令行界面,让您能够轻松地添加、删除和修改防火墙规则。
- 基于 iptables:ufw 是基于 iptables 的,因此它与 Linux 内核中现有的防火墙技术兼容。它实际上是 iptables 的一个友好的前端。
- 允许和拒绝规则:您可以使用 ufw 创建允许和拒绝规则,以控制入站和出站流量。这让您可以精确地控制允许哪些连接进入或离开您的系统。
- 放行特定端口、协议和 IP:ufw 允许您放行特定端口、协议(TCP 或 UDP)以及特定来源或目标 IP 地址的连接。
- 限制特定 IP 访问:您可以使用 ufw 限制特定 IP 地址访问您的系统上的特定端口。
- 日志记录:ufw 可以记录防火墙活动,这对于监视您的系统安全和解决网络问题非常有用。
- 易于启用和禁用:ufw 可以轻松启用和禁用,让您在需要时可以迅速启用防火墙,或在进行系统维护时暂时关闭防火墙。
安装 ufw
在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:
# 安装 ufw
sudo apt-get update
sudo apt-get install ufw
然后启动ufw
:
# 启动 ufw
sudo ufw enable
# 设置为开机自启
sudo systemctl enable ufw
执行 sudo ufw status
查看当前状态,通常有 3 种状态:
- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。
- Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。
- Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
ufw 放行端口
ufw
的命令比 firewalld
简洁许多,比如你想放行单个端口,只需要执行:
# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。sudo ufw allow <port>
如果需要放行特定协议的端口,我们需要加上协议:
# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。sudo ufw allow <port>/<protocol>
放行一个端口范围:
sudo ufw allow <start-port>:<end-port>/<protocol>
将 <start-port>
替换为起始端口号,<end-port>
替换为结束端口号,<protocol>
为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行sudo ufw allow 8000:9000/tcp
ufw 删除已经放行的规则或端口
要在 ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:
方法 1:通过规则号删除
首先,运行以下命令以查看当前 ufw 的状态和现有规则:
sudo ufw status numbered
这将显示带有编号的规则列表。
确定您要删除的规则的编号,然后使用以下命令删除它,将 [rule_number]
替换为实际的规则编号:
sudo ufw delete [rule_number]
例如,要删除编号为 1 的规则,运行:
sudo ufw delete 1
方法 2:通过放行条件删除
您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许 TCP 端口 80 的规则,您可以运行:
sudo ufw delete allow 80/tcp
或者,如果要删除允许 UDP 端口 5000 的规则,您可以运行:
sudo ufw delete allow 5000/udp
删除规则后,再次运行 sudo ufw status
以确认所选规则已从 ufw 中删除。
阻止某个特定的 IP
使用以下命令阻止来自特定 IP(例如 123.57.22.204)的连接:
sudo ufw deny from 123.57.22.204
允许特定 IP 访问特定端口
使用以下命令允许特定 IP 访问特定端口。将 [ip_address]
替换为要允许的实际 IP 地址,将 [port_number]
替换为要允许访问的实际端口号,将 [protocol]
替换为 tcp
或udp
,具体取决于您要放行的协议:
sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
例如,要允许 IP 地址 192.168.1.10
访问 TCP 端口22
,您可以运行:
sudo ufw allow from 192.168.1.10 to any port 22/tcp
结语
ufw 是一个易于使用且功能强大的防火墙管理工具,它使得在 Linux 系统上配置防火墙规则变得更加简单。无论您是 Linux 新手还是有经验的管理员,ufw 都是一个值得尝试的工具。