如何在 Linux 中更改 SSH 端口?

linuxoperating systemopen source

简介

安全 Shell (SSH) 是一种在 Linux 系统中通过不安全的网络提供安全通道的协议。它通常用于远程登录、文件传输以及在远程计算机上安全地执行命令。对于 Linux 系统管理员、开发人员以及远程访问其计算机的用户来说,SSH 是一个必不可少的工具。

检查当前 SSH 端口

在更改 SSH 端口之前,了解当前正在使用的端口号非常重要。默认情况下,SSH 服务监听端口 22。

然而,这是一个众所周知的端口,经常成为攻击者的目标。因此,建议将此默认端口号更改为非标准端口号。

使用命令"sshd -T | Grep Port"检查当前端口

要检查您的 SSH 服务当前正在监听的端口号,您可以在 Linux 终端中使用以下命令 -

sshd -T | Grep port

此命令将显示如下输出 -

port 22 addressfamily any 

listenaddress 0.0.0.0:22 listenaddress [::]:22 

输出含义说明

以上输出显示 SSH 服务当前正在侦听端口 22 上的 IPv4 和 IPv6 连接(分别由"listenaddress 0.0.0.0:22"和"listenaddress [::]:22"表示)。"grep"命令会过滤掉所有包含"port"字样的文本行。第一行("port 22")显示服务器的默认 SSH 侦听端口号为 22。

如果您的系统管理员已将默认 SSH 端口从其标准值"22"更改,您将在此输出中看到新值,而不是"22"。为您的 Linux 系统选择新的非标准端口号时,记录这些信息将会很有帮助。

选择新端口号

选择新端口号的指南

检查当前 SSH 端口后,下一步是选择新的端口号。务必选择一个随机的端口号,该端口号应未被 Linux 系统上的其他服务常用。这有助于防止攻击者轻易找到并利用您的 SSH 服务。

互联网号码分配机构 (IANA) 建议使用 49152 到 65535 之间的端口号作为私有端口或临时端口。此端口范围保留用于动态或私有用途,不应被任何注册服务使用。

所选的新端口号也应易于记忆,以便您日后不会忘记。确保所选端口号符合组织内现有的所有安全策略。

常用的备用端口

虽然有众多可用端口可供选择,但有些端口作为默认 SSH 端口 (22) 的替代方案已变得越来越流行。其中一个备用端口是端口 2222,由于其易于记忆且易于在 ISP 和防火墙上注册,它随着时间的推移而越来越受欢迎。另一个常用的备用端口是端口 443,HTTPS 流量使用该端口。

由于大多数防火墙允许 HTTPS 流量通过而无需检查,因此使用此备用 SSH 端口可以帮助避免被网络管理员检测到,否则网络管理员可能会阻止使用非标准端口。其他常用的替代端口包括 992、2020 和 8080。

然而,需要注意的是,虽然这些是更改 Linux 系统中 SSH 端口的不错选择,但它们仍然被攻击者广泛使用,他们可能会尝试扫描这些端口以查找易受攻击的系统。因此,建议您选择独特的未使用的高范围端口,例如前面提到的 49152-65535 之间的端口,以获得最大的安全性。

编辑 SSH 配置文件

选择新的端口号后,下一步是编辑 sshd_config 文件。此配置文件决定了 SSH 服务器的行为方式,并允许您自定义其设置。

要访问该文件,请在 Linux 计算机上打开任意文本编辑器,然后导航到 /etc/ssh/sshd_config。您可以使用任何您喜欢的文本编辑器,但 nano 和 vim 是命令行环境中常用的编辑器。

$ sudo vim /etc/ssh/sshd_config

使用文本编辑器修改 sshd_config 文件

使用您选择的文本编辑器打开 sshd_config 文件,找到包含"#Port 22"的行。"#"符号用于注释掉行,因此请从此行中删除它,并将"22"更改为您选择的端口号。

#Port 22

Port 22

按 Ctrl + O 或使用编辑器的"保存"功能保存对 sshd_config 文件所做的更改。然后按 Ctrl + X 退出编辑器。

需要进行哪些更改的说明

配置文件中唯一需要进行的更改是修改前面提到的"端口"设置。除非您知道自己在做什么,否则请勿进行任何其他更改,因为它们可能会影响 SSH 功能。

值得注意的是,如果您出于安全原因更改了 SSH 端口号,建议您在同一配置文件中设置"PermitRootLogin no"以禁用通过 SSH 的 root 登录。通过使用新的端口号和其他推荐的安全设置修改此配置文件,您可以显著降低不安全端口遭受攻击的风险,同时仍然允许通过其他安全通道进行授权访问。

重启 SSH 服务

编辑 sshd_config 文件后,需要重启 SSH 服务以应用更改。您可以在终端上使用以下命令执行此操作:

systemctl restart sshd

此命令将停止 SSH 服务,然后使用新配置重启该服务。如果您在此阶段遇到任何错误,则可能是由于配置文件存在问题。

使用命令行检查新端口是否正常工作

要检查新端口是否正常工作,您可以使用以下命令 -

ssh -p [new_port_number] [username]@[ip_address]

将 `[new_port_number]` 替换为您选择的端口号,`[username]` 替换为您的用户名,`[ip_address]` 替换为您服务器的 IP 地址。如果所有配置均正确无误,您应该能够使用 SSH 通过新端口连接到您的服务器。需要注意的是,更改默认 SSH 端口并不能确保您的系统完全安全。

但是,它确实增加了一层额外的安全保护,使攻击者更难以通过常用端口攻击您的系统。为了保护服务器上存储的敏感信息,实施多层安全措施始终是一个好习惯。

结论

更改默认 SSH 端口是保护 Linux 系统安全的重要一步。使用非标准端口可以增加攻击者找到您的服务器并发起攻击的难度。虽然这并非万无一失的解决方案,也不应成为唯一的安全措施,但它是保护系统安全的重要一步。

同样需要注意的是,仅仅更改 SSH 端口并不能完全保证系统安全。您还应该启用其他安全措施,例如配置防火墙、禁用 root 登录以及使用基于密钥的身份验证。

按照本文概述的步骤,您可以轻松更改 Linux 系统上的默认 SSH 端口,并提高其整体安全性。祝您安全无虞!


相关文章


有用资源