Ubuntu LAMP环境安全防护指南
LAMP(Linux+Apache+MySQL+PHP)是常见的Web服务组合,其安全防护需覆盖系统基础、组件配置、访问控制、监控审计等多层面,以下是具体措施:
/etc/rc.local添加echo "0" > /proc/sys/kernel/osrelease),拒绝回复ping命令(echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all)。sudo apt install --no-install-recommends package_name);定期更新系统和软件包(sudo apt update && sudo apt upgrade -y),修复已知漏洞;清理过时包(sudo apt autoremove)。禁用目录列表(在/etc/apache2/apache2.conf或虚拟主机配置中添加Options -Indexes);使用.htaccess文件限制敏感目录访问(如Deny from all);启用HTTPS(通过Let’s Encrypt申请免费证书,配置SSLEngine on);隐藏Apache版本信息(ServerTokens Prod、ServerSignature Off)。
修改root用户强密码(sudo mysql_secure_installation);删除匿名账户和测试数据库(DELETE FROM mysql.user WHERE User=''; DROP DATABASE test;);限制远程访问(仅允许可信IP连接,GRANT ALL PRIVILEGES ON *.* TO 'user'@'trusted_ip' IDENTIFIED BY 'StrongPassword'; FLUSH PRIVILEGES;);加密存储密码(ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPassword';)。
禁用危险函数(在php.ini中设置disable_functions = eval,exec,system,passthru,shell_exec,curl_exec);关闭注册全局变量(register_globals = Off);限制错误信息泄露(生产环境设置display_errors = Off、log_errors = On);设置PHP信息隐藏(expose_php = Off)。
SSH安全加固
禁用root直接登录(修改/etc/ssh/sshd_config:PermitRootLogin no);使用密钥认证(ssh-keygen -t rsa -b 4096生成密钥,ssh-copy-id user@server_ip复制公钥);更改默认SSH端口(如Port 2222);限制登录尝试次数(MaxAuthTries 3)。
防火墙配置
使用UFW(Uncomplicated Firewall)配置规则:允许必要端口(sudo ufw allow 22/tcp(SSH)、sudo ufw allow 80/tcp(HTTP)、sudo ufw allow 443/tcp(HTTPS)),启用防火墙(sudo ufw enable);或使用iptables设置默认策略(sudo iptables -P INPUT DROP),允许已建立连接(sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT)。
日志与入侵检测
定期检查系统日志(/var/log/syslog、/var/log/apache2/error.log、/var/log/mysql/error.log);使用Fail2Ban自动封禁多次登录失败的IP(sudo apt install fail2ban,配置/etc/fail2ban/jail.local);使用Lynis进行安全审计(sudo apt install lynis,sudo lynis audit system)。
备份策略
定期备份数据库(mysqldump -u root -p database_name > backup.sql)、网站文件(tar -czvf /backup/website.tar.gz /var/www/html)和配置文件(cp /etc/apache2/apache2.conf /backup/);建议开启自动备份(通过cron任务实现)。
sudo apt install unattended-upgrades),配置自动安装安全更新(sudo dpkg-reconfigure unattended-upgrades);设置cron任务每周检查更新(0 3 * * 0 sudo apt update && sudo apt upgrade -y)。