jumpserver堡垒机 (资源)_jump server用户名和用户相同的一种协议只允许存在一个

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

命令行登录 Jumpserver 使用如下命令:

$ ssh -p 2222 用户名@Jumpserver IP地址
登录成功后界面如下:

创建资产
创建 Linux 资产

编辑资产树

节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。

创建管理用户

管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。

如果使用ssh私钥,需要先在资产上设置,这里举个例子供参考(本例登录资产使用root为例)

(1). 在资产上生成 root 账户的公钥和私钥

$ ssh-keygen -t rsa # 默认会输入公钥和私钥文件到 ~/.ssh 目录

(2). 将公钥输出到文件 authorized_keys 文件,并修改权限

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 400 ~/.ssh/authorized_keys

(3). 打开RSA验证相关设置

$ vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

(4). 重启 ssh 服务
$ service sshd restart

(5). 上传 ~/.ssh 目录下的 id_rsa 私钥到 jumpserver 的管理用户中
这样就可以使用 ssh私钥 进行管理服务器。

名称可以按资产树来命名。用户名root。密码和 SSH 私钥必填一个。

创建系统用户

系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web, sa, dba(ssh web@some-host), 而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host); 简单来说是 用户使用自己的用户名登录Jumpserver, Jumpserver使用系统用户登录资产。

系统用户的 Sudo 栏填写允许当前系统用户免sudo密码执行的程序路径,如默认的/sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不需要输入当前系统用户的密码,执行其他的命令任然需要密码,以此来达到权限控制的目的。

这里简单举几个例子

Sudo /bin/su # 当前系统用户可以免sudo密码执行sudo su命令(也就是可以直接切换到root,生产环境不建议这样操作)
Sudo /usr/bin/git,/usr/bin/php,/bin/cat,/bin/more,/bin/less,/usr/bin/head,/usr/bin/tail # 当前系统用户可以免sudo密码执行git php cat more less head tail

此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。

系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。

Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。

创建资产

点击页面左侧的“资产管理”菜单下的“资产列表”按钮,查看当前所有的资产列表。

点击页面左上角的“创建资产”按钮,进入资产创建页面,填写资产信息。

IP 地址和管理用户要确保正确,确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示,可不填,Jumpserver 连接资产使用的是 IP 信息。

资产创建信息填写好保存之后,可测试资产是否能正确连接:

如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。

网域列表

网域功能是为了解决部分环境无法直接连接而新增的功能,原理是通过网关服务器进行跳转登录。

点击页面左侧的“网域列表”按钮,查看所有网域列表。

点击页面左上角的“创建网域”按钮,进入网域创建页面,选择资产里用作网域的网关服务器。

点击网域的名称,进入网域详情列表。

点击页面的“网关”按钮,选择网关列表的“创建网关”按钮,进入网关创建页面,填写网关信息。

IP信息一般默认填写网域资产的IP即可(如用作网域的资产有多块网卡和IP地址,选能与jumpserer通信的任一IP即可),用户名与密码可以在资产上面创建亦可使用jumpserver的推送功能(需要手动输入密码),确认该用户拥有执行ssh命令的权限。

保存信息后点击测试连接,确定设置无误后到资产列表添加需要使用网关登录的资产即可。

3、创建 Windows 资产
创建 Windows 系统管理用户

同 Linux 系统的管理用户一样,名称可以按资产树来命名,用户名是管理员用户名,密码是管理员的密码。

创建 Windows 系统系统用户

目前 Windows 暂不支持自动推送,用户必须在系统中存在且有权限使用远程连接,请去掉自动生成密钥、自动推送勾选;请确认 windows 资产的 rdp 防火墙已经开放。

Windows 资产协议务必选择 rdp。

创建 Windows 资产

创建 Windows 资产,系统平台请选择正确的 Windows,端口号为3389,IP 和 管理用户请正确选择,确保管理用户能正确登录到指定的 IP 主机上。

四、资产节点管理
4.1 为资产树节点分配资产

在资产列表页面,选择要添加资产的节点,右键,选择添加资产到节点。

选择要被添加的资产,点击"确认"即可。

4.2 删除节点资产

选择要被删除的节点,选择"从节点删除",点击"提交"即可。

五、创建授权规则
节点,对应的是资产,代表该节点下的所有资产。

用户组,对应的是用户,代表该用户组下所有的用户。

系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。

节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该分别给 Linux 资产和 Windows 资产创建授权规则。

创建的授权规节点要与资产所在的节点一致。

六、用户使用资产
6.1 登录 Jumpserver

创建授权规则的时候,选择了用户组,所以这里需要登录所选用户组下面的用户才能看见相应的资产。

