文章目錄
- MySql服務安全加強
-
- 1、帳号安全
- 2、密碼
- 4、開啟日志審計功能
MySql服務安全加強
1、帳号安全
1.1、禁止 Mysql 以管理者帳号權限運作
以普通帳戶安全運作 mysqld,禁止以管理者帳号權限運作 MySQL 服務。在 /etc/my.cnf 配置檔案中進行以下設定。
[mysql.server]
user=mysql
1.2、避免不同使用者間共享帳号
參考以下步驟。
a、建立使用者:
mysql> mysql> insert into
mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
ject) values("localhost","pppadmin",password("passwd"),'','','');
執行以上指令可以建立一個 phplamp 使用者。
b、使用該使用者登入 MySQL 服務。
mysql>exit;
@>mysql -u phplamp -p
@>輸入密碼
mysql>登入成功
1.3、删除無關帳号
DROP USER 語句可用于删除一個或多個 MySQL 賬戶。使用 DROP USER 指令時,必須確定目前賬号擁有 MySQL 資料庫的全局 CREATE USER 權限或 DELETE 權限。賬戶名稱的使用者和主機部分分别與使用者表記錄的 User 和 Host 列值相對應。
執行
DROP USER user;
語句,您可以取消一個賬戶和其權限,并删除來自所有授權表的帳戶權限記錄。
2、密碼
檢查賬戶預設密碼和弱密碼。密碼長度需要至少八位,并包括數字、小寫字母、大寫字母和特殊符号四類中的至少兩種類型,且五次以内不得設定相同的密碼。密碼應至少每 90 天進行一次更換。
可以通過執行以下指令修改密碼。
mysql> update user set password=password('test!p3') where user='root';
mysql> flush privileges;
3、授權
在資料庫權限配置能力範圍内,根據使用者的業務需要,配置其所需的最小權限。
1.1、檢視資料庫授權情況。
mysql> use mysql;
mysql> select * from user;
mysql>select * from db;
mysql>select * from host;
mysql>select * from tables_priv;
mysql>select * from columns_priv;
1.2、通過 revoke 指令回收不必要的或危險的授權。
mysql> help revoke
Name: 'REVOKE'
Description:
Syntax:
REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type]
{
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
}
FROM user [, user] ...
4、開啟日志審計功能
4.1、資料庫應配置日志功能,便于記錄運作狀況和操作行為。
MySQL服務有以下幾種日志類型:
錯誤日志: -log-err
查詢日志: -log (可選)
慢查詢日志: -log-slow-queries (可選)
更新日志: -log-update
二進制日志: -log-bin
4.2、找到 MySQL 的安裝目錄,在 my.ini 配置檔案中增加上述所需的日志類型參數,儲存配置檔案後,重新開機 MySQL 服務即可啟用日志功能。
例如:
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=
#Enter a name for the query log file. Otherwise a default name will be used.
#log=
#Enter a name for the error log file. Otherwise a default name will be used.
log-error=
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
#該參數中啟用錯誤日志。如果需要啟用其他的日志,隻需把對應參數前面的 “#” 删除即可。
4.3、日志查詢操作說明
執行show variables like 'log_%';指令可檢視所有的 log。
執行show variables like 'log_bin';指令可檢視具體的 log。
5、安裝最新更新檔
確定系統安裝了最新的安全更新檔。
注意: 在保證業務及網絡安全的前提下,并經過相容性測試後,安裝更新更新檔。
6、如果不需要,應禁止遠端通路
禁止網絡連接配接,防止猜解密碼攻擊、溢出攻擊、和嗅探攻擊。
注意: 僅限于應用和資料庫在同一台主機的情況。
如果資料庫不需要遠端通路,可以禁止遠端 TCP/IP 連接配接,通過在 MySQL 伺服器的啟動參數中添加
--skip-networking
參數使 MySQL 服務不監聽任何 TCP/IP 連接配接,增加安全性。
可以使用安全組進行内外網通路控制,建議不要将資料庫高危服務對網際網路開放。
7、設定可信 IP 通路控制
通過資料庫所在作業系統的防火牆限制,實作隻有信任的 IP 才能通過監聽器通路資料庫。
mysql> GRANT ALL PRIVILEGES ON db.*
·-> -> TO 使用者名@'IP子網/掩碼';
8、連接配接數設定
根據您的機器性能和業務需求,設定最大、最小連接配接數。
在 MySQL 配置檔案(my.conf 或 my.ini)的 [mysqld] 配置段中添加
max_connections = 1000
,儲存配置檔案,重新開機 MySQL 服務後即可生效。
參考:
https://help.aliyun.com/knowledge_detail/49568.html