linux mysql 数据库安全防护

      某天某时,我突然发现之前的系统登录不上去了,去查看数据库,发现我自己建的数据库,里面的表全被删掉了,所有的数据库,里面只有一个表WARNING,里面有个字段Bitcoin_Address,测试与比特币有关的攻击。更让人无法接受的是,后面查了一下,发现公司所有linux服务器下的mysql全是这样了。好可怕。

     手忙脚乱,于是马上修改系统密码,数据库密码,关闭数据库外网访问权限,联系相关人员,修改防火墙策略,等等。总结一下,处理的第一阶段,比较紧张,慌慌忙忙做了如下一些工作。

     一,查看

          cat ~/.bash_history (执行过的命令)

          cat ~/.mysql_history(数据库操作记录)

          cat  /var/log/mysqld.log  (里面有一些数据库访问记录,有一点价值),发现里面很多外国IP访问过的记录。

          last 系统登录历史

          数据库mysql下的几个表,user表,performance_schema库,performance_ xxx库,之前performance_开头的两个库没怎么注意过,但这个其实很重要。

         打开/etc/my.cnf,让数据库只绑定本机,bind 127.0.0.1.

         passwd root,修改系统密码

         有一点没做,就是mysql root绑定我自己的本机计算机访问,一是想着我本机为局域网ip不知可否,另外也怕系统不安全,再者怕mysql数据库出问题。

   二,冷静下来后,该按部就班的查找问题了

       1,iptraf暂时没找到更好的替代工具。如果没安装yum install iptraf -y 安装就好了。可惜我今天犯了一个小错误,一直敲iftraf,折腾了半小时,最后才突然发现命令敲错了。

        iptraf ,选择网卡,可以看到实时访问的ip,包括TCP和UDP。看到一条信息,180.165.254.111:51959.还有很多外国UDP访问记录。我们UDP是没做防火墙过滤的。于是第二个命令,查51959.这个端口。

        netstat -na(t),查到51959这个对应的22,那么应该是我自己的连接。没问题了。接下来就是udp,全是国外的ip访问,肯定不对。那么就是先设置本地防火墙。udp全是这样的东西,94.130.49.186:ntp to 10.20.65.206:ntp 。我还不太青年广场ntp是什么东西。

      vim /etc/sysconfig/iptables, 打开防火墙配置,编辑里面的规则。

      iptables -I(-D) INPUT -s 211.1.0.0 -j DROP 封(解)单个ip

      iptables -I(-D) INPUT -s 211.0.0.0/8 -j DROP封(解)整段ip

      iptables -list 规则列表

      iptables -L 是否生效

      这里只做介绍,我没用到。

      这样一圈下来,除了udp发现有ntp很多外国访问记录外,而,ntp是时间相关的协议,应该没有问题。没发现其他可疑访问。还发现一个223.104.210.6:29238,只查到这个是上海移动IP,查不到这个端口对应我服务器的什么端口。

       

            

猜你喜欢

转载自blog.csdn.net/L_yangliu/article/details/90052322
今日推荐