用户正确登录后的页面:

6.2 使用资产

6.2.1 连接资产

点击页面左边的 Web 终端:

打开资产所在的节点:

双击资产名字,就连上资产了:

如果显示连接超时,请检查为资产分配的系统用户用户名和密钥是否正确,是否正确选择 Windows 操作系统,协议 rdp,端口3389,是否正确选择 Linux 操作系统,协议 ssh,端口22,以及资产的防火墙策略是否正确配置等信息。

接下来,就可以对资产进行操作了。

6.2.2 断开资产

点击页面顶部的 Server 按钮会弹出选个选项,第一个断开所选的连接,第二个断开所有连接。

以上就是 Jumpserver 的简易入门了,

通过web端登录系统后界面如下:

Jumpserver拥有以下特点:

完全开源,GPL授权

Python编写,容易再次开发

实现了跳板机基本功能,认证、授权、审计

集成了Ansible,批量命令等

支持WebTerminal

Bootstrap编写,界面美观

自动收集硬件信息

录像回放

命令搜索

实时监控

批量上传下载

基于其特点,Jumpserver能够实现跳板机常见需求,如授权、用户管理、服务器基本信息记录等,同时又可批量执行脚本等功能;其中录像回放、命令搜索、实时监控等特点,又能帮助运维人员回溯操作历史,方便查找操作痕迹,便于管理其他人员对服务器的操作控制。

快速安装介绍
Jumpserver的源码在github上,所以其安装需要从github上直接下载源码,然后通过其源码中的自动安装脚本进行执行安装。

Github的路径https://github.com/jumpserver/jumpserver.git

安装建议使用 centos 6或7的 mini环境快速安装,安装过一些软件后,其中可能会安装一些不兼容的python库,如pycrypto, django, 会影响快速安装 。

23.6、Jumpserver安装(0.4.0)
• yum install -y docker //首先安装docker

• systemctl enable docker

• systemctl start docker //启动docker服务

• curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose //安装docker-compose

• chmod 755 /usr/local/bin/docker-compose

• cd /home/

• git clone https://github.com/jumpserver/jumpserver.git //下载jumpserver源码

• cd jumpserver/install/ #然后ls

• 配置docker加速器 http://ask.apelearn.com/question/15126

• 检查是否有监听8080端口的服务,如果有关闭

• screen//进入到一个虚拟终端

• docker-compose up //使用docker-compose安装jumpserver

实例:

命令:netstat -lntp 查看运行的服务。

如果有gitlab-runsvdir.service服务,就把他停掉。或者使用命令:gitlab-ctl stop。还有systemctl stop mongod。systemctl disable mongod。

关闭没有用的仓库,切换到/etc/yum.repos.d目录,把mongo.repo改为mongo.repo.1,mv zabiix.repo zabbix.repo.1,mv percona-release.repo percona-release.repo .1,

23.7、Jumpserver安装(0.3.2)
• 官方文档https://github.com/jumpserver/jumpserver/wiki/v0.3.2-%E5%9F%BA%E4%BA%8E-RedHat-%E7%9A%84%E7%B3%BB%E7%BB%9F

• yum install -y git

• cd /home //要到一个空间大的目录下面

注:不要安装在/root、/home 等目录下,以免权限问题

• git clone https://github.com/jumpserver/jumpserver.git

安装依赖环境及rpm

yum -y install epel-release

yum -y install python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

注:安装前最好关闭SELinux

关闭SELinux的方法:

修改/etc/selinux/config文件中的SELINUX=“” 为 disabled ,然后重启。如果不想重启系统,使用命令setenforce 0

• git checkout master

• cd jumpserver/install

• python install.py

• 若你的机器已经安装过mysql,可以先创建jumpserver库以及对应的用户名密码,若没有安装就让它自动安装即可

• 安装过程中还需要设置一下使用的第三方邮件,建议你去申请一个免费的163邮箱

我的163邮箱smtp.163.com aming_test@163.com 8lFjprwrfEv1c

实例:

切换目录cd jumpserver/install,运行pip freeze命令。

然后执行python install.py

23.8、Jumpserver使用
• 浏览器输入ip:8000 访问jumpserver

• 默认用户名是admin,密码是5Lov@wife

• 点击用户管理,选择用户,点击Administrator那一行右侧的更新,设置密码

• 创建用户组 运维

• 创建用户 aming

• 点击设置,默认管理用户,该用户为管理员用户,应该有sudo权限,需要在每一台客户机上创建该用户(用户名自定义,jump)

• 在一台linux机器上生成一个密钥对,用来作为该管理用户的密钥对

• 把私钥粘贴到默认密钥下面

