LAMP架構(Linux, apache, mysql, php)的安全核心在于用戶權限管理。本文將闡述在LAMP環境下有效控制用戶權限的關鍵步驟和最佳實踐。
一、用戶賬戶管理
- 創建與管理用戶: 使用useradd命令創建新用戶,passwd命令設置/修改密碼,usermod命令修改用戶屬性(組、主目錄等)。
- 刪除用戶: 使用userdel命令刪除用戶賬戶,并清理其主目錄及相關文件。
二、文件與目錄權限控制
- 文件權限: 使用chmod命令設置文件權限(例如:chmod 644 filename)。常用權限模式:755(讀、寫、執行),644(讀、寫),700(僅所有者讀、寫、執行)。
- 目錄權限: 目錄權限通常更寬松,例如755或775。務必嚴格控制敏感目錄(如/etc、/var/www)的權限,防止未授權訪問。
三、組管理
- 創建與管理組: 使用groupadd命令創建組,gpasswd命令添加用戶到組,usermod命令在組間移動用戶。
- 組權限: 使用chmod命令的g選項設置組權限。確保組權限設置合理,防止組內用戶權限濫用。
四、Apache用戶與組配置
- 配置Apache用戶與組: 編輯Apache配置文件(通常為/etc/apache2/envvars或/etc/httpd/conf/httpd.conf),設置APACHE_RUN_USER和APACHE_RUN_GROUP。 Apache應以非特權用戶運行,降低安全風險。
五、MySQL用戶與權限管理
- 創建與管理MySQL用戶: 使用CREATE USER語句創建用戶,GRANT語句授權,REVOKE語句撤銷權限。
- 最小權限原則: 遵循最小權限原則,避免使用ALL PRIVILEGES。 定期檢查和更新用戶權限。
六、SELinux/AppArmor安全模塊
- 啟用SELinux/AppArmor: SELinux和AppArmor是Linux安全模塊,能進一步增強系統安全性。 配置其策略,限制Apache和MySQL的訪問權限。
七、日志審計
- 配置日志記錄: 確保Apache和MySQL日志記錄詳細的訪問和錯誤信息。定期檢查日志,及時發現異常行為。
八、定期安全審計
遵循以上步驟,能夠有效管理LAMP環境的用戶權限,提升系統安全性和穩定性。