1. 概述与准备
1) 目标:搭建一台跳板机(Bastion Host),用于安全集中管理生产环境SSH访问与审计。
2) 适用场景:多台VPS/主机托管在私有子网或云VPC,需要单点公网访问控制。
3) 前置条件:拥有目标服务器root或控制台权限,推荐系统:Ubuntu 22.04 / CentOS 8 / Debian 11。
4) 必备工具:ssh, scp, wget/curl, iptables/nftables, firewall-cmd/ufw, auditd 或 rsyslog。
5) 网络规划:公网IP、内网网段、跳板机CIDR、管理IP白名单、与CDN或WAF协同防护方案。
2. 下载跳板机文件与脚本
1) 官方/公司仓库:示例使用私有仓库 https://git.example.com/infra/jumpbox 。
2) 下载命令(示例):wget https://git.example.com/infra/jumpbox/releases/jumpbox-1.2.0.tar.gz -O /root/jumpbox-1.2.0.tar.gz。
3) 验证校验:sha256sum /root/jumpbox-1.2.0.tar.gz # 示例校验值:d2f8...a9c3。
4) 解压与安装:tar -xzvf jumpbox-1.2.0.tar.gz && cd jumpbox-1.2.0 && ./install.sh --mode=prod。
5) 下载大小与权限:安装包大小 8.5MB,安装脚本设置为 755;若通过scp复制请注意网速与超时设置。
3. 网络与主机初始化配置
1) 设置主机名与时区:hostnamectl set-hostname jump-prod-01 && timedatectl set-timezone Asia/Shanghai。
2) 静态IP示例(Ubuntu netplan):地址 198.51.100.23/24,网关 198.51.100.1,DNS 114.114.114.114。
3) 路由与NAT:若跳板位于DMZ,启用IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward。
4) SSH端口与强制策略:在 /etc/ssh/sshd_config 中设置 Port 2222、PermitRootLogin no、MaxAuthTries 3。
5) 防墙基础规则(示例 ufw):ufw default deny incoming; ufw allow 2222/tcp; ufw allow from 203.0.113.0/24 to any port 2222; ufw enable。
4. 用户与权限初始化(最小化原则)
1) 创建管理用户与组:groupadd sshadmins -g 1500 && useradd -m -u 1501 -g sshadmins -s /bin/bash jumpadmin。
2) 设置sudo权限:在 /etc/sudoers.d/jumpadmin 写入 jumpadmin ALL=(ALL) NOPASSWD: /usr/bin/su -c, /usr/bin/systemctl restart sshd。
3) SSH密钥管理:将公钥放至 /home/jumpadmin/.ssh/authorized_keys,权限 600,目录 700。
4) 最小权限原则:把所有运维账号加入 sshusers 组,仅允许通过跳板机进行内网跳转。
5) 审计配置:启用 auditd,对于关键文件 /etc/ssh/sshd_config、/etc/sudoers.d/* 记录修改日志。
5. 安全加固与DDoS防护集成
1) 防暴力策略:安装并配置 fail2ban,监控 sshd,ban 时间 1h,maxretry 5。
2) 连接数限制(iptables示例):iptables -A INPUT -p tcp --dport 2222 -m connlimit --connlimit-above 10 -j REJECT。
3) 集成CDN/WAF:把管理面板与跳板相关的DNS记录放在 Cloudflare/腾讯云 CDN 下,开启“仅限IP访问”策略。
4) TCP层防护:设置 SYN cookies、net.ipv4.tcp_syncookies=1,并在云厂商侧启用高防或EIP黑洞策略。
5) 日志与告警:将 /var/log/auth.log 发送到集中日志系统(ELK/Fluentd),结合 Prometheus Alertmanager 做异常登录告警。
6. 真实案例与服务器配置数据举例
1) 真实案例概述:公司A在华东区域部署一台
跳板机用于生产集群运维,跳板公网IP 198.51.100.23。
2) 跳板机规格:4 vCPU / 8GB RAM / 100GB SSD,操作系统 Ubuntu 22.04 LTS。
3) 关键配置快照:sshd_config 中 Port 2222, PermitRootLogin no, AllowUsers jumpadmin opsviewer。
4) 防火墙快照(iptables):已启用 connlimit、rate-limit(每秒 10 次)与允许白名单 203.0.113.0/24。
5) 下表为该环境主要主机清单与规格展示(仅供示例):
| 角色 |
公网IP/内网IP |
CPU |
内存 |
磁盘 |
系统 |
| 跳板机 |
198.51.100.23 / 10.0.1.10 |
4 vCPU |
8 GB |
100 GB SSD |
Ubuntu 22.04 |
| 应用节点1 |
10.0.1.11 |
8 vCPU |
16 GB |
500 GB |
CentOS 8 |
7. 验证步骤与运维建议
1) 验证SSH连通:从管理工作站 ssh -p 2222 jumpadmin@198.51.100.23,检查 /var/log/auth.log 有无异常。
2) 跳转测试:ssh -A jumpadmin@198.51.100.23 然后 ssh app01@10.0.1.11 测试内网跳转与代理转发。
3) 审计与回溯:使用 lastlog、ausearch、journalctl 检索登录历史并每天自动归档。
4) 备份与恢复:定期导出 /home/*/.ssh、/etc/ssh、/etc/sudoers.d 至安全仓库,建议每周增量备份。
5) 运维建议:生产环境每月做一次系统与安全补丁,关键变更使用变更单并在维护窗口执行,维护期间关闭非必要公网端口。
来源:图文教程配置跳板机下载并完成网络与用户权限初始化设置