在Ubuntu系统上部署LAMP(Linux, Apache, MySQL, PHP)环境时,确保系统的安全性至关重要。以下是一个详细的安全设置指南,帮助你加固LAMP环境。
首先,确保你的系统和所有软件包都是最新的。使用以下命令更新系统:
sudo apt update && sudo apt upgrade -y
sudo apt install apache2
sudo a2enmod rewrite
sudo a2enmod headers
sudo systemctl restart apache2
sudo apt install mysql-server
安全配置MySQL:
运行安全脚本来设置MySQL的root密码和其他安全选项:
sudo mysql_secure_installation
sudo apt install php libapache2-mod-php php-mysql
配置PHP:
编辑/etc/php/7.x/apache2/php.ini
文件,确保以下配置项正确设置:
display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_WARNING
使用UFW(Uncomplicated Firewall)来限制对系统的访问:
sudo apt install ufw
sudo ufw allow 'Apache Full'
sudo ufw enable
修改SSH配置文件以禁用root登录,只允许密钥认证:
sudo nano /etc/ssh/sshd_config
添加或修改以下行:
PermitRootLogin no
PasswordAuthentication no
重启SSH服务:
sudo systemctl restart sshd
通过修改/etc/login.defs
和/etc/pam.d/system-auth
文件,设置密码的最小使用天数、复杂度要求等:
password required pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=10
在防火墙中禁用不必要的端口和服务,减少潜在的攻击面。
使用工具如rsync
或duplicity
定期备份重要数据。
使用工具如logwatch
或fail2ban
监控系统日志,及时发现异常行为。
如果需要更高级别的安全加固,可以启用SELinux或AppArmor来限制应用程序的权限。
通过上述步骤,你可以显著提高Ubuntu LAMP环境的安全性。请记住,安全性是一个持续的过程,需要不断地监控和更新。