Debian LAMP如何进行网络安全防护
小樊
41
2025-12-20 17:50:24
Debian LAMP网络安全防护实操清单
一 系统与基础加固
- 保持系统与软件为最新,优先启用安全更新;建议配置无人值守安全更新以持续修补漏洞。
- 创建非 root日常运维账号并加入sudo,禁用 root 远程登录;SSH 使用密钥认证,禁用密码登录与空密码。
- 仅启用必要的系统与服务,卸载无用软件包,减少攻击面;对关键系统文件设置不可变属性(如 chattr +i)以防被篡改。
- 配置UFW或iptables仅放行必要端口(SSH、HTTP、HTTPS),默认拒绝入站;数据库端口(如 3306)默认仅本地访问,必要时按源 IP 白名单放行。
- 部署Fail2ban对 SSH、Apache 等进行暴力破解防护;定期审计日志与账户权限。
二 Apache Web 服务器防护
- 隐藏版本与标识:设置ServerTokens Prod、ServerSignature Off,关闭TraceEnable。
- 目录与访问:禁用目录列表(Options -Indexes),对外不可访问的目录使用Require all denied;仅在需要时启用 .htaccess(AllowOverride None 提升性能与安全)。
- 模块最小化:仅启用必要模块(如 rewrite),减少潜在攻击入口;启用 HTTP/2 提升加密性能。
- 启用 ModSecurity 等 WAF 并加载核心规则集,拦截常见 Web 攻击(SQLi、XSS 等)。
三 MariaDB MySQL 与 PHP 安全
- 运行mysql_secure_installation完成基础加固:设置强 root 密码、删除匿名账户、禁止远程 root 登录、移除测试库。
- 数据库账户遵循最小权限原则:为应用创建专用账户,仅授予目标库/表的必要权限;默认仅localhost访问,远程访问需显式白名单与防火墙配合。
- PHP 安全:在 php.ini 中禁用危险函数(如 exec、system、shell_exec、passthru),限制上传大小(如 upload_max_filesize=2M、post_max_size=8M),关闭不必要的模块与暴露信息的函数。
四 加密传输与证书管理
- 使用 Certbot 获取 Let’s Encrypt 免费证书:安装 certbot 与 Apache 插件后执行“sudo certbot --apache -d yourdomain.com -d www.yourdomain.com”,按向导自动配置 HTTPS。
- 防火墙放行 443/tcp,并建议将 UFW 设置为“Apache Full”(同时放行 80/443)。
- 设置自动续期:执行“sudo certbot renew --dry-run”验证;证书有效期为90 天,续期任务会自动创建。
- 启用 HSTS(可选):在 SSL 虚拟主机配置中添加“Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains””。
五 日志监控 备份与持续运维
- 日志与监控:确保 Apache 与 MySQL 记录访问与错误日志;使用 logwatch 进行日报汇总,结合 Prometheus + Grafana 或 Nagios/Zabbix 做实时监控与告警。
- 安全审计与加固:定期运行 Lynis 进行系统安全基线扫描;按需引入 AppArmor 对关键进程进行强制访问控制。
- 备份与恢复:制定周期性备份策略(如每日全备、每周异地/离线备份),使用 tar/rsync 等工具保留多版本;定期演练恢复流程与应急计划。