尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何部署 The Bastion:SSH 堡垒机从零到首次连接的完整指南

如何部署 The Bastion:SSH 堡垒机从零到首次连接的完整指南 如何部署 The BastionSSH 堡垒机从零到首次连接的完整指南【免费下载链接】the-bastionAuthentication, authorization, traceability and auditability for SSH accesses.项目地址: https://gitcode.com/gh_mirrors/th/the-bastion团队管着几十台服务器的时候SSH 密钥总是散落各处有人把自己的公钥塞进了十台机器的 authorized_keys操作日志没人翻离职同事的密钥还挂在生产环境上没人敢删。The Bastion 这台 SSH 跳板机就是把认证、授权和审计全部收拢到一处让基础设施只需要认识堡垒机、而不是每个人。说白了The Bastion 就是一台集中式的 SSH 跳板机团队所有人只经过它访问基础设施它负责鉴权、放行和全程留痕。统一入口操作留痕权限细到个人这三件事它一次做完。实现上主要用标准 SSH 协议核心代码是 Perl 写的对系统环境没什么特殊要求。环境要求项目要求操作系统Debian 11/12/13、Ubuntu 22.04/24.04/26.04 LTS、Rocky Linux 8/9/10、OpenSUSE Leap 16.0、FreeBSD 14/15必要依赖标准 sshd 与 ssh 客户端、Perl 运行环境安装脚本会自动补齐其余依赖部署全流程从零部署到首次连接整个部署分三个阶段全程用 root 在目标服务器上完成。注意 The Bastion 期望独占这台机器别和其他业务混部。阶段一 · 获取与编译先把代码落到服务器上。代码固定放在/opt/bastion因为 sudoers、cron 等配置里写死了绝对路径换位置要改一堆东西。把仓库克隆到指定目录并固定到最新 release 标签避免用到未验证的 master 分支git clone https://gitcode.com/gh_mirrors/th/the-bastion /opt/bastion # 固定路径 /opt/bastion git -C /opt/bastion checkout $(git -C /opt/bastion tag | tail -1) # 检出最新 release 标签接着补齐依赖。运行官方依赖检查脚本自动安装 Perl 模块、openssh 等所需软件包/opt/bastion/bin/admin/packages-check.sh -i # 检测并安装全部必需依赖 /opt/bastion/bin/admin/install-ttyrec.sh -a # 安装会话录制组件 ttyrec这一步在解决的问题是会话录制能力依赖一个增强版的 ttyrec官方脚本会自动识别发行版并装好对应二进制省掉你手动折腾。阶段二 · 初始化依赖就绪后运行安装脚本完成系统级初始化——写入 bastion.conf、加固 sshd 配置、创建系统账号。全新机器直接用--new-install它会重新生成主机密钥并直接加固 SSH/opt/bastion/bin/admin/install --new-install # 全新安装重生成主机密钥并加固 sshd装完看一眼主配置文件/etc/bastion/bastion.conf这是 JSON 格式首次部署只需要改最关键的两项{ bastionName: my-bastion, # 堡垒机显示名用户别名和横幅里都会用到 adminAccounts: [admin_username] # 其余配置项参见官方文档 }这里其实有个小坑配置文件每次有新会话建立时都会重新读取语法写错了不报错而是后续连接直接失败。改完可以用文件头注释里给的校验命令跑一下。管理员账户不能走插件创建要用专用脚本手动初始化过程中输入你的 SSH 公钥即可创建出来的账号自动拥有全部受限命令权限/opt/bastion/bin/admin/setup-first-admin-account.sh admin_username auto阶段三 · 首次连接现在堡垒机能用了但还连不到任何远程主机。先给自己配个短别名之后所有操作都靠它alias bastionssh admin_usernamebastion_host -t -- bastion --osh info # 验证连通性并查看当前账号信息The Bastion 的出方向连接不用你配目标机器的账号密码而是用一把 egress 公钥。取出自建的 egress 公钥bastion --osh selfListEgressKeys把打印出来的公钥追加到目标主机的~/.ssh/authorized_keys然后在堡垒机上授权这条个人访问路径之后直接按目标主机名发起连接流量自动经由堡垒机转发bastion --osh selfAddPersonalAccess --host remote_host --user remote_user --port-any ssh remote_userremote_host # 实际经由 The Bastion 出方向连接到这一步第一台远程主机就通了完整的插件用法可以继续看 首次使用指南。权限怎么配才够用新员工入职不用碰任何机器。建一个组、拉人进组、把服务器加进组的 ACL新账号拿到的只有组内最小权限他的 ingress 密钥失效了也影响不了别人。季度安全审计谁在什么时候连了哪台机器、执行了什么全部可回溯。每次允许和拒绝的操作都会写入 syslog 并同步进本地 sqlite 库交互会话还有 ttyrec 录屏可以直接回放日志体系说明里讲了怎么对接 SIEM。高危变更操作给敏感账号开 MFA删除账号、修改 ACL 这类动作前会强制要求密码或 TOTP 二次验证MFA 配置文档覆盖了密码和 TOTP 两种因子。部署最容易踩的 3 个坑连不上报端口被占用目标机器 22 端口已有服务在监听。改成非标准端口同步调整防火墙和堡垒机的 sshd 配置即可。改完配置后新会话莫名失败bastion.conf 是 JSON语法错误不会在安装时报出来而是连接时才暴露。用配置项说明里的 完整配置参考对照检查并做 JSON 校验。权限不足导致启动异常安装和初始化必须以 root 执行普通用户会卡在写入 sudoers 和系统账号的阶段切回 root 重跑安装脚本即可。【免费下载链接】the-bastionAuthentication, authorization, traceability and auditability for SSH accesses.项目地址: https://gitcode.com/gh_mirrors/th/the-bastion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表