上週學習了一下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...