如何在 Ubuntu/Debian Linux 上使用 ufw 打开 ssh 22/TCP 端口
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 防火墙 |
先决条件 | ufw 命令 |
操作系统兼容性 | Debian • Linux • Mint • Pop!_OS • Ubuntu |
预计阅读时间 | 3 分钟 |
图 01:允许来自特定 IP 地址或子网的传入 SSH
ssh 是一个客户端程序,用于登录远程计算机并在远程 Linux 或 Unix 计算机上执行命令。SSHD 是 ssh 的守护程序。机器人和不受欢迎的人经常以 SSHD 为目标。因此,您必须保护您的服务器。
使用 ufw 打开 SSH 端口
使用 ufw 命令打开 ssh 端口的语法如下:
$ sudo ufw allow ssh
或者
$ sudo ufw allow 22/tcp
可以添加以下注释:如果您在 TCP 端口 # 2222
$ sudo ufw allow 22/tcp comment 'Open port ssh tcp port 22'
上运行 ssh ,请输入:
$ sudo ufw allow 2222/tcp
允许 SSH 连接
在此示例中,我将配置我的服务器以允许传入的 SSH 连接,但仅来自 IP 地址 192.168.1.100 和子网 (CIDR) 192.168.2.0/24:
验证这一点:
$ sudo ufw allow from 192.168.1.100 to any port 22
$ sudo ufw allow from 192.168.2.0/24 to any port 22 proto tcp
$ sudo ufw status
Status: active To Action From -- ------ ---- 22/tcp ALLOW 192.168.2.0/24
如果您有大量 UFW 规则,请尝试使用grep 命令或 egerp 命令进行过滤选项。例如:
$ sudo ufw status | grep -i -E 'ssh|22'
如何允许来自特定 IP 地址的 SSH 传入
语法与上面相同,但我们也要限制目标 IP 地址:
要允许来自名为 202.54.1.1 的特定 IP 地址的传入 SSH 连接,请输入:
在此示例中,允许从 10.105.28.0/24 到在 10.105.29.1 和 TCP 端口 22 上运行的 SSH 服务器:
$ sudo ufw allow from {IP_ADDRESS_HERE} to any port 22
$ sudo ufw allow from 202.54.1.1 to any port 22
$ sudo ufw allow from 10.105.28.0/24 to 10.105.29.1 port 22 proto tcp comment 'Allow SSH'
使用 ufw 打开 VPN IP 的 ssh 端口
假设您有一个公共 IPv4 地址为 139.1.2.3 的 VPN,并且只想从该 IP 进行 ssh 访问。那么您可以运行:
export VPN_IP="139.1.2.3" # VPN server/client address export SERVER_PUB_IP="198.74.55.33" # server IPv4 address export SSH_PUB_PORT="22" # server ssh port number sudo ufw allow from "$VPN_IP" to "$SERVER_PUB_IP" port "$SSH_PUB_PORT" proto tcp comment 'Only allow VPN IP to access SSH port'
验证一下:
sudo ufw status sudo ufw show added
确认信息如下:
Added user rules (see 'ufw status' for running firewall): ufw allow from 139.1.2.3 to 198.74.55.33 port 22 proto tcp comment 'Only allow VPN IP to access SSH port'
如何允许来自特定子网的 SSH 传入
语法是:
或者:
我们也可以使用 ufw 声明目标 sshd 服务器 IP:
让我们允许来自名为 202.54.1.1/29 的特定 IP 子网的传入 SSH 连接,输入:
在这个最后的例子中,允许并打开从名为 10.8.0.0/24 的特定 IP 子网到 10.8.0.1 和目标 tcp 端口 22 的 SSH 端口连接,输入:
$ sudo ufw allow from {IP_SUB/net} to any port 22
$ sudo ufw allow from {IP_SUB/net} to any port 22 proto tcp
$ sudo ufw allow from {IP_SUB/net} to {ssh-server-ip-address} port 22 proto tcp
$ sudo ufw allow from 202.54.1.1/29 to any port 22
$ sudo ufw allow from 10.8.0.0/24 to 10.8.0.1 port 22 proto tcp
限制所有传入的 SSH 端口
打开传入 SSH,但拒绝来自在过去 30 秒内尝试发起 6 次或更多连接的 IP 地址的连接。语法为:
$ sudo ufw limit ssh
或
$ sudo ufw limit 22/tcp
如何检查 ufw 的状态
语法是:
$ sudo ufw status
示例输出:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 72.14.190.12 443/tcp ALLOW Anywhere 72.14.190.12 80/tcp ALLOW Anywhere
如果未启用 ufw,则输出为:
$ sudo ufw status
Status: inactive
要使用默认规则集(包括打开 SSH 端口)打开 UFW,请输入:
$ sudo ufw enable
$ sudo ufw status verbose
结论
您学习了如何在 Ubuntu 或 Debian Linux 服务器上使用 ufw 打开 ssh 端口。请参阅此处的 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 防火墙
相关另外,请查看我们针对Alpine Linux Awall、CentOS 8、OpenSUSE、RHEL 8、Debian 12/11、Ubuntu Linux 版本16.04 LTS / 18.04 LTS / 20.04 LTS和22.04 LTS 的
所有完整防火墙教程。