美文网首页
数据库被黑的一次教训

数据库被黑的一次教训

作者: _给我一支烟_ | 来源:发表于2019-10-24 17:51 被阅读0次

    由于数据库密码设置太简单,而且数据库端口使用了默认的3306端口并且对外开放了,导致数据库被黑。所有的数据都被加密了变成了BLOB,表数据如下图


    aa.png

    一、修改数据库用户名密码及端口

    1.用户名修改

    mysql -uroot -p
    输入密码:
    mysql> use mysql;
    mysql> update user set user='newname' where user='root';
    mysql> flush privileges;

    2.密码修改

    密码设置复杂一点
    mysql> update user set password=('newpasswd') where user='newname';
    mysql> flush privileges;
    mysql> quit;

    3.端口修改

    修改mysql配置文件,把默认的3306端口改成另外一个端口号
    vim /etc/my.cnf

    [client]
    port=xxx
    [mysqld]
    port=xxx
    
    4. 重启 mysql

    service mysqld restart

    注意:安全起见最好在防火墙中不要对外开放该端口,实在要用临时在防火墙中把端口开下完事再关闭

    二、数据库定时备份

    1.写一个数据库备份脚本

    备份指定的某个数据库脚本 db_backup.sh

    #!/bin/bash
    #在使用之前,请提前创建以下各个目录
    backupDir=/data/DB_BACKUP
    username="newname"
    password="newpasswd"
    dbname="mydbname"
    #定义备份文件名
    bkDBSqlName="${dbname}_bk.sql"
    #定义备份文件全路径文件名
    bkName="${backupDir}/${bkDBSqlName}"
    /usr/bin/mysqldump -u${username} -p${password} --lock-all-tables --flush-logs ${dbname} > ${bkName}
    

    备份指定的某个数据库中指定的表脚本 table_backup.sh

    #!/bin/bash
    #在使用之前,请提前创建以下各个目录
    backupDir=/data/DB_BACKUP
    username="newname"
    password="newpasswd"
    dbname="mydbname"
    tablename="mytablename"
    #定义备份文件名
    bkTableSqlName="${tablename}_bk.sql"
    #定义备份文件全路径文件名
    bkName="${backupDir}/${bkTableSqlName}"
    /usr/bin/mysqldump -u${username} -p${password} --lock-all-tables --flush-logs ${dbname} ${tablename} > ${bkName}
    
    2.把备份脚本加入到定时任务中

    定时的颗粒度根据情况选择
    每小时执行:
    0 * * * * /备份脚本所在绝对路径/table_backup.sh
    每天执行:
    0 0 * * * /备份脚本所在绝对路径/db_backup.sh

    3.备份数据的还原

    mysql -uxxx -p
    输入密码:

    选择要还原的数据库
    mysql> use xxx_db

    还原备份数据
    mysql> source /data/DB_BACKUP/mytablename_bk.sql
    mysql> source /data/DB_BACKUP/mydbname_bk.sql

    三、修改 ssh 端口

    安全起见把 ssh 默认的22端口换一个端口号比如12345

    1. 修改防火墙配置

    vim /etc/sysconfig/iptables

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT
    
    2. 重启防火墙

    service iptables restart

    3. 修改ssh配置

    把Port 22行的修改为Port 12345
    vi /etc/ssh/sshd_config

    Port 12345
    
    4. 重启下ssh服务

    service sshd restart

    注意:操作顺序不要颠倒,否则SSH远程连接不上

    相关文章

      网友评论

          本文标题:数据库被黑的一次教训

          本文链接:https://www.haomeiwen.com/subject/fwlrvctx.html