温馨提示×

centos lamp安全设置方法

小樊
32
2026-01-02 08:49:36
栏目: 智能运维

CentOS LAMP 安全设置清单

一 基础加固

  • 保持系统与软件为最新:执行sudo yum update -y,及时修补漏洞。
  • 最小权限运行服务:Web 与数据库服务以非 root身份运行;必要时通过 sudo 授权管理。
  • 禁用不必要模块与功能:Apache 关闭目录浏览,PHP 禁用危险函数(如 exec、shell_exec、passthru 等,视应用而定)。
  • 隐藏版本信息:Apache 设置ServerTokens ProdServerSignature Off,减少信息泄露。
  • 严格文件权限:网站根目录建议755,仅对上传/缓存等目录按需放开写权限;禁止全局777
  • 管理后台与敏感路径:使用非默认目录名与强口令;限制仅内网或跳板机访问。
  • 备份与恢复演练:定期备份代码、数据与配置,并验证可恢复性。

二 网络与防火墙

  • 启用并持久化防火墙:
    • firewalld(CentOS 7+):
      • 启动与开机自启:sudo systemctl start firewalld && sudo systemctl enable firewalld
      • 放行 Web:sudo firewall-cmd --permanent --zone=public --add-service=http && sudo firewall-cmd --permanent --zone=public --add-service=https
      • 重载:sudo firewall-cmd --reload
  • 数据库端口访问控制:
    • 生产环境建议仅内网开放 3306,或仅允许跳板/应用服务器 IP:
      • 例:sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.10” port protocol=“tcp” port=“3306” accept’
      • 重载:sudo firewall-cmd --reload
  • 如必须使用 iptables,请确保规则有序并放行已建立连接,避免锁死 SSH。

三 Apache 安全配置

  • 核心参数与目录:
    • 关闭目录列表:在目标目录配置中设置Options -Indexes
    • 限制请求方法:在 .htaccess 或虚拟主机中加入LimitExcept GET POST
    • 启用日志与监控:确保access_log/error_log正常记录并定期审计。
  • 虚拟主机与权限:
    • 为每个站点使用独立VirtualHost,指定DocumentRootServerName
    • 上传/缓存目录单独设置,避免执行权限(如 php_admin_flag engine offRemoveHandler .php)。
  • 安全响应头(可选但推荐):启用X-Frame-OptionsX-XSS-ProtectionX-Content-Type-OptionsStrict-Transport-Security(启用 HTTPS 时)。

四 MariaDB MySQL 安全

  • 运行安全初始化:sudo mysql_secure_installation,完成设置root 强密码删除匿名用户禁止 root 远程登录删除测试库等步骤。
  • 账户与最小权限:
    • 为应用创建专用数据库与用户,按需授予权限(如仅对某库授予 SELECT/INSERT/UPDATE/DELETE);
    • 禁止应用使用root直连数据库。
  • 网络与加密:
    • 仅在内网开放 3306,或限制来源 IP;
    • 启用TLS/SSL加密传输(生产环境强烈建议)。
  • 备份与审计:定期mysqldump全量/增量备份,保留错误日志与慢查询日志用于审计与优化。

五 PHP 与 SELinux 安全

  • PHP 安全要点(编辑 /etc/php.ini):
    • 关闭错误回显:display_errors = Offdisplay_startup_errors = Off
    • 开启错误日志:log_errors = On,指定error_log路径;
    • 限制上传与资源:upload_max_filesizepost_max_sizememory_limit按业务合理设置;
    • 禁用危险函数(示例):disable_functions = exec,shell_exec,passthru,proc_open,proc_get_status,symlink,popen,system,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid
    • 性能与安全:opcache.validate_timestamps=0(生产)、opcache.memory_consumption合理设置。
  • SELinux 正确用法:
    • 不建议直接禁用 SELinux(如修改**/etc/selinux/config**为 disabled);
    • 如遇“Permission denied”且文件权限正确,使用semanage fcontext/restorecon为自定义目录设置正确的httpd 上下文,既满足安全又不影响运行。
  • 文件属主与权限示例:
    • 网站目录属主设为 apache:apache,权限755;上传目录可775并归属应用运行用户与 apache 组,避免777

0