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

打印 上一主题 下一主题

主题 976|帖子 976|积分 2928



  


一、跳板机的作用


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


二、搭建服务器跳板(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 服务器已安装:
  1. sudo apt update && sudo apt install -y openssh-server
复制代码
检查 SSH 服务状态:
  1. sudo systemctl status ssh
复制代码
(2)创建跳板机用户

在跳板机上创建专用用户,并设置强暗码:
  1. sudo adduser jumpuser
  2. sudo passwd jumpuser
复制代码
限定 root 登录
编辑 /etc/ssh/sshd_config:
  1. PermitRootLogin no
  2. AllowUsers jumpuser
复制代码
然后重启 SSH 服务:
  1. sudo systemctl restart ssh
复制代码

3. 配置 SSH 免密登录

为便捷管理,我们利用 SSH Key 认证来镌汰暗码输入,并进步安全性。
(1)在客户端生成 SSH Key

客户端(User) 机器上,生成 SSH 密钥:
  1. ssh-keygen -t rsa -b 4096 -f ~/.ssh/jump_key
复制代码
然后,将公钥拷贝到跳板机:
  1. ssh-copy-id -i ~/.ssh/jump_key.pub jumpuser@192.168.1.100
复制代码
测试是否可以无暗码 SSH 登录:
  1. ssh -i ~/.ssh/jump_key jumpuser@192.168.1.100
复制代码
如果乐成,则表明 SSH Key 认证已精确配置。
(2)从跳板机毗连目标服务器

跳板机(Jump Server) 上,配置免密 SSH 登录 目标服务器(10.0.0.10)
  1. ssh-keygen -t rsa -b 4096 -f ~/.ssh/jump_key
  2. ssh-copy-id -i ~/.ssh/jump_key.pub user@10.0.0.10
复制代码
然后测试:
  1. ssh -i ~/.ssh/jump_key user@10.0.0.10
复制代码

4. 利用 SSH Proxy 作为跳板

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

客户端 上,利用 ProxyJump 直接毗连目标服务器:
  1. ssh -J jumpuser@192.168.1.100 user@10.0.0.10
复制代码
如果不支持 -J,可以利用 ProxyCommand:
  1. ssh -o ProxyCommand="ssh -W %h:%p jumpuser@192.168.1.100" user@10.0.0.10
复制代码
可以将其添加到 ~/.ssh/config 方便管理:
  1. Host target_server
  2.     HostName 10.0.0.10
  3.     User user
  4.     ProxyJump jumpuser@192.168.1.100
  5.     IdentityFile ~/.ssh/jump_key
复制代码
然后直接利用:
  1. ssh target_server
复制代码

5. 记载 SSH 登录日记

为了安全审计,我们记载全部效户的 SSH 访问日记。
(1)启用 SSH 登录日记

修改 /etc/rsyslog.conf,确保启用 authpriv 日记:
  1. authpriv.*    /var/log/secure
复制代码
然后重启 rsyslog:
  1. sudo systemctl restart rsyslog
复制代码
查看 SSH 登录日记:
  1. sudo tail -f /var/log/auth.log   # Ubuntu
  2. sudo tail -f /var/log/secure     # CentOS
复制代码
(2)记载用户下令

在 /etc/bash.bashrc 或 /etc/profile 中添加:
  1. export HISTFILE=/var/log/jumpserver_history.log
  2. export PROMPT_COMMAND='history -a'
复制代码
如许,全部 SSH 用户的下令都会记载到 /var/log/jumpserver_history.log。

6. 限定跳板机访问权限

为了增强安全性,我们可以限定跳板机的 SSH 访问举动。
(1)只允许指定用户利用跳板

编辑 /etc/ssh/sshd_config:
  1. AllowUsers jumpuser
复制代码
然后重启 SSH:
  1. sudo systemctl restart ssh
复制代码
(2)利用防火墙限定访问

限定 SSH 只能从特定 IP 登录:
  1. sudo ufw allow from 203.0.113.50 to any port 22
复制代码
如果利用 iptables:
  1. sudo iptables -A INPUT -p tcp --dport 22 -s 203.0.113.50 -j ACCEPT
  2. sudo iptables -A INPUT -p tcp --dport 22 -j DROP
复制代码
(3)启用 Fail2Ban 保护 SSH

  1. sudo apt install fail2ban
  2. sudo systemctl enable fail2ban
复制代码
编辑 /etc/fail2ban/jail.local:
  1. [sshd]
  2. enabled = true
  3. port = 22
  4. filter = sshd
  5. logpath = /var/log/auth.log
  6. bantime = 600
  7. findtime = 300
  8. maxretry = 5
复制代码
然后重启:
  1. sudo systemctl restart fail2ban
复制代码
查看封禁 IP:
  1. sudo fail2ban-client status sshd
复制代码

七、总结

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

  • 搭建 SSH 跳板机
  • 配置 SSH Key 免密登录
  • 利用 ProxyJump 访问目标服务器
  • 记载 SSH 登录日记
  • 限定访问权限,增强安全性

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表