服务器堡垒机搭建:从零搭建服务器堡垒机:工具选择、安装与配置
前置准备
在开始服务器堡垒机搭建之前,请先确认你准备好以下环境和资源:
- 一台Linux服务器(推荐腾讯云、阿里云或华为云ECS),系统为 CentOS 7.9 或 Ubuntu 20.04 以上版本。
- 服务器拥有公网IP(若内网使用则需局域网可达)。
- 服务器已开放必要端口:
- SSH 端口(默认22,建议修改为其他高位端口)
- 堡垒机Web服务端口:8080(JumpServer默认),可在配置中修改。
- 堡垒机SSH代理端口:2222(用于代理SSH连接)。
- 域名(可选):配置反向代理或直接使用 IP+端口 访问。
- 确保服务器已安装 curl、vim 等基本工具。
# CentOS 安装必要工具
sudo yum install -y curl vim
Ubuntu
sudo apt update && sudo apt install -y curl vim
注意:防火墙必须放行上述端口,否则无法访问堡垒机Web界面和SSH代理。
分步操作
我们以 JumpServer(开源堡垒机标杆项目)为例,采用官方推荐的 Docker 部署方式,几步即可完成服务器堡垒机搭建。
第一步:安装 Docker 和 Docker Compose
# 使用阿里云镜像源安装 Docker(国内用户加速)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动 Docker 并设置开机自启
sudo systemctl enable --now docker
安装 Docker Compose(v2)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
第二步:使用 JumpServer 一键部署脚本
JumpServer 社区版提供了一键部署脚本,适合新手。
# 下载并执行快速部署脚本(默认安装最新稳定版)
curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash脚本会自动拉取镜像、创建容器并启动服务。
整个过程约3-5分钟,期间会询问是否修改默认端口,建议直接回车采用默认值。
第三步:初始化管理员账号
部署完成后,脚本会在终端打印管理员初始密码(例如:admin / admin123)。
请务必复制保存,第一次登录需要修改。
若未显示,可执行:
# 查看容器日志获取初始密码
docker logs jumpserver | grep "初始密码"第四步:登录 Web 界面
浏览器访问:http://你的服务器IP:8080,使用 admin 账号和初始密码登录,按提示重置密码。
登录后,你将看到仪表盘。
接下来创建用户、添加资产即可正常使用。
添加第一台服务器资产
- 点击左侧菜单 资产管理 -> 资产列表,点击 创建资产。
- 填写资产名称、IP、SSH端口(22或自定义),选择系统平台。
- 认证方式选择 密钥 或 密码,推荐使用密钥。
- 保存后,在 会话管理 中可发起Web终端连接。
避坑指南
- 端口冲突:若本机已有服务占用 8080 或 2222,修改
/opt/jumpserver/config/config.txt中的HTTP_PORT和SSH_PORT,然后重启容器:docker-compose restart。 - 防火墙未放行:检查云服务商安全组和服务器内部防火墙:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --reload- Docker 未启动:执行
systemctl status docker,若未运行则systemctl start docker。 - 服务器时间不同步:堡垒机依赖时间校验,建议安装 NTP:
yum install -y ntpdate && ntpdate ntp.aliyun.com - 资产连接失败:检查目标服务器是否允许密钥认证,以及堡垒机与目标服务器的网络连通性。
高频问题解答
Q1:如何在堡垒机中添加 SSH 密钥登录的资产?
- 在目标服务器上生成密钥对
ssh-keygen,将公钥写入~/.ssh/authorized_keys。在JumpServer资产配置的“认证方式”中选择“密钥”,并填入对应私钥内容。
Q2:忘记 admin 密码怎么办?
- 进入 JumpServer 容器执行重置脚本:
docker exec -it jumpserver /opt/jumpserver/apps/manage.py changepassword admin输入新密码即可。
Q3:堡垒机能管理Windows服务器吗?
- 可以。JumpServer 支持 RDP 协议,在资产类型中选择 Windows,填写 IP 和 RDP 端口(默认3389),认证方式支持密码或密钥。
Q4:部署完成后,Web 界面显示“数据库连接失败”怎么办?
- 检查 MySQL 容器是否正常运行:
docker ps。若不在运行,查看日志:docker logs jumpserver-mysql,常见原因为磁盘空间不足或内存不够。
效果验证
- 登录 JumpServer Web 界面,点击 会话管理 -> Web 终端。
- 选择刚才添加的资产,点击连接。
- 成功弹出终端窗口,输入命令
hostname或ip a,返回目标服务器信息,说明服务器堡垒机搭建成功且工作正常。
也可通过 SSH 客户端测试代理端口:
ssh -p 2222 admin@你的堡垒机IP
输入堡垒机账号密码登录后,会列出可管理的资产列表,输入编号即可连接目标服务器。
若以上测试均通过,祝贺你,你的服务器堡垒机已经可以投入日常运维中使用。
后续建议进一步完善用户权限、审计日志和告警策略,让运维更加安全可控。