Linux、Apache、MySQL和PHP(LAMP)是构建网站和Web应用程序的流行组合。然而,这些技术如果没有正确配置和保护,可能会受到各种安全威胁。以下是一些关键的安全防护措施,可以帮助你加固Linux LAMP环境:
系统更新
- 定期更新:确保系统和所有软件包都是最新的,以修复已知的安全漏洞。
sudo apt update && sudo apt upgrade -y
SSH安全加固
- 禁止root直接登录:编辑
/etc/ssh/sshd_config
文件,将PermitRootLogin
设置为no
。 - 使用密钥认证:生成SSH密钥对,并将公钥复制到服务器上,禁用密码登录。
ssh-keygen -t rsa -b 4096 ssh-copy-id username@server_ip
- 更改SSH端口:使用非标准端口以减少自动化攻击。
sudo ufw allow 2222/tcp # SSH端口 sudo ufw allow https sudo ufw enable
防火墙配置
- 使用UFW:安装并配置UFW(Uncomplicated Firewall)以限制访问。
sudo apt install ufwsudo ufw allow 2222/tcp # SSH端口 sudo ufw allow https sudo ufw enable
用户权限管理
- 最小权限原则:创建普通用户并分配必要的权限,避免使用root用户直接登录。
sudo adduser newuser sudo usermod -aG sudo newuser
- sudo配置:通过
visudo
编辑/etc/sudoers
文件,设置sudo超时等。
Apache安全配置
- 禁用不必要的模块:在
httpd.conf
中注释掉不需要的Apache模块。 - 设置正确的文档根目录权限:确保文档根目录的权限设置正确。
MySQL安全配置
- 修改root密码:使用
mysql_secure_installation
命令更改root密码。 - 删除空口令和默认账户:删除没有密码的账户和默认创建的账户。
PHP安全配置
- 启用安全模式:在
php.ini
中启用安全模式,限制PHP脚本的执行权限。 - 关闭危险函数:禁用危险的PHP函数,如
eval()
、exec()
等。
文件系统和权限设置
- 使用chmod和chown:确保敏感文件和目录的权限设置正确。
- 启用SELinux或AppArmor:使用这些工具增强文件和进程的安全策略。
安全加固建议
- 禁用不必要的设备:如光驱、软驱、U盘等,以限制物理访问。
- 监控和日志管理:启用并配置系统日志记录,监控关键日志文件。
- 备份和灾难恢复:定期备份重要数据,并验证备份的完整性和可恢复性。准备灾难恢复计划,包括应急响应流程和数据恢复步骤。
通过上述措施,可以显著提高Linux LAMP环境的安全性。然而,安全是一个持续的过程,需要定期评估和调整策略以应对新的威胁。