MYSQL數據庫攻防與加固
這是“官方”原本的模樣搬過來的。。寫的很粗略啊。還有篇詳細的請查看: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"; |
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數據庫攻防與加固