1. 程式人生 > >MYSQL數據庫攻防與加固

MYSQL數據庫攻防與加固

linux disable admin 技術分享 option spa linux 防火墻 ria 檢查

這是“官方”原本的模樣搬過來的。。寫的很粗略啊。還有篇詳細的請查看:MySQL安全加固題目及答案參考解析

啟動xserver-mysql,進入xserver-mysql,開始實驗,實驗步驟如下:

1. 進入xserver-mysql, 加固MySQL服務器,使所有的訪問能被審計,要求通過對mysqld的啟動項進行加固

設定審計文件為/var/log/mysql/access.log

#cd /etc/

# vi my.cnf

下面紅色標記部分為增加的日誌選項,重新啟動後起作用

技術分享圖片

2. 配置Linux 防火墻,允許MySQL服務能夠被訪問,要求規則中只包含端口項

1 2 3 4 5 # iptables -A INPUT -p tcp --dport 3306 -j ACCEPT #iptables -nL --line #以標號的形式顯示出來 #service iptables save #你應該保存一下,小夥子

3. 進入xserver-mysql,查看所有用戶及權限,找到可以從任何IP地址訪問的用戶

Mysql>use mysql;

Mysql>select host,user from user;

技術分享圖片

4. 對題號3中的漏洞進行加固,設定該用戶只能從公司PC-1訪問,用grants 命令進行管理。

Mysql>GRANT ALL ON *.* TO [email protected] IDENTIFIED BY “” WITH GRANT OPTION;

5. 檢查xserver-mysql中的是否存在數據庫匿名用戶,如果存在數據庫匿名用戶,則刪除該用戶,將發現的數據庫匿名用戶信息以及刪除過程

mysql>use mysql;

mysql> select host,user from user where user=””;

技術分享圖片

技術分享圖片

mysql>flush privileges; #記得刷新權限啊小夥子!

6. 改變默認MySQL管理員的名稱,將系統的默認管理員root 改為admin,防止被列舉,將執行過程

1 2 3 4 5 mysql>use mysql; mysql> update user set user="admin" where user="root";
mysql>flush privileges;

7. 禁止MySQL對本地文件進行存取,對mysqld 的啟動項進行加固

#cd /etc/

# vi my.cnf

下面紅色框中為增加的本地文件存取的限制語句,重新啟動後起作用

增加語句為

set-variable=local-infile=0

技術分享圖片

#/etc/init.d/mysqld stop

#/etc/init.d/mysqld start

8. 限制一般用戶瀏覽其他用戶數據庫,對mysqld 的啟動項進行加固

跟上邊一樣,配置文件增加配置項,增加語句為

skip-show-database

#/etc/init.d/mysqld stop

#/etc/init.d/mysqld start

MYSQL數據庫攻防與加固