是否可以监视组织本地网络内的 SSH 活动?具体来说,是否可以:
- 查看每个用户/机器打开的 SSH 连接以及它们所连接的服务器
- 嗅探 SSH 流量。如果系统管理员知道我的 SSH 密钥怎么办?
如果我将 SSH 服务器配置为接受端口 80 而不是端口 22 上的连接,看起来是不是就像我在远程计算机上浏览网页一样?基本上,我希望能够保持与某个服务器的 SSH 连接,而不必担心网络中的某个人窃听通信。
答案1
查看每个用户/机器打开的 SSH 连接以及它们所连接的服务器
当网络流量离开您的系统时,除非您通过交叉电缆物理连接到另一个系统,否则它会穿过至少一个中间系统。这些中间系统上的软件可以记录每个数据包的元数据,包括源 IP/端口和目标 IP/端口。高级软件甚至可以执行诸如将 TCP 流绑定在一起、了解正在使用的协议以及记录时间、持续时间和传输的字节数等操作。
对于 SSH,如果没有相关系统的帮助,很难将网络流量与生成它的用户关联起来,但如果用户系统上有某个程序记录了谁启动了哪个进程及其命令行参数,显然就可以推断出来。
嗅探 SSH 流量。如果系统管理员知道我的 SSH 密钥怎么办?
SSH 是加密的,这意味着虽然可以收集上述信息(对于穿过网络的任何内容都是如此),但传输的内容或有效负载将受到保护。
如果知道 SSH 密钥,就可以解密。
答案2
安全外壳
SSH 的定义是安全的,因为所有流量在所有网络传输时都经过加密。使用 SSH 时您无需担心窃听。
SSH 的全部目的是在客户端和服务器之间创建加密连接,以确保它们之间传输的任何信息都不能以加密形式以外的任何形式在任何网络上看到。
更改端口无论如何都无法掩盖流量,但这不是必需的,因为正如我所说,SSH 是完全加密的。无论如何,这充其量只能是“通过隐蔽实现安全”,而这无论如何都不是安全。
密钥泄露
如果系统管理员拥有您的 SSH 密钥,那么您就不必担心窃听,因为他们可以直接连接到服务器,更不用说解密通过网络发送的流量了。
他们不太可能拥有您的密钥,因为这些密钥在发送时无法被嗅探到,因为它们在传输过程中是加密的。
查看网络连接
网络管理员将能够确定您的用户帐户和计算机已连接到端口 22 上的特定 IP 地址,但他们只能看到这些。只要您的服务器安全配置正确,我认为这就不是什么大问题。
在面向 Internet 的 SSH 服务器上,一两个网络管理员很可能是最不可能攻击您服务器的人,您很可能会发现人们已经在不断攻击它,这被称为“互联网的背景噪音”。这可以通过查看您的身份验证日志来看到。只要只启用密钥身份验证,这不是问题,但我个人也喜欢运行 fail2ban 来过滤掉这些连接。
SSH 安全问题
使用 SSH 时最大的担忧是确保攻击者无法访问 SSH 服务器本身,通常是通过暴力攻击,但这也可以通过更复杂的有针对性的攻击来实现。
保护 SSH 服务器安全的最简单、最快捷的方法是启用密钥认证而不是密码认证。
如果可能的话,您应该从 Internet 上删除您的 SSH 服务器,并且只允许内部访问或通过 VPN 连接访问。
还有许多其他方法可以保护 SSH 服务器,例如双因素安全和数据包敲击。
Telnet 示例
正是由于这些原因,telnet 基本上不再被广泛使用。由于它不加密连接,所以所有内容(包括密码)都以纯文本形式通过网络发送,这意味着网络上任何正在嗅探数据包或监控连接日志的人都可以轻松获取用户名和密码信息以及通过 telnet 连接发送的任何其他信息。
更多信息
有关 SSH 的更多信息可以在这里找到...