云计算百科
云计算领域专业知识百科平台

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

在这里插入图片描述

目录

  • **一、跳板机的作用**
  • **二、搭建服务器跳板(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**
  • **七、总结**

在这里插入图片描述


一、跳板机的作用

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

  • 在这里插入图片描述

    二、搭建服务器跳板(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

    访问流程:

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

  • 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) 方案,包括:

  • 搭建 SSH 跳板机
  • 配置 SSH Key 免密登录
  • 使用 ProxyJump 访问目标服务器
  • 记录 SSH 登录日志
  • 限制访问权限,增强安全性
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » 搭建一个跳板服务器的全过程
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!