頻道欄目
首頁 > 資訊 > 企業安全 > 正文

Mysql被黑客入侵后的安全應對措施總結

18-03-06        來源:[db:作者]  
收藏   我要投稿

情況概述

今天登陸在騰訊云服務器上搭建的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初始的狀態,重新安裝了Mysql數據庫,并且重新創建原先存在的數據庫,同時,為了防止再次被黑客入侵,對Mysql進行了一些安全配置。

禁用或限制遠程訪問。若允許遠程訪問,需要確保特定主機才擁有訪問權。

對用戶進行合理授權,應用程序中最好不要直接使用root用戶。

限制打開網絡socket,此時仍可以建立與Mysql服務器的本地連接。

[mysqld]
skip-networking

強迫Mysql僅監聽本機。

[mysqld]
bind-address=127.0.0.1

更改root用戶的登錄名稱和密碼。

移除測試數據庫和匿名賬戶及廢棄的賬戶。

禁用LOCAL INFILE。

[mysqld]
set-variable=local-infile=0

刪除歷史命令記錄。

cat /dev/null > ~/.bash_history
cat /dev/null > ~/.mysql_history

及時安裝Mysql安全補丁。

使用chroot限制Mysql運行環境。

自動定期備份數據庫。

用防火墻實現mysql綁定多個ip

my.cnf中有選項bind-address=127.0.0.1,是說mysql server監聽的是本地發來的請求,如果是任意主機都可以請求,則寫為0.0.0.0,但是這樣又不太安全。監聽某ip,指定此ip地址即可,但是要保證mysql的user中有允許此ip訪問,否則不能對數據庫操作。那么是否可以在配置里只規定幾個ip呢?

簡單直接回答:不可能

請參考:http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind-address

The MySQL server listens on a single network socket for TCP/IP connections. This socket is bound to a single address, but it is possible for an address to map onto multiple network interfaces. The default address is 0.0.0.0. To specify an address explicitly, use the –bind-address=addr option at server startup, where addr is an IPv4 address or a host name. If addr is a host name, the server resolves the name to an IPv4 address and binds to that address. The server treats different types of addresses as follows:

If the address is 0.0.0.0, the server accepts TCP/IP connections on all server host IPv4 interfaces.

If the address is a “regular” IPv4 address (such as 127.0.0.1), the server accepts TCP/IP connections only for that particular IPv4 address.

但是有此需求,就會到訪問控制,那么使用防火墻iptables可實現此效果

mysql-server為192.168.1.3,只允許192.168.1.4, 192.168.1.5, 192.168.1.6來訪問3306端口

在my.cnf中

bind-address = 0.0.0.0

在訪問3306端口的主機中,只允許192.168.1.4-6,其他ip一律DROP掉

/sbin/iptables -A INPUT -p tcp -s 192.168.1.4 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.5 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.6 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 3306 ! -s 192.168.1.4 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 3306 ! -s 192.168.1.5 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 3306 ! -s 192.168.1.6 -j DROP

保存防火墻規則

service iptables save

查看INPUT鏈包含3306的規則

echo -e "target prot opt source destination\n$(iptables -L INPUT -n | grep 3306)"

這樣就實現了mysql只允許指定ip訪問。

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

a)查看系統中是否以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

b)卸載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

c)刪除mysql服務

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

[root@localhost local]# chkconfig --del mysql

d)刪除分散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應該已經完全卸載干凈了。

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片