春节前公司官网已经无缘无故接入数据库。因为之前发生过,假期也没多久,也没有太在意这种情况,只是尝试重启网站数据库。假期里,我发现了一些不对劲的地方。网站数据库在打开后不久就关闭了。检查服务器中的资源,发现服务器内存已满,甚至在CpU达到100%时远程连接变得极其缓慢。因此,解决网站被攻击的问题。
一开始觉得Apache占用网络资源,CpU太大。我在网上搜了各种资料,试了一上午,网站还是没有好转。仅通过启动pHp环境服务,服务器内存就被立即耗尽。所以我想知道我的服务器硬件配置是不是太低了,以至于我试图换成Nginx,这被称为网络资源最少的环境。以后再想吧。为了节省时间,运行内存立即从4G增加到8G。如果是阿里云服务器,则需要重新启动系统才能生效,因此又花了一个上午来自动备份重复数据消除和数据库。重启后网站服务打开,服务器运行内存直接耗尽。检查网络资源后发现N个Nginx都是死进程。网站打开缓慢,无法连接。
我再一次怀疑公司的网站服务器或者mysql网站数据库或者dedecms源代码有问题,可能是被黑客恶意攻击了。整个消除问题的过程基本上是烦死了。首先,替换dedecms,直接使用一个空白的html代码作为主页,启动公司网站服务和网站数据库。没问题。很好,一定是dedecms的代码问题。说到做到,把网站源代码和数据库打包到本地计算机。
在我电脑的win10系统中,pHp网站运行环境安装了phpstudy,还导入了dedecms和mysql备份文件。127.0.0.1打开本地访问后,网站正常打开,浏览新闻图片也正常。我非常怀疑mysql网站数据库的登录密码被破解,导致被黑客攻击。所以我修改了数据库的账号密码,在网站服务器上试了一下。运行内存确实没问题,但是网页无法访问,发现服务器中dedecms配置文件中的数据库登录密码没有变化。变更后公司网站正常,但运行内存瞬间耗尽,现象依然存在,网站无法再次打开。
无论如何,公司网站已经恢复,开通速度依然很快。这次网站安全事件至少花了我十个小时进行维护,相当于几天年假。我只是记录下解决问题的过程,希望能帮助更多遇到网站被攻击无法打开情况的朋友,根据我上面的分析和解决方案进行处理。