Linux系统中哪些配置可能导致安全漏洞
小樊
39
2025-12-29 16:50:44
Linux系统中常见的高风险配置
一 身份与认证
- 使用弱口令/复用口令/明文口令存储,易被猜测或泄露,导致未授权访问。
- SSH 允许 root 直接登录(PermitRootLogin yes),成为暴力破解与提权的首选目标。
- 密码认证未禁用(PasswordAuthentication yes),与弱口令叠加,放大爆破风险。
- SSH 协议版本 1或未限定为仅 SSH-2,存在已知安全缺陷。
- 空密码登录开启(PermitEmptyPasswords yes),账户可被无凭据登录。
- 登录失败次数无限制(MaxAuthTries 过大或未设),易被自动化工具持续爆破。
- SSH Agent 转发/端口转发随意开启,私钥或凭据可能被横向移动滥用。
- 未启用多因素认证(如 TOTP),单因素口令被攻破即失守。
二 权限与文件系统
- sudo 配置过度宽松:如
NOPASSWD: ALL 或允许执行 /bin/bash、/bin/sh 等高危命令,导致普通用户轻易提权。
- SUID/SGID 程序过多或存在漏洞:被利用可直接获得高权限,应最小化并定期审计。
- 关键文件权限过宽:如
/etc/shadow 非 600、/etc/sudoers 非 440,或全局可写/可读的敏感文件与目录,易被读取或篡改。
- /home 目录权限过宽(如 755),导致用户间可遍历访问他人家目录中的敏感信息。
- 全局可读/可写文件/目录由不当 umask 或错误配置引入,扩大攻击面。
- NFS 导出不安全:启用 no_root_squash 或以 rw,suid,dev,exec 等宽松选项导出,可能让远程 root 在共享上获得本地 root 能力。
三 网络与服务暴露
- 防火墙规则过宽:未遵循“最小暴露面”,开放不必要的端口/协议,或未限制来源 IP。
- 不必要的服务/端口对外开放:未关闭无用守护进程,增加被利用的机会。
- SSH 使用默认端口 22 且无其他访问控制,自动化扫描与暴力破解命中率高。
- Web 服务器信息泄露与薄弱头:如显示版本、允许点击劫持、MIME 嗅探、缺少 XSS 防护等,便于精准攻击与绕过。
- 未部署暴力破解防护:缺少如 fail2ban 等机制,无法抑制 SSH 等服务的持续爆破。
四 补丁内核与容器
- 系统与内核未及时更新:未安装安全补丁,已知漏洞可被直接利用。
- 内核安全参数未启用:如未设置
kernel.dmesg_restrict=1、kernel.kptr_restrict=2、kernel.yama.ptrace_scope=1、net.ipv4.conf.all.log_martians=1,增加信息泄露与提权风险。
- 容器运行时权限过高:未以只读根文件系统、未丢弃特权、未最小化 capabilities、未非 root 运行,存在容器逃逸与横向移动隐患。
五 快速自查要点
- SSH:确认
PermitRootLogin no、PasswordAuthentication no、Protocol 2、MaxAuthTries 3、AllowUsers <受限列表>;必要时开启 fail2ban 与 MFA。
- 权限:
/etc/shadow 600、/etc/sudoers 440;排查 find / -perm -4000 -type f 与 find / -perm -2000 -type f 的 SUID/SGID 清单并最小化。
- 网络:仅开放必要端口;Web 服务关闭版本显示并启用安全响应头;审查防火墙规则与日志。
- 系统与内核:保持 安全更新 与 内核热补丁;按需启用内核安全参数。
- 容器:运行容器时优先使用
--read-only、--security-opt=no-new-privileges、--cap-drop=ALL 并仅添加必要 cap-add,以非 root 用户运行。