如果您需要通过命令行连接到远程计算机,您可能会想使用 Telnet,它是 Internet 上仍在使用的最古老的协议之一。但是,最好这样做,因为它会损害您的数字隐私。
我们将介绍为什么您不应该使用 Telnet 远程连接到服务器,以及您可以使用哪些其他安全协议。
什么是远程登录?
Telnet (TN) 是一种网络协议和软件包,允许您通过 TCP/IP 网络或 Internet 连接到远程计算机和终端。Telnet 创建于 1969 年,并由 Internet 工程任务组标准化为最初的 Internet 协议 (IETF) 之一。
Telnet 是一个专门构建的程序,可将远程计算机/服务器连接到主机。它专为远程服务器访问、管理和客户端/服务器架构而设计。用户可以通过提供正确的登录和登录凭据来访问远程系统上的特权功能。Telnet 命令可以在任何支持 Telnet 的客户端或服务器设备上运行。
Telnet 没有任何安全功能,并以明文形式发送所有消息。因此,Secure Shell 在许多应用程序和服务 (SSH) 中很大程度上取代了 Telnet。
Telnet的工作
Telnet 是一种客户端-服务器协议,可以连接到远程计算机,通常是服务器,并打开命令行。此实用程序可用于 ping 端口并确定它是否打开。Telnet 使用虚拟终端连接仿真器,它是计算机连接的抽象实例,它模仿使用标准协议连接到系统的物理终端。对于需要传输数据文件的用户,可以同时使用 FTP 和 Telnet。
Telnet 允许用户远程连接到机器,通常称为 Telnet 进入系统。他们必须提供他们的登录名和密码组合才能访问远程计算机,这使他们能够运行命令行,就好像他们实际出现在计算机上一样。用户的 IP 地址将匹配他们登录的计算机,而不是他们用来登录的计算机,无论他们的实际位置如何。
Telnet 的安全问题
如果没有解决方法,客户端和服务器之间的 Telnet 会话不会加密。那些有权访问主机之间的 TCP/IP 数据包流的人可以监视所有流量、侦听并记录潜在的敏感信息,例如 Telnet 服务器用户的登录名和密码。使用 Telnet,计算机之间传输的所有内容都是纯文本格式。这也适用于用户名和密码。如果您使用 Telnet,“中间人”攻击可以轻松拦截连接并泄露您发送的任何凭据。
这说明了 Arpanet(演变为 Internet 的初始网络)在其中创建的几种文化。Arpanet 是 1960 年代末和 1970 年代初美国政府的一个实验性研究项目,没有计划成为现代互联网今天的庞大全球网络。
创作者是希望连接该国领先研究型大学的学者,他们彼此信任。没有人会尝试闯入计算机。
一些路由器制造商继续使用 Telnet 并使其可访问并犯其他安全错误,例如硬编码凭据。它已经到了攻击策略变得过于可预测的地步:感染设备,然后在打开 Telnet 协议端口的同一网络上寻找其他设备。
该恶意软件会在极少数情况下尝试一些流行或默认密码,并寻找其他开放端口。如果硬件没有得到充分保护并且仍然有一个过度开放的端口,那么控制很容易。Telnet 使用路由器上的端口 23,除非另有配置。但是,它不是使用此端口的唯一协议。许多其他物联网设备使用 telnet,但由于通信未加密且以纯文本形式进行,因此存在风险。Telnet 被认为是一种过时的技术。
Telnet 的应用程序
Telnet 可用于在服务器上执行一系列任务,包括文件编辑、程序执行和电子邮件检查。
一些服务器允许通过 Telnet 远程访问公共数据,允许用户玩简单的游戏或查看天气预报。存在许多这些功能是因为它们怀旧或与需要特定数据的早期系统兼容。
Telnet 还允许用户连接到任何使用基于文本的未加密协议的软件,例如 Web 服务器和端口。用户可以在远程系统的命令提示符中键入 Telnet 后跟远程设备的名称或 IP 地址,telnet 连接将 ping 端口以查看它是否打开。空白屏幕表示端口已打开但有错误消息。
Telnet 的替代方案:SSH 和 Mosh
芬兰赫尔辛基科技大学的学生 Tatu Ylönen 受到启发,构建了 Secure Shell 或 SSH,以应对密码窃取攻击。OpenSSH 是一个 OpenBSD 项目,是当前 Unix 和 Linux 系统上使用最广泛的安全协议之一。甚至 Windows 10 都带有内置版本的 OpenSSH。
这并不意外,因为 SSH 从一开始就消除了使 Telnet 如此危险的问题。SSH 是一种加密两台或多台机器之间连接的协议,因此即使攻击者设法利用它,他们也无法破译正在发生的事情。
SSH 和 Telnet 一样非常有用,但它所基于的主要技术假设意味着进一步的网络部署暴露了它的缺陷。在 SSH 中假定有线的、永远在线的连接。看看如果您在连接时合上笔记本电脑盖会发生什么。您的 SSH 连接将变得无响应。
SSH 是一种加密协议和接口,用于运行网络服务、shell 服务以及与远程计算机的安全网络通信。在不安全的网络之上,Secure Shell 允许两个远程连接的用户执行网络通信和其他服务。它最初是一个 Unix 命令,但在 Windows 计算机上也受支持。创建 SSH 是为了允许用户安全地登录到远程计算机并执行 shell 和网络功能。例如,网络管理员可以使用它登录到远程 Web 服务器。它也是 Telnet、RSH 和 rexec 协议的安全替代方案。基于 SSH 的通信/进程通常使用客户端/服务器设计,同时具有客户端和服务器 SSH。
客户端经过身份验证和安全连接,并将加密命令传递给服务器以执行。基于 RSA 公钥加密的数字证书同时验证客户端和服务器。SSH 使用的加密技术是 AES、IDEA 和 Blowfish。
Mosh 旨在解决在笔记本电脑、移动设备和无线连接上使用 SSH 的问题。即使您的 Wi-Fi 网络出现故障,Mosh 也能让您保持连接状态,并在多个网络之间高效漫游。
状态同步协议是 Mosh (SSP) 使用的一种新协议。使用传统的远程连接技术,如 Telnet 和 SSH。在 SSH 下,服务器向下游发送一些字节给客户端。
SSP 为组合添加了一个新层。服务器和客户端都使用序列号来跟踪传输。当服务器收到与前一个不同的序列号时,它会识别出客户端已切换连接。这意味着从一个 Wi-Fi 网络移动到另一个网络,或者从一个 Wi-Fi 网络移动到移动网络,或者从一个 Wi-Fi 网络移动到有线连接等等,都很简单。
实时字符回显是 Mosh 提供的另一个有用的功能。使用 SSH 时,您可能会注意到在输入和看到您的文本出现在屏幕上之间存在延迟,因为服务器会将您输入的内容回显给您。
SSH 与 Telnet:有什么区别?
与 Telnet 相比,SSH 更安全。
Telnet 以纯文本形式发送数据,而 SSH 对其进行加密。
Telnet 不使用任何身份验证,但 SSH 使用公钥进行身份验证。
与 Telnet 相比,SSH 在带宽上增加了一点负担。
SSH 在几乎所有应用程序中几乎完全取代了 Telnet。
SSH 和 Telnet 都用于相同的目的。
最后,SSH 客户端(允许您连接 SSH 服务器的软件)可用于所有主要操作系统和平板电脑操作系统。