Linux LAMP安全配置有哪些要点
Linux LAMP 安全配置要点
LAMP (Linux + Apache + MySQL/MariaDB + PHP) 是常见的Web服务器架构,以下是其安全配置的关键要点:
操作系统(Linux)安全
系统更新
- 定期执行
yum update
或 apt-get update && apt-get upgrade
- 启用自动安全更新
用户与权限
- 禁用root远程登录
- 使用sudo替代直接root操作
- 为Web服务创建专用用户(如www-data)
防火墙配置
- 启用并配置iptables或firewalld
- 只开放必要端口(80, 443, 22等)
- 限制SSH访问IP范围
其他安全措施
- 安装配置fail2ban防止暴力破解
- 禁用不必要的服务和端口
- 启用SELinux或AppArmor
Apache安全配置
基本配置
- 运行于非root用户
- 禁用目录浏览(Options -Indexes)
- 关闭服务器签名(ServerTokens Prod, ServerSignature Off)
模块管理
- 禁用不需要的模块(mod_autoindex, mod_info等)
- 启用安全模块(mod_security, mod_evasive)
权限控制
- 设置严格的目录权限
- 限制.htaccess覆盖范围(AllowOverride)
SSL/TLS配置
- 使用最新TLS版本(禁用SSLv2/3)
- 配置强加密套件
- 启用HSTS
MySQL/MariaDB安全
基本安全
- 运行
mysql_secure_installation
- 删除匿名账户和测试数据库
- 更改root默认密码
权限管理
- 为每个应用创建专用数据库用户
- 遵循最小权限原则
- 限制远程访问(绑定到127.0.0.1)
配置优化
- 禁用LOCAL INFILE
- 启用查询日志用于审计
- 定期备份数据库
PHP安全配置
基本设置
- 使用最新稳定版PHP
- 禁用危险函数(exec, system, passthru等)
- 关闭错误显示(display_errors Off)
文件处理
- 限制文件上传大小(upload_max_filesize)
- 禁用远程文件包含(allow_url_fopen Off)
会话安全
- 启用严格会话模式(session.use_strict_mode)
- 设置合理的会话过期时间
应用层安全
代码安全
- 对所有用户输入进行验证和过滤
- 使用预处理语句防止SQL注入
- 实现CSRF防护
文件权限
- 配置文件不可通过Web访问
- 上传目录不可执行PHP
- 设置适当的umask(如0022)
日志与监控
- 启用并定期检查所有组件日志
- 设置日志轮转防止磁盘占满
- 实施文件完整性监控
定期维护
- 定期审计系统配置
- 监控安全公告并及时打补丁
- 定期测试备份恢复流程
- 进行安全扫描和渗透测试
通过以上多层次的防护措施,可以显著提高LAMP环境的安全性,降低被攻击的风险。