由max_allowed_packet引发的mysql攻防大战

1.原因

程序的sql语句比较长.max_allowed_packet默认是1024.于是就报错了.一开始手动改 global max_allowed_packet ,改完后.莫名奇妙被还原.后来改配置文件还是不起作用(其实配置文件一开始就没生效,后来发现的).好几次了.恼火的不行.于是昨天百度之.看了好几个都感觉不靠谱.其中有个说被黑客攻击了.建议开启 general_log 日志查看一下记录.打算试试.

2.现行

日志昨天开启.今天上午查看.看着看着就发现不对了.果不其然被黑客入侵了.

可能之前就已经攻破了.顺利的登录.看了一下系统版本.然后开始授权.接着开始加入了一个用户.

查了一下ip地址.浙江绍兴的.

连接记录

种木马文件.我到目录看了下.已经有好几个木马了.名字不一样.怪不得杀毒软件总报病毒.原因在这呢.

3.第一回合

先把黑客新增的用户删除.root用户不允许远程登录.新建了一个用户.给了基本权限.结果晚上的时候数据库还是有些连不上去.断断续续的

不停的暴力破解密码.虽然禁止root登录.但是这个感觉有点ddos的意思.我自己反而连接不上去了.

4.第二回合

默认是3306.黑客可以通过软件扫描.暴力破解.那就改端口.随便改了一个.于是我就能顺利的连接了.

5.后记

这次真是这么近第一次接触黑客.以前都是自己手贱点击不明安装程序什么的才会中木马.这次看他们的sql语句真的是大涨见识.好多自己都不太清楚.

比如写文件等等.没注意找让文件运行的语句.我想应该还会自动加载木马让它运行.

以前真是没怎么注意安全这方面.我想只要限制一下用户和改端口.我想他就没办法了.其实后面这个改端口比较重要.

我又想他会不会去扫端口去........

上面第二部分的图片有的是上午看到的.还有一部分是晚上登录不上去看到的.就放一起了.

这里说几个这次用到的命令

查看日志是否开启

show GLOBAL VARIABLES like '%general_log%' --查看是否开启
set GLOBAL general_log = on  --设置为开启
set GLOBAL general_log_file='g:\mysql.log'  --日志路径

虽说开了比较占地方.但是感觉不对劲.或者开个一两天看看有没有异常.还是值得的.而且也不需要重启mysql服务

我这个是测试机用的mysql免安装版.启动比较好说.双击 mysqld.exe就行

关闭命令,在bin目录.按住shift.右键有个在此处运行命令窗口.然后执行下面的话就行.

安装目录bin mysqladmin -uroot -p shutdown

 显示用户权限

show grants for root@'localhost';

查看用户

select * from mysql.user

插入用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 

授权

GRANT SELECT, INSERT, UPDATE, DELETE, DROP, INDEX, ALTER, EXECUTE ON `数据库名称`.* TO '用户名称'@'%'

说说这个改端口.这个免安装版目录下有个my-default.ini的文件.直接改这个是不启用的.要复制一份.改名为my.ini才可以.

改端口就是在这个配置文件加一句 port=xxx 就可以了.

原文地址:https://www.cnblogs.com/lansehai/p/7186667.html