• 在客户机上创建jump用户,并设置sudo权限,把刚刚生成的密钥对里面的公钥放到该客户机的jump用户家目录.ssh/authorized_keys文件里

• 资产管理,查看资产组,添加资产组(如,dev)

• 资产管理,查看资产,添加资产,填写各项信息

• 授权管理,系统用户,添加系统用户,该用户为我们登录所有客户机的用户

• 授权规则,添加规则,创建授权规则

23.9、Jumpserver里面的用户

• jumpserver用户用来登录jumpserver(web界面、ssh登录)

• 管理用户用来自动创建客户机上的系统用户、批量执行命令等操作

• 客户机上的系统用户,用来通过jumpserver去登录每一台客户机的用户

23.10、Jumpserver使用
• 普通用户的密码以及密钥下载地址、密钥密码都会通过邮件的方式发送给用户

• 浏览器登录普通用户,可以查看有权限的主机,也可以在web界面下登录主机、上传和下载文件

• xshell创建新的连接

• ip为jumpserver的ip,端口为22

• 用户名为普通用户名字(aming)

• 设置密钥认证

• 连接后,出现登录页面,数据p查看所有被授权主机

• 输入主机前面的数字可以登录到对应的主机下面

参考链接:https://www.jianshu.com/p/653c60987b0f

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

为普通用户名字(aming)

• 设置密钥认证

• 连接后,出现登录页面,数据p查看所有被授权主机

• 输入主机前面的数字可以登录到对应的主机下面

参考链接:https://www.jianshu.com/p/653c60987b0f

[外链图片转存中…(img-l82RvPuS-1715803728248)]
[外链图片转存中…(img-ATbj2vTG-1715803728249)]
[外链图片转存中…(img-UOAo38Qj-1715803728249)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java连接JumpServer并访问对应的服务器有多种方法,其中一种常用的方法是使用JSch库。 以下是一个简单的示例代码,演示如何使用JSch连接JumpServer并访问对应的服务器: ```java import com.jcraft.jsch.*; public class SSHConnection { public static void main(String[] args) { String jumpServerHostname = "jumpServerHostname"; String jumpServerUsername = "jumpServerUsername"; String jumpServerPassword = "jumpServerPassword"; String targetServerHostname = "targetServerHostname"; String targetServerUsername = "targetServerUsername"; String targetServerPassword = "targetServerPassword"; int jumpServerPort = 22; int targetServerPort = 22; try { JSch jsch = new JSch(); // connect to jump server Session jumpServerSession = jsch.getSession(jumpServerUsername, jumpServerHostname, jumpServerPort); jumpServerSession.setPassword(jumpServerPassword); jumpServerSession.setConfig("StrictHostKeyChecking", "no"); jumpServerSession.connect(); System.out.println("Connected to jump server."); // create ssh tunnel to target server via jump server int assignedPort = jumpServerSession.setPortForwardingL(0, targetServerHostname, targetServerPort); System.out.println("SSH tunnel established to target server."); // connect to target server via ssh tunnel Session targetServerSession = jsch.getSession(targetServerUsername, "localhost", assignedPort); targetServerSession.setPassword(targetServerPassword); targetServerSession.setConfig("StrictHostKeyChecking", "no"); targetServerSession.connect(); System.out.println("Connected to target server."); // execute command on target server Channel channel = targetServerSession.openChannel("exec"); ((ChannelExec) channel).setCommand("tail -f /var/log/syslog"); channel.setInputStream(null); ((ChannelExec) channel).setErrStream(System.err); InputStream in = channel.getInputStream(); channel.connect(); byte[] tmp = new byte[1024]; while (true) { while (in.available() > 0) { int i = in.read(tmp, 0, 1024); if (i < 0) break; System.out.print(new String(tmp, 0, i)); } if (channel.isClosed()) { System.out.println("Exit status: " + channel.getExitStatus()); break; } Thread.sleep(1000); } channel.disconnect(); targetServerSession.disconnect(); jumpServerSession.disconnect(); } catch (Exception e) { System.err.println(e.getMessage()); } } } ``` 这个示例代码中,假设JumpServer的主名是jumpServerHostname,用户名jumpServerUsername,密码是jumpServerPassword,目标服务器的主名是targetServerHostname,用户名是targetServerUsername,密码是targetServerPassword。这个代码通过SSH隧道连接到JumpServer,然后通过JumpServer连接到目标服务器,并在目标服务器上执行“tail -f /var/log/syslog”命令来查看系统日志。 你需要将这个示例代码中的主名、用户名、密码和端口号替换为你自己的值,以便连接到你想要的JumpServer和目标服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值