第2章:Linux系统安全基础
3 个问答卡片
卡片1:文件权限与SUID安全
常见问题:“如何查找系统中存在的SUID/SGID文件?怎样防范SUID提权?”
回答框架:两步走 - ①查找命令:find / -perm /4000 2>/dev/null;②检查白名单,临时移除高危SUID(如chmod u-s /usr/bin/passwd)。
简短示例:“我会先列出所有SUID二进制,与基线对比;发现非预期的nmap时立即移除SUID位,并排查是否已被利用。”
追问:“如何区分合法SUID与恶意SUID?”→ 答:比对rpm包校验,或用debsums验证完整性。
避坑:不要一次性chmod -R 000 /usr/bin,可能导致系统崩溃;先评估每个SUID的必要性。
卡片2:SSH安全加固
常见问题:“你的SSH配置策略有哪些?如何防止暴力破解?”
回答框架:四要素 - ①禁用root登录;②仅允许密钥登录;③修改默认端口(非必需,但可减少扫描);④配置fail2ban限频。
简短示例:“我会在/etc/ssh/sshd_config中设置PermitRootLogin no、PasswordAuthentication no,并将密钥权限设为600。再配合fail2ban封禁异常IP。”
追问:“如果必须使用密码登录,如何增强安全性?”→ 答:启用Google Authenticator双因子认证,并设置MaxAuthTries=3。
避坑:修改端口后记得更新防火墙规则;先保持一个session不断开再测试新配置,防止锁在外面。
卡片3:日志审计与入侵痕迹分析
常见问题:“服务器疑似被入侵,你第一件事会看什么日志?”
回答框架:三步检查 - ①/var/log/auth.log或/var/log/secure查看登录异常;②lastb看失败登录IP;③history及.bash_history检查可疑命令。
简短示例:“我会先tail -50 /var/log/auth.log | grep 'Failed password'统计攻击IP,然后last -10查看最近登录。如果发现已知攻击IP,立刻加入hosts.deny。”
追问:“日志被清空或篡改怎么办?”→ 答:查看/var/log/messages*轮替文件、检查auditd记录;如果启用日志服务器,从rsyslog远端日志恢复。
避坑:不要立刻重启服务,先做内存取证和日志备份;使用logger命令手动留下操作记录,防止被误判为攻击者。
公司侧重点
| 公司类型 | 侧重点 | 典型追问方向 |
|---|---|---|
| 互联网大厂(字节、阿里) | 自动化安全基线、大规模主机策略分发 | 如何用Ansible批量加固10万台服务器? |
| 金融/证券行业 | 合规审计、日志完整性保护 | 日志防篡改、WORM存储原理? |
| 云服务厂商(腾讯云、华为云) | 主机安全Agent、漏洞扫描集成 | 如何检测内核级rootkit? |
面试官画像
- 安全专家型:深挖底层原理,会问
suid在内核中的实现机制、capabilities与suid的差异。 - 运维交付型:关注实际部署,追问“SSH加固后如何保证业务连接不受影响?”或“大规模日志收集方案”。
- 综合考察型:给你一个残缺的安全事件描述,要求你画出排查步骤流程图,考察逻辑与应急反应。
回答框架(通用公式)
① 配置:最小权限原则,文件/用户/服务默认关闭不必要功能;
② 加固:密码策略、密钥强度、内核参数优化(如
sysctl -w net.ipv4.tcp_syncookies=1);③ 溯源:日志记录 -> 异常检测 -> 追溯攻击链,形成闭环。
简短示例(完整回答)
问:“请现场说一个Linux安全加固的关键步骤。”
答:“我选SSH加固。第一步修改sshd_config:禁用密码登录、禁止root远程;第二步重启服务前用sshd -t检查语法;第三步用netstat -tlnp确认监听在非默认端口;最后在防火墙只放行源IP白名单。如果已有攻击记录,用fail2ban动态封禁。”
追问与应对策略
| 典型追问 | 应对方略 | 避坑提醒 |
|---|---|---|
| SUID + cap_setuid 如何绕过? | 区分二进制自身capability与文件SUID;使用getcap查看能力集。 |
不要混淆setuid位和capabilities,面试官很在意概念准确。 |
| 日志磁盘满了怎么办? | 配置logrotate、设置远程日志服务器压缩归档;紧急情况可清理/var/log下非关键日志。 |
严禁直接rm -rf /var/log,会导致系统服务无法重启。 |
chmod -R 000;② 测试SSH配置时保留一个活动连接;③ 回答时体现“自动化”思维(如脚本化检查SUID)会比纯手工命令更受大厂认可;④ 切勿只说“我知道”,要给出具体命令或配置片段证明经验。