jumpserver堡垒机 (资源)

23.5 jumpserver介绍

• 官网www.jumpserver.orgphp

• 跳板机概述:
跳板机就是一台服务器,开发戒运维人员在维护过程当中首先要统一登陆到这台服务器,而后再登陆到目标
设备迚行维护和操做;html

• 堡垒机概述:
堡垒机,即在一个特定的网络环境下,为了保障网络和数据丌受来自外部和内部用户的入侵和破坏,而运
用各类技术手段实时收集和监控网络环境中每个组成部分的系统状态、安全事件、网络活劢,以便集中
报警、及时处理及审计定责。
总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能。前端

• Jumpserver是一款使用Python, Django开发的开源跳板机系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent, 助力互联网企业高效 用户、资产、权限、审计 管理。node

• Jumpserver 后端主要技术是LDAP,配置了LDAP 集中认证服务器, 全部服务器的认证都是由ldap完成的。其作法是:每一个用户一个密码,把密码加密放到了数据库中,当用户输入IP 从跳板机登录服务器的时候,跳板机系统取出密码,并解密,经过pexpect 模块将密码发送过去,来完成登陆。python

架构图以下
mysql

组件架构图

组件说明

Jumpserver

现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。linux

Githubandroid

Coco

实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。git

Githubgithub

Luna

如今是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,再也不负责后台渲染html等。

Github

Guacamole

Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并无修改其代码而是添加了额外的插件,支持 Jumpserver 调用。

Jumpserver-Python-SDK

Jumpserver API Python SDK,Coco 目前使用该 SDK 与 Jumpserver API 交互。

• 因为其拥有时尚的外观和直观的功能以及简单地安装配置等特点,是步入自动化运维的不二选择;其后端数据存储使用的是MySQL数据库,所以建议使用前先行配置及部署好MySQL数据库。

系统设置

_images/basic_setting.jpg

配置邮件发送服务器

点击页面上边的"邮件设置" TAB ,进入邮件设置页面:

_images/smtp_setting.jpg

