Mysql被黑客入侵及安全措施總結

狀況概述

今天登錄在騰訊雲服務器上搭建的 MySQL 數據庫,發現數據庫被黑了,黑客提示十分明顯。mysql

MySQL 中只剩下兩個數據庫,一個是information_schema,另外一個是黑客建立的PLEASE_READ,其中有一張info表,內容以下:sql

  • Info: Your DB is Backed up at our servers, to restore send 0.2 BTC to the Bitcoin Address then send an email with your server ip
  • Bitcoin_Address: 1F33LEJjdphD6YpaonNCHejwLcgkgDGQW9
  • Email: mysqldata@mail2tor.com

顯然,我這是遇到比特幣敲詐了。個人數據在別人的服務器裏安然的躺着,須要向黑客支付 0.2 比特幣纔有可能恢復。按照當前的匯率,0.2 比特幣大約爲 1400 人民幣,這是我第一次遇到網絡敲詐,金額還不小。數據庫

所幸數據庫裏並無值錢的數據,就當是送給黑客了,不過 數據庫安全問題 引發了個人注意。vim


安全措施

 

MySQL 中只剩下兩個數據庫,一個是information_schema,另外一個是黑客建立的PLEASE_READ,其中有一張info表,內容以下:centos

  • Info: Your DB is Backed up at our servers, to restore send 0.2 BTC to the Bitcoin Address then send an email with your server ip
  • Bitcoin_Address: 1F33LEJjdphD6YpaonNCHejwLcgkgDGQW9
  • Email: mysqldata@mail2tor.com

顯然,我這是遇到比特幣敲詐了。個人數據在別人的服務器裏安然的躺着,須要向黑客支付 0.2 比特幣纔有可能恢復。按照當前的匯率,0.2 比特幣大約爲 1400 人民幣,這是我第一次遇到網絡敲詐,金額還不小。安全

所幸數據庫裏並無值錢的數據,就當是送給黑客了,不過 數據庫安全問題 引發了個人注意。服務器


安全措施

因爲缺少必要的安全措施和備份機制,數據庫中原有的數據均已丟失。爲了恢復到 MySQL 初始的狀態,從新安裝了 MySQL 數據庫,而且從新建立原先存在的數據庫,同時,爲了防止再次被黑客入侵,對 MySQL 進行了一些安全配置。網絡

針對此事項,建議作如下調整,以防範黑客攻擊:socket

 一、服務器的管理員密碼具有必定複雜度,建議使用字母、數字、字符組合的密碼。post

 二、服務器關閉遠程訪問(或關閉外網的遠程訪問),調整遠程訪問默認的端口號。

 三、mysql的root用戶密碼具有必定複雜度,建議使用字母、數字、字符組合的密碼。

 四、mysql不容許任意遠程端鏈接,建議僅對協同系統所在的IP地址放開鏈接。

 五、mysql不使用默認的3306端口,建議修改成其餘端口。(mysql的配置文件:Windows爲my.ini、Linux爲my.cnf,修改其端口號)

 修改my.cnf端口
vim /etc/my.cnf

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3389
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

以上紅色處爲新增的端口設置信息

六、mysql設置定時備份,並將數據備份包備份在異機(或異地)。

快快騰出您的寶貴時間,落實以上幾點,爲您的數據庫保駕護航!

 

 -------------------------------------------------------------------------------

 

yum 和 rpm安裝mysql完全刪除

一、yum方式安裝的MySQL

 $ yum remove mysql mysql-server mysql-libs compat-mysql51

rm -rf /var/lib/mysq

rm /etc/my.cnf

查看是否還有mysql軟件:

rpm -qa|grep mysql

若是存在的話,繼續刪除便可,刪除方式:yum remove + 【名字】

 

二、查看系統中是否以rpm包安裝的mysql:

[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686

 

a)卸載mysql

[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686

b)刪除mysql服務

centos7版本如下用如下命令:

[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql

centos7版本以上用如下命令:

systemctl list-dependencies mysql

下一步不知道了。。。

c)刪除分散mysql文件夾

[root@localhost local]# whereis mysql 或者 find / -name mysql 兩個都試一下

mysql: /usr/lib/mysql /usr/share/mysql

清空相關mysql的全部目錄以及文件,逐一刪除
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql

rm -rf /usr/my.cnf

 總之刪到經過上面兩種命令查不出來任何有關mysql的東西

經過以上幾步,mysql應該已經徹底卸載乾淨了。

 

安裝mysql

1. 獲取rpm包

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

2. 安裝

yum -y install mysql-community-server

安裝完成

3. 啓動mysql服務

#加入開機啓動
systemctl enable mysqld
#啓動mysql服務進程
systemctl start mysqld
#查看mysql狀態
systemctl status mysqld

4. 初始化

#初始化,執行命令,重置密碼 
mysql_secure_installation

 

#會依次出現如下問題。
Set root password? [Y/n]
是否設置root用戶的密碼 (y後【設置登陸密碼】)
Remove anonymous users? [Y/n]
是否刪除匿名用戶 (y)
Disallow root login remotely? [Y/n]
是否禁止root遠程登陸 (n)
Remove test database and access to it? [Y/n]
是否刪除test數據庫(y)
Reload privilege tables now? [Y/n]
是否從新加載受權信息 (y)

5. 建立遠程登陸的用戶

# 先進入mysql
mysql -u root -p
# 受權(root用戶)遠程鏈接權限(不建議)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '遠程登陸密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 使用單獨的遠程登陸用戶(推薦)
GRANT ALL PRIVILEGES ON *.* TO '新用戶名'@'%' IDENTIFIED BY '遠程登陸密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

 

good luck!

相關文章
相關標籤/搜索