如何在 Ubuntu Linux 上使用 ufw 限制 SSH(TCP 端口 22)连接
UFW 的意思是“简单防火墙”。它是 Ubuntu 上的默认防火墙。但是,也可以在其他 Linux 发行版上安装 ufw。例如 Arch Linux、Debian、CentOS 等。换句话说,ufw 只不过是管理 Netfilter 防火墙的前端。它提供了一个命令行界面,旨在让开发人员和新 Linux 用户使用起来简单易用。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 防火墙 |
先决条件 | ufw 命令 |
操作系统兼容性 | Debian • Linux • Ubuntu |
预计阅读时间 | 4 分钟 |
使用 ufw 进行速率限制
您可以添加限制规则。目前仅支持 IPv4(Internet 协议版本 4)。使用此语法,您可以拒绝来自在过去 30 秒内尝试发起 6 次或更多连接的 IP 地址的连接。此选项对于 sshd 等服务非常有用,因为这些服务是机器人和其他不良行为者的攻击。因此,我们使用防火墙来保护我们的服务器免受暴力攻击。
使用 ufw 限制 SSH(TCP 端口 22)连接的语法
语法非常简单:
## ufw limit ssh various usage ## ufw limit ssh ufw limit ssh/tcp ufw limit ssh comment 'Rate limit for openssh server' ### if sshd is running on tcp port 2022 add #### ufw limit 2022/tcp comment 'SSH port rate limit'
如何使用 UFW 限制 ssh
上述规则对于防止暴力登录攻击非常有用。使用限制规则时,ufw 通常会允许连接,但如果 IP 地址在三十秒内尝试发起六个或更多连接,则会拒绝连接。设置后,您可以使用以下命令进行验证:
这是我看到的:
$ sudo ufw limit ssh/tcp comment 'Rate limit for openssh serer'
$ sudo ufw status
Status: active To Action From -- ------ ---- 22/tcp LIMIT Anywhere # Rate limit for openssh serer 22/tcp (v6) LIMIT Anywhere (v6) # Rate limit for openssh serer
iptables 中实际的规则如下:
-A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource -A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 6 --name DEFAULT --mask 255.255.255.255 --rsource -j ufw-user-limit -A ufw-user-input -p tcp -m tcp --dport 22 -j ufw-user-limit-accept
请注意,新的 ssh 规则将取代之前的 ssh 规则。
使用 UFW 和其他协议限制 ssh
您也可以限制其他服务:
ufw limit {service}
## be careful with http/https limits as many users might be behind a large proxy server ##
ufw limit 25/tcp
ufw limit http
ufw
ufw limit https
使用 GUFW gui 工具限制 ssh
GUFW 是 ufw 的图形界面 (GUI)。让我们看看如何使用 GUFW 限制 ssh 连接。使用apt 命令或apt-get 命令确保 GUFW 安装在 Ubuntu/Debian Linux 上:
然后按如下方式启动 gufw:
gufw &
运行防火墙 GUI 工具需要身份验证。因此,出现提示时,输入您的密码,然后您将看到如下窗口:
然后单击规则选项卡,然后单击屏幕底部的 + 图标。接下来,在应用程序过滤器框中键入“ssh”,然后单击橙色图标:
现在 SSH 的高级设置已打开,请确保将策略设置为限制。然后单击“添加”,再单击“关闭”按钮:
结论
在 Ubuntu Linux 上运行的 OpenSSH 服务器打开了 TCP 端口 22,这会带来很多麻烦。它每天都会受到黑客和机器人的扫描和攻击。因此,我们学习了如何使用 ufw 命令限制 ssh 连接速率来保护您的 Ubuntu 或 Debian Linux 服务器免受攻击。确保使用强密码并设置 ssh 密钥。请参阅我的“ OpenSSH 服务器最佳实践”页面了解更多信息以及下面所有其他与 ufw 相关的教程。在此处查看 ufw手册页或键入以下 man 命令:
man ufw
- 在Ubuntu 16.04 LTS服务器上安装 UFW 防火墙
- 在 Ubuntu/Debian Linux 上使用 ufw 打开 ssh 端口 22
- 配置 ufw 将端口 80/443 转发到 LAN 上托管的内部服务器
- 在 Ubuntu Linux 服务器上使用 ufw 阻止 IP 地址
- 在 Ubuntu Linux 上使用 ufw 限制 SSH(TCP 端口 22)连接
- 使用 UFW 的 Ubuntu Linux 防火墙打开端口命令
- 在 Ubuntu/Debian Linux 上使用 ufw 打开 DNS 端口 53
- 在Ubuntu 18.04上使用 UFW 设置防火墙
- 删除 UFW 防火墙规则
- 在Ubuntu 20.04 LTS上使用 UFW 配置防火墙
- 向 UFW 规则添加评论
- Ubuntu 22.04 LTS 5 分钟设置 UFW 防火墙