Ubuntu LAMP数据安全保障体系构建指南
物理与启动安全
配置BIOS/UEFI密码,禁用CD/DVD、外部USB等非必要启动设备;设置GRUB引导密码,防止未经授权的启动项修改,阻断物理接触攻击的入口。
系统更新与补丁管理
定期执行sudo apt update && sudo apt upgrade更新系统及软件包,修复已知漏洞;安装unattended-upgrades包,自动安装安全更新,确保系统始终处于最新安全状态。
用户与权限管理
usermod -aG sudo赋予sudo权限;/etc/login.defs中的PASS_MAX_DAYS(如90天)、PASS_MIN_LEN(如12位),强制定期更换密码;/etc/apache2、/var/lib/mysql)的访问权限,使用chmod、chown命令设置合理权限(如750、640)。/etc/apache2/apache2.conf或虚拟主机配置),添加Options -Indexes,防止暴露目录结构;ServerTokens Prod、ServerSignature Off,避免泄露Apache版本及系统信息;LimitRequestBody指令限制上传文件大小(如10M),防范大文件攻击;sudo a2enmod ssl、sudo certbot --apache),确保数据传输安全。sudo mysql_secure_installation设置root密码,删除匿名账户(DROP USER ''@'localhost';)和测试数据库(DROP DATABASE test;);/etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address设置为127.0.0.1(仅本地访问),或通过GRANT语句仅允许特定IP访问(如GRANT ALL ON db.* TO 'user'@'192.168.1.100';);mysqldump定期导出数据库(如mysqldump -u root -p dbname > backup.sql),或使用Percona XtraBackup进行热备份(不影响服务运行)。php.ini,设置disable_functions = exec,passthru,shell_exec,system,防止代码执行攻击;expose_php = Off,隐藏PHP版本信息;开启display_errors = Off(生产环境),避免泄露敏感错误信息;open_basedir限制PHP脚本可访问的目录(如/var/www/html/),防止目录遍历攻击;upload_max_filesize(如2M)、post_max_size(如8M)限制上传大小,验证文件类型(如仅允许图片格式)。防火墙配置(UFW)
安装UFW(sudo apt install ufw),设置默认策略sudo ufw default deny incoming(拒绝所有入站)、sudo ufw default allow outgoing(允许所有出站);仅开放必要端口:SSH(2222,自定义)、HTTP(80)、HTTPS(443)(sudo ufw allow 2222/tcp、sudo ufw allow http、sudo ufw allow https);启用防火墙(sudo ufw enable),定期检查状态(sudo ufw status)。
SSH安全加固
/etc/ssh/sshd_config,设置PermitRootLogin no;ssh-keygen -t rsa -b 4096),将公钥复制到服务器(ssh-copy-id username@server_ip);Port 22为非标准端口(如2222),减少暴力破解尝试;MaxAuthTries 3(最多3次尝试)、LoginGraceTime 60(60秒内完成登录),防止暴力破解。暴力破解防护(Fail2Ban)
安装Fail2Ban(sudo apt install fail2ban),配置/etc/fail2ban/jail.local,启用SSH防护([sshd]部分),设置maxretry = 3(3次失败后封禁)、bantime = 3600(封禁1小时);定期检查日志(/var/log/fail2ban.log),确认防护效果。
备份策略
mysqldump(数据库)、tar(网站文件)命令;gpg加密备份文件(如gpg -c backup.tar.gz),存储到异地(如云存储、外部硬盘),遵循“3-2-1”原则(3份备份、2种介质、1份异地)。恢复测试
定期测试备份文件的可用性:
mysql -u root -p newdb < backup.sql;tar -xzvf website_backup.tar.gz -C /var/www/html);日志监控
收集系统日志(/var/log/syslog)、Apache日志(/var/log/apache2/access.log、error.log)、MySQL日志(/var/log/mysql/error.log),使用logwatch工具生成每日报告,分析异常访问(如大量404错误、频繁登录失败)。
入侵检测
安装Fail2Ban实时监控SSH、Apache等服务的登录行为,自动封禁恶意IP;使用chkrootkit、rkhunter定期扫描系统,检测rootkit、木马等恶意软件。