我正在尝试为我父母在家里设置一个媒体服务器,这样他们就可以翻录磁盘(当然是他们自己的),并从房子的任何地方进行流式传输。当我不在家时,我想将文件传输到存放视频等的计算机时,就会出现问题。
我希望能够通过 SSH 进入计算机并放入文件然后将它们移动到需要去的地方。
我知道我需要端口转发才能访问它,但是我有一个开放的端口,而且据我了解,它或多或少就像网络中的一扇敞开的门,是这样吗?我需要担心这样的事情吗?还是更像是分配端口而不告诉任何人。
我确实在另一篇文章中看到了一些提到端口敲击的内容 我有一个 FTP 服务器,需要打开端口 21,如何保证它的安全?
这是一个好的解决方案吗?或者我应该采用其他方法吗?
信息:网络由调制解调器+无线+路由器->带有 Plex 的计算机组成,所有其他设备都通过无线连接进行连接,由于端口是开放的,我担心如果端口开放,其他设备很容易受到攻击
答案1
我的理解是,它或多或少就像是网络中的一扇敞开的门
不,端口不是这样工作的。
能够连接到特定端口(TCP 或 UDP)仅允许您进行通话到特定服务正在监听该端口上的连接。因此,如果您计算机上的 TCP 端口 22 被 OpenSSH“打开”,它只会转到 OpenSSH 服务器,而不会转到其他地方。
“敞开大门”更多地与实际服务未得到妥善保护。例如,如果您决定向互联网开放 RDP(Windows 远程桌面)服务,那么由于该服务存在许多影响 Windows RDP 服务的漏洞,例如身份验证绕过,因此该服务的风险非常高。但最终,攻击者仍然必须通过 RDP 服务一些或其他方式。
OpenSSH 通常被认为是低风险的,大多数问题来自帐户配置(弱密码),而不是服务器软件本身。它没有允许攻击者在未先登录的情况下做任何事情的记录。如果您应用通常的缓解措施(例如要求非基于密码的登录),您应该会很好。
(请注意,并非所有 SSH 实现都同样好,例如,允许直接 ssh 进入路由器、烤面包机或其他嵌入式设备仍然存在风险。)
答案2
我知道我需要端口转发才能访问它,但是我有一个开放的端口,据我了解,它或多或少就像网络中的一扇敞开的门,是这样吗?我需要担心这样的事情吗?还是更像是分配端口而不告诉任何人
端口被分配给单独的进程——进程将监听一个 IP 和端口,并且在该 IP+端口上收到的任何流量(该组合称为插座) 将进入该流程。
因此,端口是流程的“敞开的大门”。
除非进程允许访问或被诱骗允许访问,否则它并不是进入网络的敞开的大门。
在您的情况下,该过程(可能是 OpenSSH)sshd
- 它确实允许远程登录、远程文件访问,并且可能授予攻击者对您的系统的大量权力。
当攻击者进行恶意攻击时,可以采取以下方法来防止您的进程执行超出其应有的操作:
该进程是否以尽可能最小的权限运行?(sshd必须以 root 身份运行,因为它允许登录 - 所以不幸的是你不能在那里做很多事情)
您是否正在运行最新版本/应用所有安全补丁(确保 OpenSSH 已更新并启用自动更新)
该流程是否配置安全?(例如,您应该禁止 root 登录
sshd.conf
并考虑使用密钥而不是密码)您是否正在监控该过程以检查是否存在异常活动(密切关注
/var/log/auth.log
并考虑了解和设置fail2ban
)。您登录系统的密码是否安全并定期更改?
此外,sshd
以下也是一个好主意:
SSH 和常用实现 OpenSSH 都已经存在一段时间了,并且被广泛使用。OpenSSH 是由 OpenBSD 项目开发的,该项目在安全性方面享有盛誉。如果配置不正确,它完全可能不安全,因此请研究配置选项。
如果不需要,请禁用 X 转发和其他功能。您需要研究
sshd.conf
文件中的所有选项。禁用通过密码进行 root 登录 - 最好完全禁用 root 登录。
如果让它在默认端口 22 上运行,您将收到大量来自随机 IP 的自动密码猜测。请使用其他端口。如果有人说这是“通过隐蔽性实现安全” - 这通常是个好建议,但您最好还是使用其他端口。
使用密钥代替密码。大多数(如果不是全部) SFTP/SCP 客户端都支持密钥。