配置 QQ 邮箱的 SMTP 服务可参考(http://blog.csdn.net/Aaron133/article/details/78363844),仅使用只须要看完第二部分便可。

配置邮件服务后,点击页面的"测试链接"按钮,若是配置正确,Jumpserver 会发送一条测试邮件到您的 SMTP 帐号邮箱里面:

_images/smtp_test.jpg

建立 Jumpserver 用户

点击页面左侧“用户列表”菜单下的“用户列表“,进入用户列表页面。

点击页面左上角“建立用户”按钮,进入建立用户页面,填写帐户,角色安全,我的等信息。

其中,用户名即 Jumpserver 登陆帐号。用户组是用于资产受权,当某个资产对一个用户组受权后,这个用户组下面的全部用户就均可以使用这个资产了。角色用于区分一个用户是管理员仍是普通用户。

_images/create_jumpserver_user.jpg

成功提交用户信息后,Jumpserver 会发送一条设置"用户密码"的邮件到您填写的用户邮箱。

_images/create_user_success.jpg

点击邮件中的设置密码连接,设置好密码后,您就能够用户名和密码登陆 Jumpserver 了。

用户首次登陆 Jumpserver,会被要求完善用户信息。

Linux/Unix 生成 SSH 密钥能够参考(http://www.javashuo.com/article/p-xdjfnsjx-dd.html)

Windows 生成 SSH 密钥能够参考(http://www.javashuo.com/article/p-xdjfnsjx-dd.html)

查看公钥信息

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDadDXxxx......

复制 SSH 公钥,添加到 Jumpserver 中。

_images/set_ssh_key.jpg

除了使用浏览器登陆 Jumpserver 外,还可以使用命令行登陆:

确保 Coco 服务正常

_images/coco_check.jpg

鉴于心态检测存在延迟,您也能够直接在 Jumpserver 主机上执行以下命令检测 Coco 是否存活,Coco 服务默认使用 2222 端口:

$ netstat -ntpl

效果以下:

_images/coco_check_terminal.jpg

如 coco 不在线或者服务不正常,能够尝试重启 coco

$ cd /opt/coco
$ ./cocod restart  # 请确保 jumpserver 已经正常运行。

如 guacamole 不在线或者服务不正常,能够尝试重启容器

$ docker ps  # 查询正在运行的容器,记录下容器的 <CONTAINER ID> ,能够附加 -a 参数查询全部容器
CONTAINER ID        IMAGE                                             COMMAND             CREATED             STATUS                   PORTS               NAMES
6b15fcf0e5f3        registry.jumpserver.org/public/guacamole:latest   "/init"             2 weeks ago         Exited (0) 10 days ago                       gracious_hugle

$ docker restart 6b15fcf0e5f3  # 6b15fcf0e5f3 是经过docker ps查询到的,请不要直接复制。

# docker 用法: docker start|stop|restart|rm|rmi <CONTAINER ID>

命令行登陆 Jumpserver 使用以下命令:

$ ssh -p 2222 用户名@Jumpserver IP地址

登陆成功后界面以下:

_images/coco_success.jpg

建立资产

 建立 Linux 资产

编辑资产树

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

_images/asset_tree.jpg

建立管理用户

管理用户是服务器的 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 私钥必填一个。

_images/create_asset_admin_user.jpg

建立系统用户

系统用户是 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 。若是用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。

_images/create_asset_system_user.jpg

建立资产

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

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

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

_images/create_asset.jpg

资产建立信息填写好保存以后,可测试资产是否能正确链接:

_images/check_asset_connect.jpg

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

 网域列表

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

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

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

_images/create_domain.jpg

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

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

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

_images/create_geteway.jpg

保存信息后点击测试链接,肯定设置无误后到资产列表添加须要使用网关登陆的资产便可。

_images/create_asset02.jpg

三、建立 Windows 资产

建立 Windows 系统管理用户

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

_images/create_windows_admin.jpg

建立 Windows 系统系统用户

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

Windows 资产协议务必选择 rdp。

_images/create_windows_user.jpg

建立 Windows 资产

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

_images/create_windows_asset.jpg

4、资产节点管理

4.1 为资产树节点分配资产

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

_images/add_asset_to_node.jpg

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

_images/select_asset_to_node.jpg

4.2 删除节点资产

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

_images/delete_asset_from_node.jpg

5、建立受权规则

节点,对应的是资产,表明该节点下的全部资产。

用户组,对应的是用户,表明该用户组下全部的用户。

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

节点,用户组,系统用户是一对一的关系,因此当拥有 Linux、Windows 不一样类型资产时,应该分别给 Linux 资产和 Windows 资产建立受权规则。

_images/create_auth_rules.jpg

建立的受权规节点要与资产所在的节点一致。

_images/auth_rule_list.jpg

6、用户使用资产

6.1 登陆 Jumpserver

建立受权规则的时候,选择了用户组,因此这里须要登陆所选用户组下面的用户才能看见相应的资产。

_images/jumpserver_user_list.jpg

用户正确登陆后的页面:

_images/user_login_success.jpg

6.2 使用资产

6.2.1 链接资产

点击页面左边的 Web 终端:

_images/link_web_terminal.jpg

打开资产所在的节点:

_images/luna_index.jpg

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

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

_images/windows_assert.jpg

接下来,就能够对资产进行操做了。

6.2.2 断开资产

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

_images/disconnect_assert.jpg

以上就是 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.六、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.七、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.八、Jumpserver使用

• 浏览器输入ip:8000 访问jumpserver

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

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

• 建立用户组 运维

• 建立用户 aming

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

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

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

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

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

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

• 受权管理,系统用户,添加系统用户,该用户为咱们登陆全部客户机的用户

• 受权规则,添加规则,建立受权规则

23.九、Jumpserver里面的用户

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

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

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

 

23.十、Jumpserver使用

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

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

• xshell建立新的链接

• ip为jumpserver的ip,端口为22

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

• 设置密钥认证

• 链接后,出现登陆页面,数据p查看全部被受权主机

• 输入主机前面的数字能够登陆到对应的主机下面

 

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

http://jumpserver.readthedocs.io/zh/docs/setup_by_centos7.html?highlight=log

 

资料连接 :

 

 

 

jenkins   官网安装文档:  http://docs.jumpserver.org/zh/latest/quickstart.html

jenkins pipeline 文章合集 :https://blog.csdn.net/sinat_34524528/article/details/81557007

Jenkins2 入门到精通 : https://blog.csdn.net/lb245557472/article/details/77376908

jenkins+gitlab + 蒲公英实现 android 应用自动化打包分发 : https://juejin.im/post/584e49448e450a006acabc57

手把手从0开始教你搭建Jumpserver      : https://mp.weixin.qq.com/s/Pz3JlJq75oagAghgVxbhMg

手把手从0开始教你搭建Jumpserver,为服务器安全保驾护航!              :     https://mp.weixin.qq.com/s/Pz3JlJq75oagAghgVxbhMg

 

审计系统---堡垒机项目之用户交互+session日志写入数据库[完整版]         :  https://www.cnblogs.com/ftl1012/p/9459906.html

审计系统---堡垒机项目之监测进程脚本        :    https://www.cnblogs.com/ftl1012/p/9459826.html

审计系统---堡垒机项目之strace追踪ssh         :   https://www.cnblogs.com/ftl1012/p/9459819.html

审计系统---堡垒机项目之用户交互程序开发           :   https://www.cnblogs.com/ftl1012/p/9459306.html

审计系统---堡垒机项目之环境准备       :  https://www.cnblogs.com/ftl1012/p/9459085.html

审计系统---堡垒机项目之表结构设计         :       https://www.cnblogs.com/ftl1012/p/9458964.html

审计系统---堡垒机python下ssh的使用                 :       https://www.cnblogs.com/ftl1012/p/9458889.html

审计系统---paramiko模块学习           :    https://www.cnblogs.com/ftl1012/p/paramiko.html

审计系统---初识堡垒机180501【all】           :       https://www.cnblogs.com/ftl1012/p/9458595.html

https://www.cnblogs.com/bigdevilking/p/9427941.html

Jumpserver(跳板机、堡垒机)启动jms Django链接mysql数据库报错(466) : :https://www.cnblogs.com/bigdevilking/p/9434482.html

相关文章
相关标签/搜索