火影 发表于 2025-3-8 14:53:49

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

https://i-blog.csdnimg.cn/direct/506b7d7fb9544bb48c4ad25a6bc3a4e1.png


https://i-blog.csdnimg.cn/direct/af32ca35151f48f5baf6cf7c3dde4170.png
一、跳板机的作用


[*]安全访问:外部用户不能直接访问内部服务器,必须通过跳板机进行毗连。
[*]权限控制:限定谁可以访问哪些服务器,并进行日记审计。
[*]防止直接袒露:核心服务器不会直接袒露在公网,降低攻击面。
https://i-blog.csdnimg.cn/direct/048d1114e4f246f591e0a54970348c23.png
二、搭建服务器跳板(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:

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 登录日记
[*]限定访问权限,增强安全性

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 搭建一个跳板服务器的全过程