在CentOS上部署LAMP(Linux, Apache, MySQL, PHP)环境时,确保其安全性至关重要。以下是一些关键的安全防护措施,可以帮助你加固CentOS LAMP环境:
- 系统更新:
- 定期更新系统和所有软件包,以修复已知的安全漏洞。
sudo yum update -y
- SSH安全加固:
- 禁止root直接登录,使用普通用户登录后切换到root。
- 生成SSH密钥对,并将公钥复制到服务器上,禁用密码登录。
- 更改SSH端口,使用非标准端口以减少自动化攻击。
sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server_ip
- 防火墙配置:
- 使用
firewalld
或iptables
配置防火墙规则,限制对服务器的访问,只允许必要的端口对外开放。
sudo yum install firewalld -y
sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source IP "攻击IP" drop'
sudo firewall-cmd --reload
- 用户权限管理:
- 创建普通用户并分配必要的权限,避免使用root用户直接登录。
- 通过
visudo
编辑/etc/sudoers
文件,设置sudo超时等。
- Apache安全配置:
- 禁用不必要的模块,在
httpd.conf
中注释掉不需要的Apache模块。 - 设置正确的文档根目录权限,确保文档根目录的权限设置正确。
- MySQL安全配置:
- 使用
mysql_secure_installation
命令更改root密码。 - 删除空口令和默认账户,删除没有密码的账户和默认创建的账户。
- PHP安全配置:
- 在
php.ini
中启用安全模式,限制PHP脚本的执行权限。 - 关闭危险的PHP函数,如
eval()
、exec()
等。
- 文件系统和权限设置:
- 使用
chmod
和chown
确保敏感文件和目录的权限设置正确。 - 启用SELinux或AppArmor,使用这些工具增强文件和进程的安全策略。
- 监控和日志管理:
- 启用并配置系统日志记录,监控关键日志文件。
- 备份和灾难恢复:
- 定期备份重要数据,并验证备份的完整性和可恢复性。
- 准备灾难恢复计划,包括应急响应流程和数据恢复步骤。