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环境的用户权限,提升系统安全性和稳定性。