LANMP安全配置之MySQL安全配置

2021-09-23 20:45:54 字數 1843 閱讀 6970

上週學習了一下lanmp安全配置之apache安全配置

用的最多的資料庫就是mysql了

所以這周繼續學習一下mysql安全配置

還是參考《php web安全開發實戰》一書,再做一些補充

安裝成功後第一件事就是改root預設密碼,然後設定複雜密碼

在了解許可權分配之前

先了解以下mysql下的幾個控制許可權的表

user 可列出可以連線伺服器的使用者及其口令,並且指定有哪種全域性許可權。這裡指定的許可權適用於所有資料庫。

db 列出資料庫。這裡指定的許可權適用於所有某個資料庫的所有表。

host 控制特定主機對資料庫的訪問許可權

tables_priv 制定表級許可權。這裡指定的許可權適用於某個表的所有列。

columns_priv 制定列級許可權。這裡指定的許可權適用於某個表的所有特定列。

另外 information_schema也儲存一些許可權資訊,是為dba提供元資料的一種方式,但它實際上是乙個檢視,不是表。

再了解一下許可權分配驗證流程

php與資料庫進行連線登入時

第一步,身份認證。先從user表判斷ip使用者名稱密碼是否存在

第二步,許可權分配。按照user->db->tables_ priv->columns_priv的順序進行梯級驗證。

驗證過程中,如果user表中對應許可權為y,則此使用者對所有資料庫的許可權全為y,將不再驗證db、tables_ privh和columns_priv;如果為n,則往下一級(db)進行驗證。

所以mysql中的許可權安全配置

(1)針對每個**建立乙個單獨的賬戶

(2)為每個**單獨建立乙個專屬資料庫

(3)按照user->db->tables_priv->columns_pri的順序進行細粒度的許可權控制

(4)為每個使用者單獨配置乙個專屬資料庫,保證當前使用者的所有操作只能發生在它自己的資料庫中,防止sql注入發生後,黑客通過注入點訪問到系統表

mysql預設使用3306埠

1.限制ip

對於mysql的限制訪問ip,可從兩個方面達到目的

(1)主機層

windows下,可通過windows防火牆

linux下,可通過iptables來限制允許訪問的ip

eg:只允許192.168.1.0網段進行訪問

iptables -a input -p tcp -s 192.168.1.0/24 --dport 3306 -j accept

iptables -p input drop

(2)應用層

在user表中限制root賬戶只能在本機登入

如圖2.修改埠

windows,在mysql配置檔案my.ini中設定

linux,mysql配置檔案為my.cnf

port = 3306
3.限制單個使用者的連線數量

更改my.ini中max_connections=值,儲存檔案,重啟mysql服務。

啟動mysql日誌來幫助加固mysql安全

mysql下有以下幾種日誌

檢視日誌是否開啟命令:

show variable like 'log_%';

LANMP安全配置之MySQL安全配置

上週學習了一下lanmp安全配置之apache安全配置 用的最多的資料庫就是mysql了 所以這周繼續學習一下mysql安全配置 還是參考 php web安全開發實戰 一書,再做一些補充 安裝成功後第一件事就是改root預設密碼,然後設定複雜密碼 在了解許可權分配之前 先了解以下mysql下的幾個控...

LANMP安全配置之Nginx安全配置

比起前幾篇的apache安全配置 php安全配置 mysql安全配置,對nginx的了解巨少,沒怎麼用過除了知道nginx解析漏洞就啥也不知道了 好了,開始學習 1.1 更改預設使用者名稱 nginx預設nobody,可更改預設使用者名稱防止他人利用 1.2 新增使用者 1 新增組 groupadd...

LANMP安全配置之Apache安全配置

0x00 前言 0x01 遮蔽版本資訊 關閉步驟 1 開啟apache配置檔案httpd.conf a.找到serverroot os,修改為serverroot productonly b.找到serversignature on,修改為serversignature off 2 重啟apache...