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 Prod、ServerSignature 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,指定DocumentRoot与ServerName;
- 上传/缓存目录单独设置,避免执行权限(如 php_admin_flag engine off 或 RemoveHandler .php)。
- 安全响应头(可选但推荐):启用X-Frame-Options、X-XSS-Protection、X-Content-Type-Options、Strict-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 = Off、display_startup_errors = Off;
- 开启错误日志:log_errors = On,指定error_log路径;
- 限制上传与资源:upload_max_filesize、post_max_size、memory_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。