這篇文章將為大家詳細講解有關(guān)用于Linux中MySQL/MariaDB安全實踐的命令有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
拜城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
MySQL 是世界上最流行的開源數(shù)據(jù)庫系統(tǒng),MariaDB(一個 MySQL 分支)是世界上增長最快的開源數(shù)據(jù)庫系統(tǒng)。在安裝 MySQL 服務(wù)器之后,在默認配置下是不安全的,確保數(shù)據(jù)庫安全通常是通用數(shù)據(jù)庫管理的基本任務(wù)之一。
這將有助于增強和提升整個 Linux 服務(wù)器的安全性,因為攻擊者總是掃描系統(tǒng)任意部分的漏洞,而數(shù)據(jù)庫在過去是重點目標區(qū)域。一個常見的例子是對 MySQL 數(shù)據(jù)庫的 root 密碼的強制破解。
在本指南中,我們將會講解對開發(fā)者有幫助的 MySQL/MariaDB 的 Linux 最佳安全實踐。
1. 安全地安裝 MySQL
這是安裝 MySQL 服務(wù)器后第一個建議的步驟,用于保護數(shù)據(jù)庫服務(wù)器。這個腳本可以幫助您提高 MySQL 服務(wù)器的安全性:
·如果您在安裝期間沒有設(shè)置 root 帳戶的密碼,馬上設(shè)置它
·通過刪除可從本地主機外部訪問的 root 帳戶來禁用遠程 root 用戶登錄
·刪除匿名用戶帳戶和測試數(shù)據(jù)庫,默認情況下,所有用戶、甚至匿名用戶都可以訪問這些帳戶和測試數(shù)據(jù)庫
# mysql_secure_installation
在運行上述命令之后,設(shè)置 root 密碼并通過輸入 [Yes/Y] 和按下 [Enter] 鍵來回答一系列問題。
安全安裝 MySQL 情況界面
2. 將數(shù)據(jù)庫服務(wù)器綁定到 Loopback 地址
此配置將限制來自遠程機器的訪問,它告訴 MySQL 服務(wù)器只接受來自本地主機的連接。你可以在主配置文件中進行設(shè)置。
# vi /etc/my.cnf [RHEL/CentOS] # vi /etc/mysql/my.conf [Debian/Ubuntu] OR # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Debian/Ubuntu]
在 [mysqld] 部分中添加下面這一行
bind-address = 127.0.0.1
3. 禁用 MySQL 的 LOCAL INFILE
作為安全性增強的一部分,您需要禁用 local_infile,使用下面的指令以防止在 [mysqld] 部分從 MySQL 中訪問底層文件系統(tǒng)。
local-infile=0
4. 修改 MySQL 的默認端口
設(shè)置端口變量用于監(jiān)聽 TCP/IP 連接的 MySQL 端口號。默認端口號是 3306,但是您可以在 [mysqld] 中修改它。
Port=5000
5. 啟用 MySQL 日志
日志是了解服務(wù)運行過程中發(fā)生了什么的最好的方法之一,在受到任何攻擊的時候都可以很容易的從日志里看到任何入侵相關(guān)的行為??梢酝ㄟ^將下邊的變量添加到配置文件[mysqld]部分來開啟mysql日志功能。
log=/var/log/mysql.log
6. 設(shè)置合適的 MySQL 文件的訪問權(quán)限
確保你已經(jīng)為所有的 mysql 服務(wù)文件和數(shù)據(jù)路徑設(shè)置了合適的訪問權(quán)限。文件 /etc/my.conf 只能由 root 用戶修改,這樣就可以阻止其他用戶修改數(shù)據(jù)庫服務(wù)的配置。
# chmod 644 /etc/my.cnf
7. 刪除 MySQL shell 歷史
你在 MySQL shell 中執(zhí)行的所有的命令都會被 mysql 客戶端保存到一個歷史文件:~/.mysql_history。這樣是很危險的,因為對于你創(chuàng)建過的任何用戶賬戶,所有的在 shell 輸入過的用戶名和密碼都會記錄到歷史文件里面。
# cat /dev/null > ~/.mysql_history
8. 不要在命令行中運行 MySQL 命令
正如你所知道的,你在終端上輸入的所有命令都會被存儲在一個歷史文件中,具體取決于你正在使用的shell(例如 bash 的 shell 歷史文件放在 ~/.bash_history)。攻擊者訪問這個歷史文件可以很容易地看到記錄在那里的任何密碼。
非常不建議在命令行里面輸入密碼,如下:
# mysql -u root -ppassword_
使用密碼連接 MySQL
當你查看命令行歷史文件的最后的部分時,可以看到之前輸入過的密碼。
# history
查看命令行輸入歷史
推薦連接 MySQL 的方式是
# mysql -u root -p Enter password:
9. 定義特定應(yīng)用的數(shù)據(jù)庫用戶
對于每一個在服務(wù)器上運行的應(yīng)用,只設(shè)置一個與該應(yīng)用相關(guān)的數(shù)據(jù)庫用戶。例如你有一個 wordpress 網(wǎng)站,如下創(chuàng)建一個 wordpress 的數(shù)據(jù)庫用戶:
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE osclass_db; MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY 'osclass@dmin%!2'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
并且要記住對于不再使用的數(shù)據(jù)庫用戶要刪掉。
10. 使用額外的安全插件和庫
MySQL 包含許多安全插件:驗證客戶端連接到 MySQL 服務(wù)器的請求、密碼校驗和敏感信息的安全存儲等,這些都在免費版本中提供。
在這里可查看更多:https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
11. 定期修改 MySQL 密碼
定期修改密碼是一個常見的信息/應(yīng)用/系統(tǒng)安全建議。多久修改一次密碼由你內(nèi)部的安全策略決定。定期修改密碼可以阻止長期跟蹤你的“窺探者”,獲取你的密碼,登錄你的 MySQL 服務(wù)器。
MariaDB [(none)]> USE mysql;MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';MariaDB [(none)]> FLUSH PRIVILEGES;
12. 定期更新 MySQL Server 包
強烈建議定期從官方倉庫更新 mysql/mariadb 包來獲取最新的安全更新和錯誤改進。通常情況下操作系統(tǒng)中默認的包是過時的。
# yum update # apt update
在對 mysql/mariadb server 進行任何修改之后,要重啟服務(wù)。
# systemctl restart mariadb #RHEL/CentOS # systemctl restart mysql #Debian/Ubuntu
關(guān)于“用于Linux中MySQL/MariaDB安全實踐的命令有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。