温馨提示×

LAMP服务器如何进行安全审计

小樊
31
2026-01-02 15:51:37
栏目: 云计算

LAMP服务器安全审计实操清单

一 审计准备与范围

  • 明确审计目标与边界:覆盖Linux 主机ApacheMariaDB/MySQLPHP业务应用,并纳入网络与物理层面。
  • 获取书面授权,避免对生产环境造成中断;准备回滚方案变更记录模板。
  • 建立审计基线:记录当前系统版本开放端口运行服务防火墙规则用户与权限证书有效期等。
  • 准备工具与账号:审计账号(最小权限)、只读数据库账号、日志与审计工具(如Lynis、Nikto、OWASP ZAP、OpenVAS/Nessus、Fail2Ban、auditd、Tripwire)。

二 执行审计的步骤与要点

  • 资产与暴露面盘点
    • 清单与版本核对:内核、Apache、MariaDB/MySQL、PHP与应用框架;核对安全更新源是否启用(如 Debian 的security.debian.org)。
    • 端口与服务:使用netstat查看监听端口,使用nmap识别开放端口与服务指纹(示例:nmap -sS -p- 目标IP;nmap --script=vuln 目标IP)。
    • 防火墙策略:核查仅开放80/443/SSH等必要端口(UFW/iptables)。
  • 系统与账户安全
    • 补丁与最小化:系统与安全补丁是否及时更新;是否最小化安装与禁用不必要服务。
    • 身份与授权:是否禁用 root 远程登录、使用SSH 密钥、限制sudo使用;是否配置PAM 密码复杂度
  • Apache 配置审计
    • 模块与暴露:是否禁用不必要模块(如 mod_php 等按需启用);是否关闭目录列表(Options -Indexes)。
    • 信息与错误:是否隐藏版本信息;自定义错误页避免泄露内部结构。
  • MariaDB/MySQL 审计
    • 基础安全:是否执行mysql_secure_installationroot 仅本地登录;删除匿名/测试账户与库。
    • 网络与权限:是否限制数据库访问来源 IP;数据库账号最小权限加密连接配置。
  • PHP 安全审计
    • 配置基线:是否禁用危险函数(如 exec、system 等);设置open_basedir限制脚本访问路径;关闭版本信息泄露
  • 日志、监控与入侵防护
    • 日志与告警:是否集中收集与定期审查系统/应用日志;是否部署Fail2Ban防暴力;是否启用auditd记录关键系统调用;是否用Tripwire做文件完整性;是否配置Logwatch或类似日报。
  • 漏洞扫描与渗透测试
    • 主机与配置:使用Lynis做系统安全基线扫描。
    • Web 应用:使用OWASP ZAP(自动化扫描SQL 注入、XSS等)与Nikto(配置错误与已知漏洞)。
    • 全面评估:使用OpenVAS/Nessus进行漏洞扫描并验证修复。

三 关键检查表与判定标准

检查项 期望结果 验证方法
系统与安全更新 启用安全源,补丁为最新 apt update/upgrade 记录、/var/log/apt/ 日志
开放端口与服务 仅开放80/443/SSH nmap -sS -p-、ss -tulpen
防火墙策略 默认拒绝,按需放行 ufw status / iptables -S
SSH 安全 禁用 root 远程密钥登录、可选改端口 /etc/ssh/sshd_config:PermitRootLogin no、PasswordAuthentication no
用户与权限 sudo 最小权限、无共享/弱口令 /etc/sudoers、/etc/passwd、PAM 策略
Apache 暴露面 关闭目录列表、隐藏版本信息 访问测试、curl -I、httpd.conf/虚拟主机配置
MariaDB/MySQL 执行安全脚本root 本地、限制来源 mysql_secure_installation、mysql.user 表、防火墙
PHP 安全 禁用危险函数open_basedir、关闭版本泄露 phpinfo()、php.ini、运行时函数列表
日志与监控 集中日志、Fail2Ban/auditd/Tripwire/Logwatch启用 systemctl status、fail2ban-client status、日志目录
漏洞扫描 定期扫描并闭环修复 Lynis、OWASP ZAP、Nikto、OpenVAS/Nessus 报告与复测记录

四 自动化与持续审计

  • 基线巡检脚本:定期执行Lynis、自定义脚本收集监听端口/进程/账户/证书到期等,形成差异报告。
  • 配置合规与变更审计:对Apache/PHP/MySQL关键配置建立“期望状态”快照,定期diff并告警漂移。
  • 文件与关键命令审计:启用auditd对/etc、/var/www、/usr/bin 等关键路径与命令进行系统调用审计;用Tripwire对网站目录与配置文件做完整性校验
  • 入侵防护与暴力阻断:部署Fail2Ban监控 SSH/HTTP 失败登录并自动封禁;结合iptables持久化规则。
  • 漏洞管理与复测:使用OpenVAS/Nessus或商业扫描器做周期性全量扫描,修复后复扫验证并留痕。

五 修复与加固建议

  • 系统与网络
    • 保持系统与安全源持续更新;仅开放80/443/SSH;必要时限制 SSH 来源 IP或改用密钥登录并禁用密码。
  • Apache
    • 禁用不必要模块目录列表;隐藏ServerTokens/ServerSignature;为虚拟主机启用SSL/TLS(可用certbot自动申请与续期)。
  • MariaDB/MySQL
    • 运行mysql_secure_installationroot 仅本地;为应用创建最小权限专用账号;限制数据库端口访问来源;启用SSL/TLS加密连接。
  • PHP
    • 在 php.ini 中禁用危险函数(如 exec、system、eval 等);设置open_basedir;关闭版本信息泄露;仅启用必要扩展。
  • 日志、监控与备份
    • 启用Fail2Ban/auditd/Tripwire/Logwatch形成检测-响应闭环;制定定期备份与恢复演练计划,确保可快速回滚。

0