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


情況概述

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

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

  • 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 中只剩下兩個數據庫,一個是information_schema,另一個是黑客創建的PLEASE_READ,其中有一張info表,內容如下:

  • 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 進行了一些安全配置。

針對此事項,建議做以下調整,以防范黑客攻擊:

 1、服務器的管理員密碼具備一定復雜度,建議使用字母、數字、字符組合的密碼。

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

 3、mysql的root用戶密碼具備一定復雜度,建議使用字母、數字、字符組合的密碼。

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

 5、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

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

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

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

 

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

 

yum 和 rpm安裝mysql徹底刪除

1、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 + 【名字】

 

2、查看系統中是否以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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM