什么是跳板机?
跳板机(Bastion Host)是位于公网与内网之间的安全中转服务器,用于集中管理远程访问权限,通过跳板机运维人员可安全登录内网服务器,避免直接暴露内网资产,同时实现操作审计和权限控制。
搭建步骤(基于 OpenSSH)
前置准备
-
服务器准备
- 公网服务器 1 台(跳板机,系统:Ubuntu/CentOS)
- 内网服务器若干(需通过跳板机访问)
- 所有服务器已安装 OpenSSH:
sudo apt install openssh-server
(Ubuntu)或sudo yum install openssh-server
(CentOS)
-
网络配置
- 跳板机开放 SSH 端口(默认 22)
- 内网服务器仅允许跳板机 IP 访问 SSH(通过防火墙或安全组设置)
配置跳板机核心功能
步骤 1:创建运维账户
sudo useradd -m -s /bin/bash operator # 创建账户 sudo passwd operator # 设置密码
步骤 2:强制密钥认证(禁用密码登录)
编辑 /etc/ssh/sshd_config
:
PasswordAuthentication no # 关闭密码登录 PubkeyAuthentication yes # 启用密钥认证 PermitRootLogin no # 禁止root登录 AllowUsers operator # 仅允许operator登录
重启 SSH:sudo systemctl restart sshd
步骤 3:生成密钥对(本地机器操作)
在运维人员电脑执行:
ssh-keygen -t rsa -b 4096 # 生成密钥,保存到 ~/.ssh/id_rsa
步骤 4:部署公钥到跳板机
将公钥上传至跳板机:
ssh-copy-id -i ~/.ssh/id_rsa.pub operator@跳板机IP
通过跳板机连接内网服务器
方法 1:SSH 命令直连(推荐)
ssh -J operator@跳板机IP 内网用户@内网服务器IP # 示例:ssh -J operator@203.0.113.5 admin@192.168.1.100
方法 2:SSH 配置文件简化(~/.ssh/config)
Host bastion HostName 203.0.113.5 # 跳板机公网IP User operator Host internal-server1 # 内网服务器别名 HostName 192.168.1.100 User admin ProxyJump bastion # 自动通过跳板机连接
连接命令:ssh internal-server1
安全加固措施
- 修改 SSH 端口
编辑跳板机/etc/ssh/sshd_config
:Port 59222 # 改用非标准端口
- 防火墙限制
sudo ufw allow 59222/tcp # 仅开放新端口 sudo ufw deny 22 # 禁止默认端口
- 审计操作日志
sudo apt install auditd # Ubuntu 安装审计工具 sudo auditctl -w /etc/ssh/sshd_config -p wa # 监控配置文件改动
- 定期更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu sudo yum update -y # CentOS
常见问题
Q1:如何避免跳板机成为单点故障?
部署多台跳板机并用 Nginx 做 TCP 负载均衡,或使用 Keepalived 实现高可用。
Q2:如何记录用户操作日志?
使用
sudo apt install tlog
记录会话日志,或配置sshd_config
的LogLevel VERBOSE
。
Q3:能否限制用户可访问的内网服务器?
通过 SSH 证书的
principals
或第三方工具(如 Teleport)实现精细授权。
通过 OpenSSH 搭建跳板机是低成本、高安全性的方案,核心在于:
- 强制密钥认证 + 禁用密码登录
- 严格限制内网服务器的访问源
- 操作日志审计
- 定期安全加固
引用说明:本文方案基于 OpenSSH 官方文档(openssh.com)及 Linux 安全基线标准(CIS Benchmark),实践前请根据实际网络环境调整配置。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/17594.html