最近公司的Java工程师总在抱怨mysql的参数"max_allowed_packet",时常被莫名其妙的修改为初始值(我们在开发中把这个值调整到了一个很大的值),造成后台服务器经常访问mysql数据库失败。
开始,检查了代码,没有发现异常。再检查mysql的通用日志,这下发现了可疑的痕迹。原来有黑客在攻击我们的数据库,并利用udf反弹shell(我们用的是linux服务器)下载执行文件并执行,太可怕了!!此人很狡猾,每次入侵后,都要小心的删除掉入侵的痕迹,恢复参数的初始值(这就是总是莫名其妙参数值发生变化的原因!!)。
立即采取应对措施:
1. 关掉加载文件的许可:local_infile 设为off。
2. 变更root账号为其他名字。
3. 变更mysql的缺省端口为其他值。
4. 禁止mysql服务器的网络访问许可。
第二天再查通用日志,哈哈,这个黑客不断的变更用户名,IP地址尝试登陆,都被服务器拒绝了。