LNMP架構(Linux, Nginx, MySQL, PHP)是Web應用部署的熱門選擇,但其安全性不容忽視。以下是一些關鍵的安全設置步驟和最佳實踐,助您構建安全的LNMP服務器環境。
一、Linux系統加固
- 權限控制:Nginx、MySQL和PHP-FPM應使用最小權限用戶運行。網站目錄的文件權限需嚴格控制,避免PHP直接操作靜態文件,建議將靜態文件處理交給Nginx。PHP對網站文件的訪問權限應僅限于執行權限。
- SSH安全訪問:禁用SSH密碼登錄,改用公鑰認證方式。
- iptables配置:啟用iptables防火墻,僅開放必要的端口,例如HTTP(80)和HTTPS(443)。
二、Nginx安全策略
- 版本更新:及時更新Nginx至最新穩定版本,修復已知漏洞。
- 虛擬主機配置:合理配置虛擬主機,防止跨目錄訪問,并使用
open_basedir限制PHP訪問范圍。
- 訪問限制:利用
limit_req_zone和limit_req模塊,有效控制訪問頻率,抵御暴力破解攻擊。
三、MySQL數據庫安全
- 修改root密碼:安裝MySQL后,立即使用
mysql_secure_installation命令設置強密碼。
- 訪問控制:僅允許信任的IP地址訪問MySQL服務。
四、PHP安全加固
- 禁用危險函數:禁用
system、exec、passthru等高危函數,降低安全風險。
- 錯誤日志管理:避免直接輸出錯誤信息,將錯誤信息記錄到日志中,方便調試。
- 擴展管理:僅啟用必要的PHP擴展,禁用不必要的擴展。
五、防火墻與端口管理
- 使用
ufw防火墻限制必要的端口,如22(SSH)、80(HTTP)、443(HTTPS)和3306(MySQL)。
六、持續維護與監控
- 軟件更新:定期更新Nginx、MySQL、PHP和操作系統,及時修復安全漏洞。
- 日志審計:定期檢查和分析Nginx、MySQL和PHP日志,及時發現和處理潛在的安全問題。
以上步驟提供了Linux LNMP環境的基本安全設置,但請注意,安全是一個持續的過程,需要定期更新和審查安全措施。