当前位置: 首页 > article >正文

搭建一个跳板服务器的全过程

在这里插入图片描述

目录

  • **一、跳板机的作用**
  • **二、搭建服务器跳板(Jump Server)**
    • **1. 服务器架构**
    • **2. 配置跳板机(Jump Server)**
      • **(1)安装 OpenSSH 服务器**
      • **(2)创建跳板机用户**
    • **3. 配置 SSH 免密登录**
      • **(1)在客户端生成 SSH Key**
      • **(2)从跳板机连接目标服务器**
    • **4. 使用 SSH Proxy 作为跳板**
      • **(1)直接通过 SSH 跳板访问目标服务器**
    • **5. 记录 SSH 登录日志**
      • **(1)启用 SSH 登录日志**
      • **(2)记录用户命令**
    • **6. 限制跳板机访问权限**
      • **(1)只允许指定用户使用跳板**
      • **(2)使用防火墙限制访问**
      • **(3)启用 Fail2Ban 保护 SSH**
  • **七、总结**

在这里插入图片描述


一、跳板机的作用

  1. 安全访问:外部用户不能直接访问内部服务器,必须通过跳板机进行连接。
  2. 权限控制:限制谁可以访问哪些服务器,并进行日志审计。
  3. 防止直接暴露:核心服务器不会直接暴露在公网,降低攻击面。

在这里插入图片描述

二、搭建服务器跳板(Jump Server)

本方案基于 Linux(Ubuntu 20.04 / CentOS 7) 搭建 SSH 跳板机,具体步骤如下:

1. 服务器架构

假设环境如下:

  • 跳板机(Jump Server):公网 IP 192.168.1.100
  • 目标服务器(Target Server):内网 IP 10.0.0.10
  • 客户端(User):IP 203.0.113.50

访问流程:

  1. 用户先连接跳板机(公网 IP)
  2. 再从跳板机连接到内网服务器(目标服务器)

2. 配置跳板机(Jump Server)

(1)安装 OpenSSH 服务器

在跳板机(Jump Server)上,确保 OpenSSH 服务器已安装:

sudo apt update && sudo apt install -y openssh-server

检查 SSH 服务状态:

sudo systemctl status ssh

(2)创建跳板机用户

在跳板机上创建专用用户,并设置强密码:

sudo adduser jumpuser
sudo passwd jumpuser

限制 root 登录
编辑 /etc/ssh/sshd_config

PermitRootLogin no
AllowUsers jumpuser

然后重启 SSH 服务:

sudo systemctl restart ssh

3. 配置 SSH 免密登录

为便捷管理,我们使用 SSH Key 认证来减少密码输入,并提高安全性。

(1)在客户端生成 SSH Key

客户端(User) 机器上,生成 SSH 密钥:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/jump_key

然后,将公钥拷贝到跳板机:

ssh-copy-id -i ~/.ssh/jump_key.pub jumpuser@192.168.1.100

测试是否可以无密码 SSH 登录:

ssh -i ~/.ssh/jump_key jumpuser@192.168.1.100

如果成功,则表明 SSH Key 认证已正确配置。

(2)从跳板机连接目标服务器

跳板机(Jump Server) 上,配置免密 SSH 登录 目标服务器(10.0.0.10)

ssh-keygen -t rsa -b 4096 -f ~/.ssh/jump_key
ssh-copy-id -i ~/.ssh/jump_key.pub user@10.0.0.10

然后测试:

ssh -i ~/.ssh/jump_key user@10.0.0.10

4. 使用 SSH Proxy 作为跳板

(1)直接通过 SSH 跳板访问目标服务器

客户端 上,使用 ProxyJump 直接连接目标服务器:

ssh -J jumpuser@192.168.1.100 user@10.0.0.10

如果不支持 -J,可以使用 ProxyCommand

ssh -o ProxyCommand="ssh -W %h:%p jumpuser@192.168.1.100" user@10.0.0.10

可以将其添加到 ~/.ssh/config 方便管理:

Host target_server
    HostName 10.0.0.10
    User user
    ProxyJump jumpuser@192.168.1.100
    IdentityFile ~/.ssh/jump_key

然后直接使用:

ssh target_server

5. 记录 SSH 登录日志

为了安全审计,我们记录所有用户的 SSH 访问日志。

(1)启用 SSH 登录日志

修改 /etc/rsyslog.conf,确保启用 authpriv 日志:

authpriv.*    /var/log/secure

然后重启 rsyslog:

sudo systemctl restart rsyslog

查看 SSH 登录日志:

sudo tail -f /var/log/auth.log   # Ubuntu
sudo tail -f /var/log/secure     # CentOS

(2)记录用户命令

/etc/bash.bashrc/etc/profile 中添加:

export HISTFILE=/var/log/jumpserver_history.log
export PROMPT_COMMAND='history -a'

这样,所有 SSH 用户的命令都会记录到 /var/log/jumpserver_history.log


6. 限制跳板机访问权限

为了增强安全性,我们可以限制跳板机的 SSH 访问行为。

(1)只允许指定用户使用跳板

编辑 /etc/ssh/sshd_config

AllowUsers jumpuser

然后重启 SSH:

sudo systemctl restart ssh

(2)使用防火墙限制访问

限制 SSH 只能从特定 IP 登录:

sudo ufw allow from 203.0.113.50 to any port 22

如果使用 iptables

sudo iptables -A INPUT -p tcp --dport 22 -s 203.0.113.50 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

(3)启用 Fail2Ban 保护 SSH

sudo apt install fail2ban
sudo systemctl enable fail2ban

编辑 /etc/fail2ban/jail.local

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
bantime = 600
findtime = 300
maxretry = 5

然后重启:

sudo systemctl restart fail2ban

查看封禁 IP:

sudo fail2ban-client status sshd

七、总结

本文介绍了完整的 服务器跳板(Jump Server) 方案,包括:

  1. 搭建 SSH 跳板机
  2. 配置 SSH Key 免密登录
  3. 使用 ProxyJump 访问目标服务器
  4. 记录 SSH 登录日志
  5. 限制访问权限,增强安全性

http://www.kler.cn/a/574220.html

相关文章:

  • TP-LINK图像处理工程师(深圳)内推
  • 质量属性场景描述
  • 计算机视觉算法实战——表面缺陷检测(表面缺陷检测)
  • XGBClassifiler函数介绍
  • 【mysql系】mysql启动异常Can‘t create test file localhost.lower-test
  • 力扣经典题目:接雨水
  • 使用python进行数据分析需要安装的库
  • MyBatis 配置文件核心
  • 【HeadFirst系列之HeadFirst设计模式】第16天之生成器模式(Builder Pattern):让对象构建更优雅!
  • 传统工厂转型实录:1套WMS系统如何砍掉40%仓储成本
  • 深入Sentinel使用和源码分析
  • uniapp登录用户名在其他页面都能响应
  • 【FFmpeg之如何新增一个硬件解码器】
  • 华为OD机试-发现新词的数量(Java 2024 E卷 100分)
  • JAVA实现有趣的迷宫小游戏(附源码)
  • 【算法day2】无重复字符的最长子串 两数之和
  • YOLOv8改进SPFF-LSKA大核可分离核注意力机制
  • linux上配置免密登录
  • react中的fiber和初次渲染
  • 爬虫逆向:脱壳工具Youpk的使用详解