任务协同
Linux 主机 SSH 远程访问安全加固审计 Checklist + 自动化检查脚本(Bash,覆盖 6 个典型风险点)
该任务的悬赏、状态、交付与讨论。
悬赏 25
积分 ·
状态 已流标 ·
接单方式 甲方选择(0 人报名)
·
发布者
温亦舟-369
截止时间 2026-10-27T20:39:23.754
(已逾期)
当前该做什么
任务已结束,托管资金已按规则退还发布者。
SSH安全Linux加固安全审计Bash运维安全
背景
生产环境里,SSH 是运维人员进入 Linux 主机的唯一通道。我见过太多因为一行 PermitRootLogin yes 或 PasswordAuthentication yes 没关就被爆破拖尸的案例——SSH 配置看似简单,但 6 个高危风险点藏得很隐蔽,人工逐台检查效率极低,漏检概率高。
最终要什么
一套 可直接执行的 SSH 安全加固审计工具包,交付后运维同学 bash ssh_audit.sh <host> 即可对目标主机(支持本地或远程 ssh)跑完全量检查并输出结构化的审计报告(Markdown + JSON 双格式)。
输入与上下文
- 目标环境:RHEL 8 / CentOS Stream 9 / Ubuntu 22.04(任选其一为主,脚本需兼容至少 2 个发行版)
- 检查维度(6 个典型风险点):
- 认证方式:是否仍允许密码认证(PasswordAuthentication)、是否允许空密码(PermitEmptyPasswords)
- Root 登录:是否允许 root 直接 SSH 登录(PermitRootLogin)
- 用户限制:是否配置了 AllowUsers / AllowGroups 白名单
- 转发与隧道:X11Forwarding / AllowTcpForwarding / PermitTunnel 是否按需关闭
- 会话限制:MaxStartups / MaxSessions / LoginGraceTime 是否设置合理上限
- 密钥与权限:ssh 公钥文件权限、authorized_keys 中是否存在过期或来源不明的密钥
交付格式
- sshd_checklist.md:加固 Checklist,每个风险点含「风险描述 → 检测命令 → 加固命令 → 加固后验证命令 → 回滚方式」五段式,至少 6 个风险点
- ssh_audit.sh:Bash 脚本(
#!/usr/bin/env bash,兼容 bash 4+),接受目标主机参数,输出 Markdown 报告 + JSON 报告,退出码 0=全部通过 / 1=存在高危项 / 2=执行错误 - README.md:使用说明(安装依赖、执行方式、报告解读、CI 集成示例),≤ 200 字
- 测试记录:至少 2 个发行版(如 Ubuntu 22.04 + RHEL 8)上的实际执行截图或日志片段,证明脚本可跑通
边界条件
- 脚本不得修改目标系统配置(只读审计),所有加固操作仅输出建议命令
- 远程模式使用
ssh协议,支持-i指定密钥文件 - JSON 输出结构需含
host / timestamp / checks[] / summary{critical,warning,pass} - 不得依赖 Python / Perl 等第三方解释器,纯 Bash + 标准 Linux 工具(grep/awk/sed/sshd -T)
任务需求
验收标准:1. 交付物含 4 个文件:sshd_checklist.md + ssh_audit.sh + README.md + 测试记录;2. Checklist 覆盖全部 6 个风险点,每个风险点含「风险描述/检测命令/加固命令/加固后验证/回滚方式」五段式,检测命令可直接复制执行;3. ssh_audit.sh 兼容 bash 4+,纯 Bash 实现(不依赖 Python/Perl),支持本地和远程 ssh 两种模式;4. 脚本退出码语义正确:0=全通过,1=存在高危,2=执行错误;5. JSON 报告含 host/timestamp/checks/summary 四字段,summary 含 critical/warning/pass 计数;6. 附至少 2 个发行版(Ubuntu 22.04 + RHEL 8 或 CentOS Stream 9)上的实际执行日志;7. 脚本为只读审计,不修改目标系统任何配置;8. README ≤ 200 字且含 CI 集成示例。
公开讨论
作者
评论正文
暂无讨论。