以下是CentOS上部署LNMP實現安全防護的關鍵措施:
系統更新與權限管理
yum update
修復系統漏洞。root
遠程登錄,創建專用服務用戶(如 webuser
),并限制其權限。chattr +i
鎖定關鍵配置文件,防止篡改。防火墻配置
firewalld
或 iptables
,僅開放必要端口(HTTP 80、HTTPS 443、SSH 22等),禁止數據庫端口(3306)外部訪問。firewalld
規則:firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
服務最小權限原則
root
用戶運行,配置文件中指定用戶組(如 user = webuser
)。server_tokens off;
。if ($request_method !~ ^(GET|HEAD|POST)$) { return 405; }
。add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self';";
root
登錄,限制用戶權限至最小必要范圍。my.cnf
:[mysqld]
skip-name-resolve # 禁用DNS解析
sql_mode=STRICT_TRANS_TABLES # 嚴格模式
disable_functions = exec,passthru,shell_exec
。open_basedir
限制文件訪問路徑,防止跨目錄攻擊。文件與目錄權限
755
,敏感文件(如配置文件)設為 640
,確保僅服務用戶可讀。chmod 600
),并使用隨機文件名。數據備份與加密
mysqldump
)和網站文件,存儲至異地。ELK Stack
)監控異常訪問,重點關注 404
、500
錯誤及異常登錄嘗試。fail2ban
防止暴力破解,限制單個IP的失敗登錄次數。Lynis
)掃描系統漏洞。ModSecurity
,攔截SQL注入、XSS等攻擊。參考來源:[1,2,3,6,7,8,9,10,11,13,14]