Php 防止真正的服务器IP暴露

Php 防止真正的服务器IP暴露,php,security,cloudflare,Php,Security,Cloudflare,我为我的朋友们托管了几个网站,他们可以使用SFTP编辑这些网站。但我最近偶然发现了一件非常令人震惊的事情 使用: 他们能够获得服务器的真实IP。我正在使用CloudFlare从外部“屏蔽”IP,因此非常安全。我知道我可以为此使用VPN,但这是一个相当昂贵的选择。有没有办法避免他们使用这种特定的方法来获得真正的服务器IP 我通常只会以类似于典型共享主机帐户的方式保护服务器 虽然这是我所知的边缘,但我绝不是服务器安全方面的专家,我确实知道多年来遇到的一些事情 禁用对远程文件使用流文件包装器。这由P

我为我的朋友们托管了几个网站,他们可以使用SFTP编辑这些网站。但我最近偶然发现了一件非常令人震惊的事情

使用:


他们能够获得服务器的真实IP。我正在使用CloudFlare从外部“屏蔽”IP,因此非常安全。我知道我可以为此使用VPN,但这是一个相当昂贵的选择。有没有办法避免他们使用这种特定的方法来获得真正的服务器IP

我通常只会以类似于典型共享主机帐户的方式保护服务器

虽然这是我所知的边缘,但我绝不是服务器安全方面的专家,我确实知道多年来遇到的一些事情

  • 禁用对远程文件使用流文件包装器。这由PHP中的
    allow\u url\u fopen
    设置控制,并禁用使用
    fopen
    file\u get\u contents
    等打开远程文件

  • 禁用一些更危险的PHP函数,包括但不限于
    shell_exec
    exec
    eval
    popen
    。通过将它们添加到
    disabled_functions
    列表中,也可以在PHP ini文件中禁用这些函数

  • 删除用户的shell访问权限。他们仍然能够对sFTP和文件传输进行身份验证。但是他们将无法通过类似putty的东西通过SSH登录。您可以这样修改用户
    usermod-s/sbin/nologin myuser
    有关更多详细信息,请参阅

  • 设置一个测试帐户,使用您的客户端(您为其提供托管服务的人)拥有的相同访问权限,并测试哪些有效,哪些无效。这将让您了解它们能做什么和不能做什么,并为您提供一个在全局应用它们之前测试一些配置更改的位置

我相信你还可以做更多的事情,而且我真的不能完整地讨论服务器安全性。正如我所说,我决不是这方面的权威。所以我最后要说的是,尽可能多地进行研究,看看其他人在为共享托管服务器做什么,因为这基本上就是你所拥有的

我确实在14个关于服务器安全的最佳实践中找到了这篇文章

这只是对一些问题进行了高层次的概述,并没有涉及太多的技术问题

这是一个相当大的话题,有很多陷阱,但我希望我有限的知识至少能让您在保护服务器安全的道路上起步。记住,你要说的是服务器上的策略

也就是说,与用户沟通任何策略更改都非常重要。到目前为止,他们几乎拥有自由统治权。但是,如果您向他们解释这符合他们的利益,因为它不仅保护服务器,而且还保护他们的数据,那么这可能会更容易一些。他们有权知道,你也有义务告诉他们。这样他们就可以对代码进行任何必要的更改。但同样,这最终是您的服务器,您有责任使其尽可能安全


祝你好运

我不明白。你担心你的朋友知道你的主机有什么IP地址?为什么?我认为这根本不应该是“令人担忧的”。如果你允许他们在你的机器上运行代码,你就无能为力(VPN不会有帮助)。你为什么要担心这个?不,你不能。你不可能有一个双向面具,不可能。你可以用一种方式欺骗流量,但也就是说,两种方式是不可能的。真正的IP不能通过两种方式进行欺骗,因为服务器和客户端必须通信才能来回发送任何数据,如果IP通过两种方式被屏蔽,则您将无法与服务器或客户端通信,因为每个系统都没有发送数据的位置。为什么您试图对您授予FTP访问权限的人隐藏服务器IP?文件获取内容与146.255.36.1有什么关系?感谢您的回复,现在一切都清楚了。我之所以想隐藏它,是因为我自己在我的家庭网络上托管这些网站。但这肯定是我必须冒的风险。作为记录:我确实信任他们,但你永远不知道谁有权访问他们的FTP帐户。