情況概述 今天登陸在騰訊雲伺服器上搭建的 MySQL 資料庫,發現資料庫被黑了,黑客提示十分明顯。 MySQL 中只剩下兩個資料庫,一個是information_schema,另一個是黑客創建的PLEASE_READ,其中有一張info表,內容如下: Info: Your DB is Backed ...
情況概述
今天登陸在騰訊雲伺服器上搭建的 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 ipBitcoin_Address
: 1F33LEJjdphD6YpaonNCHejwLcgkgDGQW9Email
: [email protected]
顯然,我這是遇到比特幣敲詐了。我的數據在別人的伺服器里安然的躺著,需要向黑客支付 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 ipBitcoin_Address
: 1F33LEJjdphD6YpaonNCHejwLcgkgDGQW9Email
: [email protected]
顯然,我這是遇到比特幣敲詐了。我的數據在別人的伺服器里安然的躺著,需要向黑客支付 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!