我已经遇到过两次这种情况,第一次我以为这只是随机发生的事情,所以我暂停了调查,直到今天再次遇到这种情况。
概括:
- Centos 5.7,sendmail 8.13.8
- crond 和 sendmail 的 CPU 使用率过高(分别在 25% 到 100% 之间)
- 磁盘 IO 超慢(ssh 运行良好,直到出现磁盘 IO 操作,如简单的 ls -la)
- “df -h” 显示我主挂载的磁盘使用量为 900G(约占总空间的 50%),我无法追踪哪个文件夹使用了所有空间,因为磁盘运行速度非常慢(它花了 30 秒才返回一个文件夹的 17M 使用量)
我尝试做的是:
- 终止 sendmail、crond 以及任何消耗超过正常 CPU 量的恶意 PHP 进程
- 关闭 httpd、sendmail、mysqld(所有这些都需要 1-5 分钟才能关闭)
结果:
- 无法终止 sendmail 进程,它一直出现在顶部,TIME 为 600Minutes+(我醒来时才发现有问题)
这些都不起作用,然后突然间,当我正在扫描日志(非常缓慢......)时,它又恢复了正常速度。
du -h 显示 900G 的使用量已经消失并回到 19G(这是它应该有的量),并且 sendmail 进程现在可以被终止......
我不知道从哪里开始调查这个奇怪的问题,所以如果有人可以分享一些技巧或阐明可能的原因那就太好了!
编辑(2011-11-01):
我发现我终止的进程的唯一记录是这一行
Oct 31 11:43:08 localhost sendmail[23302]: p9UIT2SB023302: from=[removed, it was not an email address though], size=1152544132509, class=0, nrcpts=1, relay=[removed]@localhost
至于 cronjobs,我目前正在运行 2 个,都是 php 脚本,分别每分钟运行一次和每小时运行一次。
编辑2(2011-11-01):
等一下...大小是 1152544132509(大约 1TB)...我猜这就是占用空间的原因...现在我必须找到发送该邮件的人。有什么建议可以让我找到罪魁祸首吗?
编辑3(2011-11-03):
我发现有超过 10,000 次未经授权的 SSH 登录尝试...也许服务器已被劫持以在其他地方进行黑客攻击...我将关闭使用密码的 SSH 登录并确保授权密钥确实是允许的密钥...
我还安装了 Denyhosts 来自动阻止任何进一步的暴力攻击。