天天看點

安全加強----十二、MySql服務安全加強MySql服務安全加強

文章目錄

  • 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

繼續閱讀