linux 安装wordpress 无故往外发送大量垃圾邮件

linux 安装wordpress 无故往外发送大量垃圾邮件 始末

表现出来的现象就是, 网站运行没多久,mysql服务就挂了,重启也无法启动起来,提示 No such file or dicrionary  但是很明显mysql是存在的,但是为什么出现这个提示,后来搜了一下,发现是因为磁盘空间不足。

然后运行 df -l 发现磁盘使用不到30%  怎么会不足呢。 继续搜, 发现原来是 inode 节点不足了。 使用命令 df -i 查看发现 inode节点使用100% 已经满了。

inode节点不足是怎么造成的呢,于是继续搜索。 然后发现是因为巨量的小文件导致 inode节点不足。 那这个巨量的小文件在哪呢,怎么查找,头疼。 毕竟菜鸟对linux命令不熟悉。

然后继续搜索,发现可以使用linux命令查找最近的文件,因为这个问题是最近几天才出现的,所以可以查找一下最近几天增加的文件有哪些。然后使用 find / mtime +2 即可查看最近2天新增的文件。 然后从列表中发现在 var/spool/postfix/maildrop/ 目录中发现有大量文件。 使用命令  ls -l |grep "^-"|wc -l 查看该目录下的文件个数,有30多万个,乖乖,问题找到了。 

然后搜了一下 发现这个目录的文件之所以会有这么多 就是因为发送邮件失败后都会有文件被存放到这里,就类似于一个队列的感觉。 然后把这个目录的所有文件删除。 进入该目录后,使用 rm -rf * 发现提示命令超过最大长度。乖乖,删还费劲啊,然后继续搜索,删除巨量文件的linux命令

ls|xargs rm -f

光把这里删了还不行,还需要修改一下mail服务里面的配置,让它以后不再保存这些队列邮件了

解决方法:
修改“/etc/crontab”
将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以 service crond restart

修改完以上内容后,开启邮件服务,然后 垃圾邮件还是继续发。 我就奇怪了,这到底是为啥呢。

然后以为网站中毒,于是逐个扫描病毒。 使用了360提供的 主机卫士 http://zhuji.360.cn/  查杀网站后门文件。 清理完毕后仍然无效

再后来搜到一篇文章,说是空间被当作代理服务器发送邮件,因为没有屏蔽未经认证的域名。 然后在apche的配置文件中

httpd.conf 修改一下非允许域名不能解析到本空间地址。

<VirtualHost *:80>
  ServerName 你的IP地址
  <Location />
    Order Allow,Deny
    Deny from all
  </Location>
</VirtualHost>

 

对允许的域名做如下设置,允许的域名这段代码放在上面禁止的代码之后:

<VirtualHost *:80>
     ServerName domain.com
     ServerAlias www.domain.com
     DocumentRoot /var/www/
     <Directory "/var/www/">
          Options Indexes FollowSymLinks
          AllowOverride all
          Order allow,deny
          Allow from all
     </Directory>
</VirtualHost>

如果有多个域名,复制多个即可。

原文见这里 http://blog.itpub.net/59745/viewspace-611292/

 

上的设置已经完成,重启以观后效

 

后续补充:

经过一段时间测试后发现 maildrop又被塞满了,然后 使用crontab -e 对 root的crontab进行了编辑。 增加一行 MAILTO="" 再试试吧。

posted @ 2015-11-27 23:58  前端小小菜  阅读(415)  评论(0编辑  收藏  举报