Unverified Commit 0dba82c0 authored by wojiushixiaobai's avatar wojiushixiaobai Committed by GitHub

Merge pull request #2586 from wojiushixiaobai/docs

[Update]更新文档
parents 5fec1d97 2449ad2b
This source diff could not be displayed because it is too large. You can view the blob instead.
File mode changed from 100755 to 100644
资产管理 资产管理
============= =============
一、资产 一、资产列表
````````````````` `````````````````
1.1 管理资产树 1.1 管理资产树
资产树节点不能重名, 右击节点可以添加、删除和重命名节点, 以及进行资产相关的操作 资产树节点不能重名, 右击节点可以添加、删除和重命名节点, 以及进行资产相关的操作
.. image:: _static/img/asset_tree.jpg .. image:: _static/img/admin_assets_asset_list.jpg
1.2 为资产树节点分配资产 1.2 为资产树节点创建资产
在资产列表页面, 选择要添加资产的节点, 右键, 选择添加资产到节点。 在资产列表页面, 先在左侧选择资产要加入的节点, 然后在右侧选择创建资产
.. image:: _static/img/add_asset_to_node.jpg .. image:: _static/img/admin_assets_asset_create.jpg
选择要被添加的资产, 点击"确认"即可。 二、网域列表
`````````````````
.. image:: _static/img/select_asset_to_node.jpg 网域功能是为了解决部分环境(如:混合云)无法直接连接而新增的功能,原理是通过网关服务器进行跳转登录
1.3 删除节点资产 2.1 网域列表
选择要被删除的节点, 选择"从节点删除", 点击"提交"即可。 .. image:: _static/img/admin_assets_domain_list.jpg
.. image:: _static/img/delete_asset_from_node.jpg 2.2 创建网域
二、标签 在网域列表页面, 在右侧选择创建网域
````````````````
2.1 创建标签 .. image:: _static/img/admin_assets_domain_create.jpg
点击页面左上角"创建标签"按钮, 进入创建标签页面: 2.3 网关列表
给资产打上标签便于查询和管理。标签信息有名称和值:名称可以是描述功能信息, 例如:用途, 值则可以是具体信息, 例如:组织1-部门1-研发。标签创建的时候可以选择为已存在的资产打上该标签。 .. image:: _static/img/admin_assets_domain_gateway_list.jpg
.. image:: _static/img/admin_label_create.jpg 2.4 创建网关
标签名称可以重名, 一个资产可以有多个标签产。标签删除, 资产上的标签信息会自动消失: 在网域列表页面, 点击网关下面的数字进入网关列表, 点击创建网关, 网关可以是一台任意装有 ssh 服务的资产
.. image:: _static/img/admin_label_delete.jpg .. image:: _static/img/admin_assets_domain_gateway_create.jpg
三、管理用户 三、管理用户
````````````````````` `````````````````````
3.1 创建管理用户 管理用户是资产(被控服务器)上的roo,或拥有 NOPASSWD: ALL sudo权限的用户, Jumpserver使用该用户来 推送系统用户、获取资产硬件信息 等。暂不支持 Windows或其它硬件, 可以随意设置一个
管理用户是服务器的 root, 或拥有 NOPASSWD: ALL sudo 权限的用户, Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。 3.1 管理用户列表
名称可以按资产树来命名。用户名 root。密码和 SSH 私钥必填一个。 .. image:: _static/img/admin_assets_admin-user_list.jpg
.. image:: _static/img/create_asset_admin_user.jpg 3.2 创建管理用户
3.2 创建 Windows 管理用户 .. image:: _static/img/admin_assets_admin-user_create.jpg
同 Linux 系统的管理用户一样, 名称可以按资产树来命名, 用户名是管理员用户名, 密码是管理员的密码。
.. image:: _static/img/create_windows_admin.jpg
四、系统用户 四、系统用户
````````````````````` `````````````````````
4.1 创建系统用户 系统用户是 Jumpserver跳转登录资产时使用的用户,可以理解为登录资产用户,如 web, sa, dba(`ssh web@some-host`), 而不是使用某个用户的用户名跳转登录服务器(`ssh xiaoming@some-host`); 简单来说是 用户使用自己的用户名登录Jumpserver, Jumpserver使用系统用户登录资产。 系统用户创建时,如果选择了自动推送 Jumpserver会使用ansible自动推送系统用户到资产中,如果资产(交换机、windows)不支持ansible, 请手动填写账号密码。目前还不支持Windows的自动推送
4.1 系统用户列表
系统用户是 Jumpserver 跳转登录资产时使用的用户, 可以理解为登录资产用户, 如 web, sa, dba('ssh web@some-host'), 而不是使用某个用户的用户名跳转登录服务器('ssh xiaoming@some-host'); 简单来说是 用户使用自己的用户名登录 Jumpserver, Jumpserver 使用系统用户登录资产。 .. image:: _static/img/admin_assets_system-user_list.jpg
系统用户创建时, 如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中, 如果资产(交换机、Windows)不支持 Ansible, 请手动填写账号密码。 4.2 创建系统用户
Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在, 请去掉自动生成密钥、自动推送勾选。 .. image:: _static/img/admin_assets_system-user_create_01.jpg
.. image:: _static/img/admin_assets_system-user_create_02.jpg
.. image:: _static/img/create_asset_system_user.jpg 五、标签管理
````````````````
给资产打上标签便于查询和管理。标签信息有名称和值:名称可以是描述功能信息, 例如:用途, 值则可以是具体信息, 例如:组织1-部门1-研发。标签创建的时候可以选择为已存在的资产打上该标签。
.. _update_admin_system_user: 5.1 标签列表
4.2 创建 Windows 系统系统用户 .. image:: _static/img/admin_assets_label_list.jpg
由于目前 Windows 不支持自动推送, 所以 Windows 的系统用户设置成与管理用户同一个用户。 5.2 创建标签
Windows 资产协议务必选择 rdp。 点击页面左上角"创建标签"按钮, 进入创建标签页面:
.. image:: _static/img/create_windows_user.jpg .. image:: _static/img/admin_assets_label_create.jpg
标签名称可以重名, 一个资产可以有多个标签产。标签删除, 资产上的标签信息会自动消失
六、命令过滤
````````````````
五、资产 系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是 允许, 这个命令会被放行, 如果规则的动作是 禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
````````````
5.1 创建资产
点击页面左侧的"资产管理"菜单下的"资产列表"按钮, 查看当前所有的资产列表。 6.1 命令过滤器列表
点击页面左上角的"创建资产"按钮, 进入资产创建页面, 填写资产信息。 .. image:: _static/img/admin_assets_cmd-filter_list.jpg
IP 地址和管理用户要确保正确, 确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示, 可不填, Jumpserver 连接资产主机使用的是 IP 信息。 6.2 创建命令过滤器
.. image:: _static/img/create_asset.jpg 在命令过滤器列表页面点击创建命令过滤器
资产创建信息填写好保存之后, 可测试资产是否能正确连接: .. image:: _static/img/admin_assets_cmd-filter_create.jpg
.. image:: _static/img/check_asset_connect.jpg 6.3 命令过滤器规则列表
如果资产不能正常连接, 请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。 在命令过滤器列表页面点击规则下面的数字进入规则页面
5.2 创建 Windows 资产 .. image:: _static/img/admin_assets_cmd-filter_rule_list.jpg
同创建 Linux 资产一样。 6.4 创建规则
创建 Windows 资产, 系统平台请选择正确的 Windows, 端口号为3389, IP 和 管理用户请正确选择, 确保管理用户能正确登录到指定的 IP 主机上。 在命令过滤器列表页面点击规则下面的数字进入规则页面, 点击创建规则
.. image:: _static/img/create_windows_asset.jpg .. image:: _static/img/admin_assets_cmd-filter_rule_create.jpg
日志审计
=========
一、登陆日志
.. image:: _static/img/admin_audits_login-log_list.jpg
二、FTP日志
.. image:: _static/img/admin_audits_ftp-log_list.jpg
三、操作日志
.. image:: _static/img/admin_audits_operate-log_list.jpg
四、改密日志
.. image:: _static/img/admin_audits_password-change-log_list.jpg
五、批量命令
.. image:: _static/img/admin_audits_command-execution-log_list.jpg
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
admin_instruction quick_start
admin_create_asset
admin_user admin_user
admin_asset admin_asset
admin_permission admin_perms
admin_session admin_terminal
admin_work_center admin_ops
admin_system_settings admin_audits
admin_settings
架构说明
=================
.. image:: _static/img/structure.png
:alt: 组件架构图
组件说明
=================
Jumpserver
`````````````
现指 Jumpserver 管理后台, 是核心组件(Core), 使用 Django Class Based View 风格开发, 支持 Restful API。
`Github <https://github.com/jumpserver/jumpserver.git>`_
Coco
````````
实现了 SSH Server 和 Web Terminal Server 的组件, 提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
`Github <https://github.com/jumpserver/coco.git>`__
Luna
````````
现在是 Web Terminal 前端, 计划前端页面都由该项目提供, Jumpserver 只提供 API, 不再负责后台渲染html等。
`Github <https://github.com/jumpserver/luna.git>`__
Guacamole
```````````
Apache 跳板机项目, Jumpserver 使用其组件实现 RDP 功能, Jumpserver 并没有修改其代码而是添加了额外的插件, 支持 Jumpserver 调用。
Jumpserver-Python-SDK
```````````````````````
Jumpserver API Python SDK, Coco 目前使用该 SDK 与 Jumpserver API 交互。
`Github <https://github.com/jumpserver/jumpserver-python-sdk.git>`__
作业中心 作业中心
============== ==============
一、任务列表
`````````````````````
作业是 Jumpserver 向其所管理下的资产发送的指令, 例如, 测试资产可连接性、获取资产硬件信息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近7天的作业记录。 作业是 Jumpserver 向其所管理下的资产发送的指令, 例如, 测试资产可连接性、获取资产硬件信息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近7天的作业记录。
.. image:: _static/img/admin_work_center.jpg .. image:: _static/img/admin_ops_task_list.jpg
点击作业名称可以查看作业的具体详情、作业的历史版本以及作业执行的历史记录
二、批量命令
`````````````````````
点击作业名称可以查看作业的具体详情、作业的历史版本以及作业执行的历史记录: 可以通过该功能快速下发命令到资产, 目前仅支持能被 ansible 管理的资产, 要求 系统用户 登陆方式为 自动登陆
.. image:: _static/img/admin_work_detail.jpg .. image:: _static/img/admin_ops_command-execution_start.jpg
...@@ -4,7 +4,13 @@ ...@@ -4,7 +4,13 @@
一、资产授权 一、资产授权
````````````````````` `````````````````````
1.1 创建授权规则 把资产授权给用户后, 用户才能在 "我的资产" 里面看到资产, 配置正确后用户才能正常连接资产
1.1 查看授权列表
.. image:: _static/img/admin_perms_asset-permission_list.jpg
1.2 创建授权规则
节点, 对应的是资产, 代表该节点下的所有资产。 节点, 对应的是资产, 代表该节点下的所有资产。
...@@ -14,7 +20,6 @@ ...@@ -14,7 +20,6 @@
节点, 用户组, 系统用户是一对一的关系, 所以当拥有 Linux、Windows 不同类型资产时, 应该分别给 Linux 资产和 Windows 资产创建授权规则。 节点, 用户组, 系统用户是一对一的关系, 所以当拥有 Linux、Windows 不同类型资产时, 应该分别给 Linux 资产和 Windows 资产创建授权规则。
资产授权与节点授权的区别请参考下面示例, 一般情况下, 资产授权给个人, 节点授权给用户组, 一个授权只能选择一个系统用户 资产或节点可以授权给个人或用户组, 一个授权建议只指定一个系统用户 (多系统用户会按照优先级进行排序, 高优先自动登陆, 同时存在多个并级系统用户时,用户需要自己选择系统用户)
.. image:: _static/img/create_auth_rules01.jpg .. image:: _static/img/admin_perms_asset-permission_create.jpg
.. image:: _static/img/create_auth_rules02.jpg
系统设置 系统设置
============= =============
点击页面左侧"系统设置"按钮, 进入系统设置页面, 查看基本设置、邮件设置、LDAP 设置和终端设置等内容。 点击页面左侧 "系统设置" 按钮, 进入系统设置页面, 查看基本设置、邮件设置、LDAP 设置和终端设置等内容。
.. _basic_settings:
一、基本设置 一、基本设置
````````````````````` `````````````````````
点击页面上边的"基本设置" TAB, 进入基本设置页面, 编辑当前站点 URL、用户想到 URL、Email 主题前缀等信息, 点击"提交"按钮, 基本设置完成。 点击页面上边的 "基本设置" 按钮, 进入基本设置页面, 编辑当前站点 URL、用户想到 URL、Email 主题前缀等信息, 点击"提交"按钮, 基本设置完成。
.. image:: _static/img/basic_setting.jpg .. image:: _static/img/admin_settings_list.jpg
二、邮件设置 二、邮件设置
```````````````````` ````````````````````
点击页面上边的"邮件设置" TAB, 进入邮件设置页面: 点击页面上边的 "邮件设置" 按钮, 进入邮件设置页面:
.. image:: _static/img/smtp_setting.jpg
配置 QQ 邮箱的 SMTP 服务可参考(http://blog.csdn.net/Aaron133/article/details/78363844)
配置邮件服务后, 点击页面的"测试连接"按钮, 如果配置正确, Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面: .. image:: _static/img/admin_settings_email_list.jpg
.. image:: _static/img/smtp_test.jpg
三、LDAP 设置 三、LDAP 设置
```````````````````````` ````````````````````````
点击页面上边的" LDAP 设置" TAB, 进入 LDAP 设置页面, 编辑 LDAP 地址、DN、用户 OU、用户过滤器、LDAP 属性映射和是否使用 SSL、是否启用 LDAP 认证等信息, 点击"测试连接"按钮, 测试是否正确设置, 点击"提交"按钮, 完成 LDAP 设置。 点击页面上边的" LDAP 设置" 按钮, 进入 LDAP 设置页面, 编辑 LDAP 地址、DN、用户 OU、用户过滤器、LDAP 属性映射和是否使用 SSL、是否启用 LDAP 认证等信息, 点击"测试连接"按钮, 测试是否正确设置, 点击"提交"按钮, 完成 LDAP 设置。
如果这里有问题请手动用 ldapsearch命令测试一下, 如果能唯一搜索出这个用户代表你的设置是对的, 然后根据用户的属性填写映射关系 .. image:: _static/img/admin_settings_ldap_list.jpg
.. image:: _static/img/ldapsearch.png 如果这里有问题请手动用 ldapsearch命令测试一下, 如果能唯一搜索出这个用户代表你的设置是对的, 然后根据用户的属性填写映射关系
:alt: LDAP搜索实例
:: ::
...@@ -60,11 +51,21 @@ ...@@ -60,11 +51,21 @@
objectClass: shadowAccount objectClass: shadowAccount
... ...
参考 "FAQ文档" 的 `LDAP 使用说明 <faq_ldap.html>`
四、终端设置 四、终端设置
```````````````````` ````````````````````
点击页面上边的"终端设置" TAB, 进入终端设置页面, 编辑终端信息, 点击"提交"按钮, 终端设置完成。 点击页面上边的 "终端设置" 按钮, 进入终端设置页面, 编辑终端信息, 点击"提交"按钮, 终端设置完成。
资产列表排序项, 可以选择按主机名或者 IP 来排序, 默认是按主机名排序。心跳间隔指的是 Coco 和 Gua 等终端向 Jumpserver 发送心跳信息的频率, 如果 Jumpserver 长时间(1个小时)未收到 Coco 和 Gua 发送的心跳数据, Jumpserver 则认为该终端也"死掉", 在"会话管理"下的"终端管理"页面会显示该终端已掉线。 资产列表排序项, 可以选择按主机名或者 IP 来排序, 默认是按主机名排序。心跳间隔指的是 Coco 和 Gua 等终端向 Jumpserver 发送心跳信息的频率, 如果 Jumpserver 长时间(1个小时)未收到 Coco 和 Gua 发送的心跳数据, Jumpserver 则认为该终端也"死掉", 在"会话管理"下的"终端管理"页面会显示该终端已掉线。
.. image:: _static/img/admin_terminal_settings.jpg .. image:: _static/img/admin_settings_terminal_list_01.jpg
.. image:: _static/img/admin_settings_terminal_list_02.jpg
五、安全设置
点击页面上边的 "安全设置" 按钮, 进入安全设置页面
.. image:: _static/img/admin_settings_security_list_01.jpg
.. image:: _static/img/admin_settings_security_list_02.jpg
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
时长:在线时长。 时长:在线时长。
.. image:: _static/img/admin_session_online.jpg .. image:: _static/img/admin_terminal_session-online_list.jpg
可以查看指定的在线记录, 比如, 指定用户、资产或系统用户。 可以查看指定的在线记录, 比如, 指定用户、资产或系统用户。
...@@ -36,8 +36,6 @@ ...@@ -36,8 +36,6 @@
管理员可以手动中断当前在线的会话。 管理员可以手动中断当前在线的会话。
.. image:: _static/img/admin_session_disconnect.jpg
已中断的会话会记录到"历史会话"里面。 已中断的会话会记录到"历史会话"里面。
...@@ -48,40 +46,38 @@ ...@@ -48,40 +46,38 @@
历史会话同在线会话包含的信息一样, 都有用户、资产和 IP 地址等信息。 历史会话同在线会话包含的信息一样, 都有用户、资产和 IP 地址等信息。
.. image:: _static/img/admin_session_history.jpg .. image:: _static/img/admin_terminal_session-offline_list.jpg
2.2 查看历史话录像 2.2 查看历史话录像
Jumpserver 提供历史会话的录像观看。点击左侧的"回放"按钮, 即可观看录像。 Jumpserver 提供历史会话的录像观看。点击左侧的"回放"按钮, 即可观看录像。
.. image:: _static/img/admin_session_history_video.jpg
三、命令记录 三、命令记录
``````````````````````` ```````````````````````
命令记录里面存放的是用户在资产上执行过哪些命令, 单击一行记录, 会展示命令执行的结果: 命令记录里面存放的是用户在资产上执行过哪些命令, 单击一行记录, 会展示命令执行的结果:
.. image:: _static/img/admin_session_command.jpg .. image:: _static/img/admin_terminal_command_list.jpg
点击"转到"连接, 会跳转到详细的会话页面, 如果会话已结束可以查看会话录像, 如果会话正在线可中断会话: 点击"转到"连接, 会跳转到详细的会话页面, 如果会话已结束可以查看会话录像, 如果会话正在线可中断会话:
.. image:: _static/img/admin_session_command_detail.jpg
四、Web 终端 四、Web 终端
`````````````````````````` ``````````````````````````
Web 终端是资产使用界面, 管理员和用户都是从这里登录到资产上, 执行操作。点击资产名字连接资产, 点击"Server"下的"Disconnect"断开资产连接。 Web 终端是资产使用界面, 管理员和用户都是从这里登录到资产上, 执行操作。点击资产名字连接资产, 点击"Server"下的"Disconnect"断开资产连接。
.. image:: _static/img/admin_web_terminal.jpg .. image:: _static/img/admin_terminal_web-terminal_list.jpg
五、文件管理 五、文件管理
``````````````````````` ```````````````````````
文件管理允许对 SSH 协议资产进行文件上传下载创建删除操作(不支持上传文件夹), 目前也不支持系统用户是手动登录的资产 文件管理允许对 SSH 协议资产进行文件上传下载创建删除操作(不支持上传文件夹), 目前也不支持系统用户是手动登录的资产
.. image:: _static/img/admin_terminal_web-sftp_list.jpg
六、终端管理 六、终端管理
``````````````````````` ```````````````````````
终端列表页面列出了 Jumpserver 正在使用的终端有哪些, 例如:Coco、Gua 等。终端第一次使用, 会首先向 Jumpserver 发送请求注册, 在 Jumpserver 中接受注册后就可以正常使用该终端了。 终端列表页面列出了 Jumpserver 正在使用的终端有哪些, 例如:Coco、Gua 等。终端第一次使用, 会首先向 Jumpserver 发送请求注册, 在 Jumpserver 中接受注册后就可以正常使用该终端了。
.. image:: _static/img/admin_terminal_list.jpg .. image:: _static/img/admin_terminal_terminal_terminal_list.jpg
用户管理 用户管理
============= =============
一、用户组 一、用户列表
````````````````
1.1 创建用户组
用户组, 顾名思义, 给用户分组。用户组信息很有用, 在分配资产权限的时候, 针对的某个用户组下的所有用户, 可以为一个用户分配多个用户组。
点击页面左侧"用户管理"菜单下的"用户组", 进入用户组列表页面。
.. image:: _static/img/admin_user_group_list.jpg
点击页面左上角"创建用户组"按钮, 进入创建用户组页面:
名称即用户组名称, 建议填写简单明了有用的信息。创建用户组的时候可以把已存在的用户加入到该分组中, 一个用户可以存在多个分组中。
.. image:: _static/img/admin_create_user_group.jpg
二、用户
``````````````````` ```````````````````
2.1 创建用户
1.1 创建用户
点击页面左侧"用户列表"菜单下的"用户列表", 进入用户列表页面。 点击页面左侧"用户列表"菜单下的"用户列表", 进入用户列表页面。
.. image:: _static/img/admin_users_user_list.jpg
点击页面左上角"创建用户"按钮, 进入创建用户页面, 填写账户, 角色安全, 个人等信息。 点击页面左上角"创建用户"按钮, 进入创建用户页面, 填写账户, 角色安全, 个人等信息。
其中, 用户名即 Jumpserver 登录账号。用户组是用于资产授权, 当某个资产对一个用户组授权后, 这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。 其中, 用户名即 Jumpserver 登录账号。用户是用于资产授权, 当某个资产对一个用户授权后, 这个用户就使用这个资产了。角色用于区分一个用户是管理员还是普通用户。
.. image:: _static/img/create_jumpserver_user.jpg .. image:: _static/img/admin_users_user_create.jpg
成功提交用户信息后, Jumpserver 会发送一条设置"用户密码"的邮件到您填写的用户邮箱。 成功提交用户信息后, Jumpserver 会发送一条设置"用户密码"的邮件到您填写的用户邮箱。
.. image:: _static/img/create_user_success.jpg
点击邮件中的设置密码链接, 设置好密码后, 您就可以用户名和密码登录 Jumpserver 了。 点击邮件中的设置密码链接, 设置好密码后, 您就可以用户名和密码登录 Jumpserver 了。
用户首次登录 Jumpserver, 会被要求完善用户信息。 二、用户组
````````````````
Linux/Unix 生成 SSH 密钥可以参考(https://www.cnblogs.com/horanly/p/6604104.html)
Windows 生成 SSH 密钥可以参考(https://www.cnblogs.com/horanly/p/6604104.html)
查看公钥信息:
::
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDadDXxxx......
复制 SSH 公钥, 添加到 Jumpserver 中。
.. image:: _static/img/set_ssh_key.jpg
除了使用浏览器登录 Jumpserver 外, 还可使用命令行登录:
确保 Coco 服务正常
.. image:: _static/img/coco_check.jpg
鉴于心态检测存在延迟, 您也可以直接在 Jumpserver 主机上执行如下命令检测 Coco 是否存活, Coco 服务默认使用 2222 端口:
::
$ netstat -ntpl
效果如下:
.. image:: _static/img/coco_check_terminal.jpg
命令行登录 Jumpserver 使用如下命令:
::
$ ssh -p 2222 用户名@Jumpserver IP地址
登录成功后界面如下:
.. image:: _static/img/coco_success.jpg 2.1 创建用户组
三、登录日志 用户组, 顾名思义, 给用户分组。用户组信息很有用, 在分配资产权限的时候, 针对的某个用户组下的所有用户, 可以为一个用户分配多个用户组。
````````````````````
3.1 查看登录日志 点击页面左侧"用户管理"菜单下的"用户组", 进入用户组列表页面。
登录日志, 记录 Jumpserver 用户的登录信息, 包含用户名、类型:通过网页登录(Web)还是终端登录(Terminal)、Agent:所用代理、登录的 IP 地址、登录的地点以及登录日期。 .. image:: _static/img/admin_user_group_list.jpg
还可以指定某一用户, 查询其登录的历史记录。 点击页面左上角"创建用户组"按钮, 进入创建用户组页面:
点击页面左侧"用户管理"菜单下的"登录日志"按钮, 进入登录日志页面: 名称即用户组名称, 建议填写简单明了有用的信息。创建用户组的时候可以把已存在的用户加入到该分组中, 一个用户可以存在多个分组中。
.. image:: _static/img/admin_login_log.jpg .. image:: _static/img/admin_user_group_create.jpg
...@@ -16,7 +16,7 @@ QQ 群 ...@@ -16,7 +16,7 @@ QQ 群
群3: 552054376 (满) 群3: 552054376 (满)
群4: 794442067 (推荐) 群4: 794442067 ()
群5: 773866691 (新) 群5: 773866691 (新)
......
分布式部署文档 - 环境说明 分布式部署文档 - 环境说明
-------------------------------------------------------- --------------------------------------------------------
说明
~~~~~~~
本文档适用于有一定web运维经验的管理员或者工程师, 文中不会对安装的软件做过多的解释, 仅对需要执行的内容注部分注释, 更详细的内容请参考一步一步安装。
环境 环境
~~~~~~~ ~~~~~~~
......
...@@ -241,5 +241,5 @@ ...@@ -241,5 +241,5 @@
# sftp默认上传的位置在资产的 /tmp 目录下 # sftp默认上传的位置在资产的 /tmp 目录下
# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下 # windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
后续的使用请参考 `快速入门 <admin_create_asset.html>`_ 后续的使用请参考 `快速入门 <quick_start.html>`_
如遇到问题可参考 `FAQ <faq.html>`_ 如遇到问题可参考 `FAQ <faq.html>`_
...@@ -5,7 +5,7 @@ Jumpserver 封装了一个 All in one Docker, 可以快速启动。该镜像集 ...@@ -5,7 +5,7 @@ Jumpserver 封装了一个 All in one Docker, 可以快速启动。该镜像集
Tips: 不建议在生产中使用, 因为所有软件都打包到一个Docker中了, 不是Docker最佳实践 Tips: 不建议在生产中使用, 因为所有软件都打包到一个Docker中了, 不是Docker最佳实践
生产环境部署建议参考 `进阶安装文档 <quickinstall.html>`_ 生产环境部署建议参考 `进阶安装文档 <setup_by_prod.html>`_
快速启动 快速启动
``````````````` ```````````````
......
MFA 使用说明 MFA 使用说明
-------------------------------------------------------- --------------------------------------------------------
.. image:: _static/img/faq_googleauth.jpg
Multi-Factor Authentication (MFA) 遵循基于时间的一次性密码 (TOTP) 标准 (RFC 6238) Multi-Factor Authentication (MFA) 遵循基于时间的一次性密码 (TOTP) 标准 (RFC 6238)
.. code-block:: vim .. code-block:: vim
......
sftp 使用说明 sftp 使用说明
------------------------------------------------------- -------------------------------------------------------
在Windows上使用 sftp 工具传输文件到 Linux 系统, 默认的上传目录在 /tmp, 其他目录没有权限 在Windows上使用 sftp 工具传输文件到 Linux 系统, 默认的上传目录在 /tmp
.. image:: _static/img/faq_sftp_01.jpg
.. code-block:: shell .. code-block:: shell
......
...@@ -11,3 +11,20 @@ Telnet 使用说明 ...@@ -11,3 +11,20 @@ Telnet 使用说明
# 是 通过 "tenlet" 命令登录 telnet设备 "成功" 的返回字符串 # 是 通过 "tenlet" 命令登录 telnet设备 "成功" 的返回字符串
# 保存后需要重启coco组件 # 保存后需要重启coco组件
2. 举例
.. code-block:: shell
$ telnet 172.16.0.1
Login authentication
login: admin
password: *********
Info: The max number or VTY users is 10, and the number
of current VTY users on line is 1.
<RA-L7-RD>
# 把 <RA-L7-RD> 写入到 Web "系统设置"-"终端设置"-"Telnet 成功正则表达式" 里面
# <RA-L7-RD> 正则可用 <.*>+? 表示
...@@ -12,7 +12,7 @@ Jumpserver 文档 ...@@ -12,7 +12,7 @@ Jumpserver 文档
:maxdepth: 2 :maxdepth: 2
introduce introduce
installation step_by_step
admin_guide admin_guide
user_guide user_guide
development development
......
安装文档
++++++++++++++++++++++++
.. toctree::
:maxdepth: 1
setup_by_fast
dockerinstall
step_by_step
setup_by_ubuntu
quickinstall
setup_by_optimization
start_automatically
upgrade
migration
...@@ -9,4 +9,6 @@ Jumpserver 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了 ...@@ -9,4 +9,6 @@ Jumpserver 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了
Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。 Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
Jumpserver 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。
改变世界, 从一点点开始。 改变世界, 从一点点开始。
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
# 修改 url 的"localhost"为你的实际 url 地址, 否则邮件收到的地址将为"localhost" 也无法创建新用户 # 修改 url 的"localhost"为你的实际 url 地址, 否则邮件收到的地址将为"localhost" 也无法创建新用户
.. image:: _static/img/basic_setting.jpg .. image:: _static/img/admin_settings_list.jpg
**1.2 邮件设置** **1.2 邮件设置**
---------------- ----------------
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# 不可以同时勾选 SSL 和 TLS # 不可以同时勾选 SSL 和 TLS
# 配置邮件服务后, 点击页面的"测试连接"按钮, 如果配置正确, Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面, 确定收到测试邮件后点击保存即可使用 # 配置邮件服务后, 点击页面的"测试连接"按钮, 如果配置正确, Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面, 确定收到测试邮件后点击保存即可使用
.. image:: _static/img/smtp_setting.jpg .. image:: _static/img/admin_settings_email_list.jpg
**1.3 LDAP设置** **1.3 LDAP设置**
----------------- -----------------
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
# DN 和 OU 一定要完整(如 "DN:cn=Manage,ou=Jumpserver,dc=jumpserver,ou=org") # DN 和 OU 一定要完整(如 "DN:cn=Manage,ou=Jumpserver,dc=jumpserver,ou=org")
# 注:可借用第三方 gui 工具查看 ldap 用户的属性, 新版本已经支持中文名登录, 即cn=中文也可正常使用 # 注:可借用第三方 gui 工具查看 ldap 用户的属性, 新版本已经支持中文名登录, 即cn=中文也可正常使用
.. image:: _static/img/ldap_setting.jpg .. image:: _static/img/admin_settings_ldap_list.jpg
参考 `LDAP 使用说明 <faq_ldap.html>`_ 参考 `LDAP 使用说明 <faq_ldap.html>`_
...@@ -49,12 +49,15 @@ ...@@ -49,12 +49,15 @@
.. code-block:: vim .. code-block:: vim
# "密码认证"和"密钥认证"是 SSH 连接跳板机时所使用的认证方式(都不选会造成无法使用 SSH 方式连接登录跳板机, 不影响 web 登录) # "密码认证"和"密钥认证"是 SSH 连接跳板机时所使用的认证方式(都不选会造成无法使用 SSH 方式连接登录跳板机, 不影响 web 登录)
# "命令存储""录像存储"位置设置
# "Telnet成功正则表达式" telnet设备登陆失败需要设置 # "Telnet成功正则表达式" telnet设备登陆失败需要设置
# "命令存储""录像存储"位置设置
# 修改后, 需要修改在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录, 然后重启 Jumpserver 服务 # "命令存储""录像存储"修改后, 需要在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录, 然后重启 Jumpserver 服务
# 设置后重启 Coco 才能生效 # 设置后重启 Coco 才能生效
.. image:: _static/img/admin_settings_terminal_list_01.jpg
.. image:: _static/img/admin_settings_terminal_list_02.jpg
**1.5 安全设置** **1.5 安全设置**
---------------- ----------------
...@@ -65,6 +68,9 @@ ...@@ -65,6 +68,9 @@
# "SSH最大空闲时间"设置需要重启jumpserver才能生效 # "SSH最大空闲时间"设置需要重启jumpserver才能生效
# "密码校验规则"设置立即生效 # "密码校验规则"设置立即生效
.. image:: _static/img/admin_settings_security_list_01.jpg
.. image:: _static/img/admin_settings_security_list_02.jpg
二、用户管理 二、用户管理
````````````````````` `````````````````````
...@@ -81,199 +87,132 @@ ...@@ -81,199 +87,132 @@
# 用户首次登录 Jumpserver, 会被要求完善用户信息, 按照向导操作即可。 # 用户首次登录 Jumpserver, 会被要求完善用户信息, 按照向导操作即可。
注:MFA 即 Google Authenticator, 使用此软件需要APP时间与浏览器时间同步 注:MFA 即 Google Authenticator, 使用此软件需要APP时间与浏览器时间同步
.. image:: _static/img/admin_user.jpg .. image:: _static/img/admin_users_user_create.jpg
三、资产管理 三、资产管理
`````````````````` ``````````````````
**3.1 创建 Linux 资产** **3.1 编辑资产树**
------------------------ ------------------------
**3.1.1 编辑资产树**
.. code-block:: vim .. code-block:: vim
# 节点不能重名, 右击节点可以添加、删除和重命名节点, 以及进行资产相关的操作 # "节点"不能重名, 右击节点可以添加、删除和重命名节点, 以及进行资产相关的操作
# 注:如果有 linux 资产和 windows 资产, 建议先建立 Linux 节点与 Windows 节点, 不然授权时不好处理 注:如果有 linux 资产和 windows 资产, 建议先建立 Linux 节点与 Windows 节点, 不然"授权"时不好处理
.. image:: _static/img/asset_tree.jpg
**3.1.2 创建管理用户**
.. code-block:: shell
# "管理用户"是资产上的 root, 或拥有 NOPASSWD: ALL sudo 权限的用户, Jumpserver 使用该用
户来推送系统用户、获取资产硬件信息等
# 如果使用ssh私钥管理资产, 需要先在资产上设置, 这里举个例子供参考(本例登录资产使用root为例)
(1). 在资产上生成 root 账户的公钥和私钥
$ ssh-keygen -t rsa # 默认会输入公钥和私钥文件到 ~/.ssh 目录 .. image:: _static/img/admin_assets_asset_list.jpg
(2). 将公钥输出到文件 authorized_keys 文件, 并修改权限 **3.2 创建管理用户**
------------------------
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 400 ~/.ssh/authorized_keys
(3). 打开RSA验证相关设置
$ vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
(4). 重启 ssh 服务
$ service sshd restart
(5). 上传 ~/.ssh 目录下的 id_rsa 私钥到 jumpserver 的管理用户中 .. code-block:: vim
# 这样就可以使用 ssh私钥 进行管理服务器 # "管理用户"是资产上的 root, 或拥有 NOPASSWD: ALL sudo 权限的用户, Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。 Windows或其它硬件可以随意设置一个
# 名称可以按资产树来命名。用户名root。密码和 SSH 私钥必填一个 # "名称" 不能重复
# "ssh私钥" 如果有密码, 请把key的密码填在密码栏上
.. image:: _static/img/create_asset_admin_user.jpg .. image:: _static/img/admin_assets_admin-user_create.jpg
**3.1.3 创建系统用户** **3.3 创建系统用户**
------------------------
.. code-block:: vim .. code-block:: vim
# "系统用户"是 Jumpserver 跳转登录资产时使用的用户, 用户使用该用户登录资产 # "系统用户"是 Jumpserver 跳转登录资产时使用的用户, 用户使用该用户登录资产
# "自动生成密码"、"自动推送"、"Sudo"等功能需要对应资产的"管理用户"有root权限, 否则自动推送失败 # "自动生成密码"、"自动推送"、"Sudo"等功能需要对应资产的"管理用户"是且有root权限, 否则自动推送失败
# "系统用户"的"Sudo"栏设定用户的sudo权限 # ssh 协议的 "Sudo" 栏设定用户的 sudo 权限,
# 如果创建的"系统用户"已在资产上面存在, "推送"将会覆盖掉原用户的"home"目录权限(注: 替换成700权限) # ssh 协议如果创建的"系统用户"已在资产上面存在, "推送"将会覆盖掉原用户的"home"目录权限(注: 替换成700权限)
# 这里简单举几个例子 # 这里简单举几个 "sudo" 设置例子
Sudo /bin/su # 当前系统用户可以免sudo密码执行sudo su命令 Sudo /bin/su # 当前系统用户可以免sudo密码执行sudo su命令
  Sudo /usr/bin/git, /usr/bin/php, /bin/cat, /bin/more, /bin/less, /usr/bin/tail   Sudo /usr/bin/git, /usr/bin/php, /bin/cat, /bin/more, /bin/less, /usr/bin/tail
# 当前系统用户可以免sudo密码执行git php cat more less tail # 当前系统用户可以免sudo密码执行git php cat more less tail
Sudo !/usr/bin/yum # 禁止执行 yum 权限 Sudo !/usr/bin/yum # 当前系统用户不可以执行sudo yum命令
# 此处的权限应该根据使用用户的需求汇总后定制, 原则上给予最小权限即可 # 此处的权限应该根据使用用户的需求汇总后定制, 原则上给予最小权限即可
# 下图为不允许用户执行一些危险的操作, 允许其他的所有权限 # "系统用户"创建时, 如果选择了"自动推送" Jumpserver 会使用"Ansible"自动推送系统用户到资产中, "root"用户不支持推送
.. image:: _static/img/create_user_sudo.jpg
.. code-block:: vim
# "系统用户"创建时, 如果选择了"自动推送" Jumpserver 会使用"Ansible"自动推送系统用户到资产中,
# 如果资产(交换机、Windows)不支持"Ansible", 请去掉"自动生成密钥"、"自动推送"勾选。手动填写资产上已有的账号及账号密码 # 如果资产(交换机、Windows)不支持"Ansible", 请去掉"自动生成密钥"、"自动推送"勾选。手动填写资产上已有的账号及账号密码
# 如果想让用户登录资产时自己输入密码, 可以在创建系统用户时选择"手动登录" # 如果想让用户登录资产时自己输入密码, 可以在创建系统用户时选择"手动登录"
.. image:: _static/img/create_asset_system_user.jpg .. image:: _static/img/admin_assets_system-user_create_01.jpg
.. image:: _static/img/admin_assets_system-user_create_02.jpg
**3.1.4 创建资产**
.. code-block:: vim
# 点击页面左侧的"资产管理"菜单下的"资产列表"按钮, 查看当前所有的资产列表。
# 点击页面左上角的"创建资产"按钮, 进入资产创建页面, 填写资产信息。
# IP 地址和管理用户要确保正确, 确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。
# 资产的系统平台也务必正确填写。公网 IP 信息只用于展示, 可不填, Jumpserver 连接资产使用的是 IP 信息。
.. image:: _static/img/create_asset.jpg
.. code-block:: vim
# 资产创建信息填写好保存之后, 可"测试资产"是否能正确连接
注:被连接资产需要"python"组件, 且版本大于等于2.6, Ubuntu等资产默认不允许root用户远程ssh登录, 请自行处理
# 如果资产不能正常连接, 请检查"管理用户"的用户名和密钥是否正确以及该"管理用户"是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上
.. image:: _static/img/check_asset_connect.jpg
参考 `SSH协议 资产连接说明 <faq_ssh.html>`_
**3.2 创建 Windows 资产**
-------------------------
**3.2.1 创建 Windows 系统管理用户**
.. code-block:: vim
注:同 Linux 系统的"管理用户"一样, 名称可以按"资产树"来命名, 用户名是管理员用户名, 密码是管理员的密码
.. image:: _static/img/create_windows_admin.jpg **3.4 创建命令过滤**
------------------------
**3.2.2 创建 Windows 系统系统用户** 如无需要, 可忽略此步骤, 目前仅支持 ssh 与 telnet 协议
.. code-block:: vim .. code-block:: vim
# 目前 Windows 暂不支持"自动推送", 用户必须在系统中存在且有权限使用"远程连接", 请确认资产的"防火墙"已经开放 # "系统用户"可以绑定一些"命令过滤器",一个过滤器可以定义一些"规则"
注:"Windows 资产"协议务必选择"rdp" # 当"用户"使用这个"系统用户"登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配
# 当一个规则匹配到了,如果规则的动作是 "允许" 这个命令会被放行; 如果规则的动作是 "禁止" 命令将会被禁止执行; 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
# 如果想让用户登录资产时自己输入密码, 可以在"系统用户"设置"手动登录"
.. image:: _static/img/create_windows_user.jpg
**3.2.3 创建 Windows 资产** .. image:: _static/img/admin_assets_cmd-filter_create.jpg
.. code-block:: vim .. code-block:: vim
# Windows 7/8/2008/2012 "系统平台"选择 "Windows" # 点击 "命令过滤器列表" 规则下方的数字进入 "命令过滤器规则列表" , 点击新建规则创建相应规则
# Windows 10/2016 "系统平台"选择 "Windows(2016)" # 拒绝所有命令可以使用正则表达式 .*
# 创建 Windows 资产, "系统平台"请选择正确的 Windows, 默认"RDP"端口号为 3389, "IP" 和"管理用户"请正确选择
# 注:确保"管理用户"能正确登录到指定的 IP 主机上
.. image:: _static/img/create_windows_asset.jpg .. image:: _static/img/admin_assets_cmd-filter_rule_create.jpg
参考 `RDP协议 资产连接说明 <faq_rdp.html>`_ **3.5 创建网域网关**
------------------------
**3.3 网域列表** 如无需要, 可忽略此步骤, 支持代理SSH、RDP和VNC
----------------
.. code-block:: vim .. code-block:: vim
# "网域"功能是为了解决部分环境无法直接连接而新增的功能, 原理是通过网关服务器进行跳转登录 # "网域"功能是为了解决部分环境无法直接连接而新增的功能, 原理是通过网关服务器进行跳转登录
# 点击页面左侧的"网域列表"按钮, 查看所有网域列表 # 点击页面左侧的"网域列表"按钮, 查看所有网域列表
# 点击页面左上角的"创建网域"按钮, 进入网域创建页面, 选择资产里用作网域的网关服务器 # 点击页面左上角的"创建网域"按钮, 进入网域创建页面, 选择资产里用作网域的网关服务器
# 注:混合云适用 注:混合云适用
.. image:: _static/img/create_domain.jpg .. image:: _static/img/admin_assets_domain_create.jpg
.. code-block:: vim .. code-block:: vim
# 点击"网域"的名称, 进入"网域详情"列表。 # 点击"网域"的名称, 进入"网域详情"列表。
# 点击页面的"网关"按钮, 选择网关列表的"创建网关"按钮, 进入网关创建页面, 填写网关信息 # 点击页面的"网关"按钮, 选择网关列表的"创建网关"按钮, 进入网关创建页面, 填写网关信息
# IP信息一般默认填写网域资产的IP即可(如用作网域的资产有多块网卡和IP地址, 选能与jumpserer通信的任一IP即可) # IP信息一般默认填写网域资产的IP即可(如用作网域的资产有多块网卡和IP地址, 选能与jumpserer通信的任一IP即可)
注:用户名与密码可以使用网关资产上已存在的任一拥有执行 ssh 命令权限的用户 注:用户名与密码可以使用网关资产上已存在的任一拥有执行 ssh 命令权限的用户
.. image:: _static/img/create_geteway.jpg .. image:: _static/img/admin_assets_domain_gateway_create.jpg
.. code-block:: vim .. code-block:: vim
注: 保存信息后点击"测试连接", 确定设置无误后到资产列表添加需要使用"网关"登录的资产即可 注: 保存信息后点击"测试连接", 确定设置无误后到资产列表添加需要使用"网关"登录的资产即可
注: "Windows资产"可以使用"ssh网关" 注: "Windows资产"可以使用"ssh网关"
.. image:: _static/img/create_asset02.jpg **3.6 创建资产**
------------------------
**3.4 资产节点管理**
---------------------
**3.4.1 为资产树节点分配资产**
.. code-block:: vim .. code-block:: vim
# 在"资产列表"页面, 选择要添加资产的"节点", 右键, 选择添加资产到"节点"(一台资产可以同时在多个节点下面) # 点击页面左侧的"资产管理"菜单下的"资产列表"按钮, 查看当前所有的资产列表。
# 点击页面左上角的"创建资产"按钮, 进入资产创建页面, 填写资产信息。
# IP 地址和管理用户要确保正确, 确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。
# 资产的系统平台也务必正确填写。公网 IP 信息只用于展示, 可不填, Jumpserver 连接资产使用的是 IP 信息。
.. image:: _static/img/add_asset_to_node.jpg .. image:: _static/img/admin_assets_asset_create.jpg
.. code-block:: vim .. code-block:: vim
# 选择要被添加的"资产", 点击"确认"即可。 # 资产创建信息填写好保存之后, ssh 协议资产可"测试资产"是否能正确连接, 其他协议暂不支持
注:被连接资产需要"python"组件, 且版本大于等于2.6, Ubuntu等资产默认不允许root用户远程ssh登录, 请自行处理
.. image:: _static/img/select_asset_to_node.jpg # 如果资产不能正常连接, 请检查"管理用户"的用户名和密钥是否正确以及该"管理用户"是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上
**3.4.2 删除节点资产** SSH 协议参考 `SSH 协议资产连接说明 <faq_ssh.html>`_
.. code-block:: vim RDP 协议参考 `RDP 协议资产连接说明 <faq_rdp.html>`_
# 选择要被删除的节点, 选择"从节点删除", 点击"提交"即可。 Telnet 协议参考 `Telnet 协议资产连接说明 <faq_telnet.html>`_
.. image:: _static/img/delete_asset_from_node.jpg
四、创建授权规则 四、创建授权规则
````````````````````` `````````````````````
...@@ -287,26 +226,13 @@ ...@@ -287,26 +226,13 @@
# "用户"和"用户组"二选一, 不推荐即选择用户又选择用户组 # "用户"和"用户组"二选一, 不推荐即选择用户又选择用户组
# "资产"和"节点"二选一, 选择节点会包含节点下面的所有资产 # "资产"和"节点"二选一, 选择节点会包含节点下面的所有资产
# "系统用户", 及所选的用户或用户组下的用户能通过该系统用户使用所选节点或者节点下的资产 # "系统用户", 及所选的用户或用户组下的用户能通过该系统用户使用所选节点或者节点下的资产
# 用户(组), 资产(节点), 系统用户是一对一的关系, 所以当拥有 Linux、Windows 不同类型资产时, # 用户(组), 资产(节点), 系统用户是一对一的关系, 所以当拥有 Linux、Windows 不同类型资产时, 应该分别给 Linux 资产和 Windows 资产创建授权规则
# 应该分别给 Linux 资产和 Windows 资产创建授权规则。
资产授权与节点授权的区别请参考下面示例, 一般情况下, 资产授权给个人, 节点授权给用户组, 一个授权只能选择一个系统用户
.. image:: _static/img/create_auth_rules01.jpg
.. image:: _static/img/create_auth_rules02.jpg
.. code-block:: vim
注:创建的授权规则, 节点要与资产所在的节点一致
.. image:: _static/img/auth_rule_list.jpg 一般情况下, 资产授权给个人, 节点授权给用户组, 一个授权只能选择一个系统用户
.. code-block:: vim .. image:: _static/img/admin_perms_asset-permission_create.jpg
# 原则上, 一个授权只能同时授予一个用户或者一个组
# 意思是:把个人的资产授权给个人, 把部门的资产授权给部门, 把项目的资产授权给项目...
五、用户使用资产 五、用户登录
````````````````````` `````````````````````
**5.1 登录 Jumpserver** **5.1 登录 Jumpserver**
...@@ -316,38 +242,41 @@ ...@@ -316,38 +242,41 @@
# 用户只能看到自己被管理员授权了的"资产", 如果登录后无资产, 请联系管理员进行确认 # 用户只能看到自己被管理员授权了的"资产", 如果登录后无资产, 请联系管理员进行确认
.. image:: _static/img/user_login_success.jpg .. image:: _static/img/user_assets_user-asset_list.jpg
**5.2 使用资产** **5.2 连接资产**
---------------- -----------------------
**5.2.1 连接资产**
.. code-block:: vim .. code-block:: vim
# 点击页面左边的 "Web 终端" # 在我的资产点击资产右边的 "连接" 快速连接资产
# 也可以点击左侧栏的 "Web终端"
.. image:: _static/img/link_web_terminal.jpg .. image:: _static/img/user_terminal_web-terminal_list.jpg
.. code-block:: vim .. code-block:: vim
# 打开资产所在的节点: # 点击 "资产" 名字, 就连上资产了
# 如果显示连接超时, 请参考 FAQ 文档进行处理
.. image:: _static/img/luna_index.jpg **5.3 断开资产**
-----------------------
.. code-block:: vim .. code-block:: vim
# 点击"资产"名字, 就连上资产了, 整个过程不需要用户输入资产的任何信息 # 点击页面顶部的 "Server" 按钮会弹出选个选项, 第一个断开所选的连接, 第二个断开所有连接。
# 如果显示连接超时, 请参考FAQ文档进行处理
.. image:: _static/img/windows_assert.jpg
**5.2.2 断开资产** **5.4 文件管理**
-----------------------
.. code-block:: vim .. code-block:: vim
# 点击页面顶部的"Server"按钮会弹出选个选项, 第一个断开所选的连接, 第二个断开所有连接。 # 点击 "文件管理"
# 先在左边选择资产, 目前只支持自动登录的 SSH 协议资产
# 也可以使用 sftp 方式进行文件管理
参考 `SFTP 连接说明 <faq_sftp.html>`_
.. image:: _static/img/disconnect_assert.jpg .. image:: _static/img/user_terminal_web-sftp_list.jpg
以上就是 Jumpserver 的简易入门了, Jumpserver 还有很多功能等待您去发现。在使用过程中, 如果遇到什么问题, 可以在文档的"联系方式"一栏找到我们。 以上就是 Jumpserver 的简易入门了, Jumpserver 还有很多功能等待您去发现。在使用过程中, 如果遇到什么问题, 可以在文档的"联系方式"一栏找到我们。
一步一步安装(CentOS)
--------------------------
本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 `进阶安装文档 <setup_by_prod.html>`_
云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_
安装过程中遇到问题可参考 `安装过程中常见的问题 <faq_install.html>`_
测试推荐环境
~~~~~~~~~~~~~
- CPU: 64位双核处理器
- 内存: 4G DDR3
- 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6
环境
~~~~~~~
- 系统: CentOS 7
- IP: 192.168.244.144
- 设置 selinux 和防火墙
.. code-block:: shell
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco
$ firewall-cmd --reload # 重新载入规则
$ setenforce 0
$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 修改字符集, 否则可能报 input/output error的问题, 因为日志里打印了中文
$ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
$ export LC_ALL=zh_CN.UTF-8
$ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
一. 准备 Python3 和 Python 虚拟环境
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**1.1 安装依赖包**
.. code-block:: shell
$ yum -y install wget gcc epel-release git
**1.2 安装 Python3.6**
::
$ yum -y install python36 python36-devel
# 如果下载速度很慢, 可以换国内源
$ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
$ yum -y install python36 python36-devel
**1.3 建立 Python 虚拟环境**
因为 CentOS 7 自带的是 Python2, 而 Yum 等工具依赖原来的 Python, 为了不扰乱原来的环境我们来使用 Python 虚拟环境
.. code-block:: shell
$ cd /opt
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
二. 安装 Jumpserver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**2.1 下载或 Clone 项目**
项目提交较多 git clone 时较大, 你可以选择去 Github 项目页面直接下载zip包。
.. code-block:: shell
$ cd /opt/
$ git clone https://github.com/jumpserver/jumpserver.git
**2.2 安装依赖 RPM 包**
.. code-block:: shell
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续
**2.3 安装 Python 库依赖**
.. code-block:: shell
$ pip install --upgrade pip setuptools
$ pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源
$ pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
**2.4 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke**
.. code-block:: shell
$ yum -y install redis
$ systemctl enable redis
$ systemctl start redis
**2.5 安装 MySQL**
本教程使用 Mysql 作为数据库, 如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
.. code-block:: shell
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
$ systemctl enable mariadb
$ systemctl start mariadb
**2.6 创建数据库 Jumpserver 并授权**
.. code-block:: shell
$ DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24` # 生成随机数据库密码
$ echo -e "\033[31m 你的数据库密码是 $DB_PASSWORD \033[0m"
$ mysql -uroot -e "create database jumpserver default charset 'utf8'; grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '$DB_PASSWORD'; flush privileges;"
**2.7 修改 Jumpserver 配置文件**
.. code-block:: shell
$ cd /opt/jumpserver
$ cp config_example.yml config.yml
$ SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50` # 生成随机SECRET_KEY
$ echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc
$ BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16` # 生成随机BOOTSTRAP_TOKEN
$ echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
$ sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
$ sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
$ sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
$ sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
$ sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml
$ sed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.yml
$ echo -e "\033[31m 你的SECRET_KEY是 $SECRET_KEY \033[0m"
$ echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m"
$ vi config.yml # 确认内容有没有错误
.. code-block:: yaml
# SECURITY WARNING: keep the secret key used in production secret!
# 加密秘钥 生产环境中请修改为随机字符串, 请勿外泄
SECRET_KEY:
# SECURITY WARNING: keep the bootstrap token used in production secret!
# 预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
# DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志
DEBUG: false
# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
# 日志级别
LOG_LEVEL: ERROR
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
# Database setting, Support sqlite3, mysql, postgres ....
# 数据库设置
# See https://docs.djangoproject.com/en/1.10/ref/settings/#databases
# SQLite setting:
# 使用单文件sqlite数据库
# DB_ENGINE: sqlite3
# DB_NAME:
# MySQL or postgres setting like:
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD:
DB_NAME: jumpserver
# When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:8080
# 运行时绑定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_DB_CELERY: 3
# REDIS_DB_CACHE: 4
# Use OpenID authorization
# 使用OpenID 来进行认证设置
# BASE_SITE_URL: http://localhost:8080
# AUTH_OPENID: false # True or False
# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/
# AUTH_OPENID_REALM_NAME: realm-name
# AUTH_OPENID_CLIENT_ID: client-id
# AUTH_OPENID_CLIENT_SECRET: client-secret
# OTP settings
# OTP/MFA 配置
# OTP_VALID_WINDOW: 0
# OTP_ISSUER_NAME: Jumpserver
**2.8 运行 Jumpserver**
.. code-block:: shell
$ cd /opt/jumpserver
$ ./jms start all -d # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本, 使用方式./jms start|stop|status all 后台运行请添加 -d 参数
运行不报错, 请继续往下操作
三. 安装 SSH Server 和 WebSocket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**3.1 下载或 Clone 项目**
.. code-block:: shell
$ cd /opt
$ source /opt/py3/bin/activate
$ git clone https://github.com/jumpserver/coco.git
**3.2 安装依赖**
.. code-block:: shell
$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源
$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
**3.3 修改配置文件并运行**
.. code-block:: shell
$ cd /opt/coco
$ cp config_example.yml config.yml
$ sed -i "s/BOOTSTRAP_TOKEN: <PleasgeChangeSameWithJumpserver>/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/coco/config.yml
$ sed -i "s/# LOG_LEVEL: INFO/LOG_LEVEL: ERROR/g" /opt/coco/config.yml
$ vi config.yml
.. code-block:: yaml
# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }}
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致, 注册完成后可以删除
BOOTSTRAP_TOKEN: <PleasgeChangeSameWithJumpserver>
# 启动时绑定的ip, 默认 0.0.0.0
# BIND_HOST: 0.0.0.0
# 监听的SSH端口号, 默认2222
# SSHD_PORT: 2222
# 监听的HTTP/WS端口号, 默认5000
# HTTPD_PORT: 5000
# 项目使用的ACCESS KEY, 默认会注册, 并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null
# ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
# ACCESS_KEY_STORE: data/keys/.access_key
# 加密密钥
# SECRET_KEY: null
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: ERROR
# 日志存放的目录
# LOG_DIR: logs
# SSH白名单
# ALLOW_SSH_USER: all
# SSH黑名单, 如果用户同时在白名单和黑名单, 黑名单优先生效
# BLOCK_SSH_USER:
# -
# 和Jumpserver 保持心跳时间间隔
# HEARTBEAT_INTERVAL: 5
# Admin的名字, 出问题会提示给用户
# ADMINS: ''
# SSH连接超时时间 (default 15 seconds)
# SSH_TIMEOUT: 15
# 语言 [en, zh]
# LANGUAGE_CODE: zh
# SFTP的根目录, 可选 /tmp, Home其他自定义目录
# SFTP_ROOT: /tmp
# SFTP是否显示隐藏文件
# SFTP_SHOW_HIDDEN_FILE: false
.. code-block:: shell
$ ./cocod start -d # 后台运行使用 -d 参数./cocod start -d
# 新版本更新了运行脚本, 使用方式./cocod start|stop|status 后台运行请添加 -d 参数
四. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Luna 已改为纯前端, 需要 Nginx 来运行访问
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压不需要编译
**4.1 解压 Luna**
.. code-block:: shell
$ cd /opt
$ wget https://github.com/jumpserver/luna/releases/download/1.4.9/luna.tar.gz
# 如果网络有问题导致下载无法完成可以使用下面地址
$ wget https://demo.jumpserver.org/download/luna/1.4.9/luna.tar.gz
$ tar xf luna.tar.gz
$ chown -R root:root luna
五. 安装 Windows 支持组件(如果不需要管理 windows 资产, 可以直接跳过这一步)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**5.1 安装依赖**
.. code-block:: shell
$ mkdir /usr/local/lib/freerdp/
$ ln -s /usr/local/lib/freerdp /usr/lib64/freerdp
$ rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
$ yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
$ yum install -y java-1.8.0-openjdk libtool
$ yum install -y cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
$ yum install -y ffmpeg-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel ghostscript
**5.2 编译安装 guacamole 服务**
.. code-block:: shell
$ cd /opt
$ git clone https://github.com/jumpserver/docker-guacamole.git
$ cd /opt/docker-guacamole/
$ tar -xf guacamole-server-0.9.14.tar.gz
$ cd guacamole-server-0.9.14
$ autoreconf -fi
$ ./configure --with-init-dir=/etc/init.d
$ make && make install
$ cd ..
$ rm -rf guacamole-server-0.9.14
$ ldconfig
**5.3 配置 Tomcat**
.. code-block:: shell
$ mkdir -p /config/guacamole /config/guacamole/lib /config/guacamole/extensions # 创建 guacamole 目录
$ ln -sf /opt/docker-guacamole/guacamole-auth-jumpserver-0.9.14.jar /config/guacamole/extensions/guacamole-auth-jumpserver-0.9.14.jar
$ ln -sf /opt/docker-guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties # guacamole 配置文件
$ cd /config
$ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
$ tar xf apache-tomcat-8.5.39.tar.gz
$ rm -rf apache-tomcat-8.5.39.tar.gz
$ mv apache-tomcat-8.5.39 tomcat8
$ rm -rf /config/tomcat8/webapps/*
$ ln -sf /opt/docker-guacamole/guacamole-0.9.14.war /config/tomcat8/webapps/ROOT.war # guacamole client
$ sed -i 's/Connector port="8080"/Connector port="8081"/g' /config/tomcat8/conf/server.xml # 修改默认端口为 8081
$ sed -i 's/FINE/WARNING/g' /config/tomcat8/conf/logging.properties # 修改 log 等级为 WARNING
$ cd /config
$ wget https://github.com/ibuler/ssh-forward/releases/download/v0.0.5/linux-amd64.tar.gz
# 如果网络有问题导致下载无法完成可以使用下面地址
$ wget https://demo.jumpserver.org/download/ssh-forward/v0.0.5/linux-amd64.tar.gz
$ tar xf linux-amd64.tar.gz -C /bin/
$ chmod +x /bin/ssh-forward
**5.4 配置环境变量**
.. code-block:: shell
$ export JUMPSERVER_SERVER=http://127.0.0.1:8080 # http://127.0.0.1:8080 指 jumpserver 访问地址
$ echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc
# BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN
$ export BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
$ echo "export BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
$ export JUMPSERVER_KEY_DIR=/config/guacamole/keys
$ echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >> ~/.bashrc
$ export GUACAMOLE_HOME=/config/guacamole
$ echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc
**5.5 启动 Guacamole**
.. code-block:: shell
$ /etc/init.d/guacd start
$ sh /config/tomcat8/bin/startup.sh
六. 配置 Nginx 整合各组件
~~~~~~~~~~~~~~~~~~~~~~~~~
**6.1 安装 Nginx**
.. code-block:: shell
$ yum install yum-utils
$ vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
$ yum install -y nginx
$ rm -rf /etc/nginx/conf.d/default.conf
$ systemctl enable nginx
**6.3 准备配置文件 修改 /etc/nginx/conf.d/jumpserver.conf**
.. code-block:: nginx
$ vi /etc/nginx/conf.d/jumpserver.conf
server {
listen 80; # 代理端口, 以后将通过此端口进行访问, 不再通过8080端口
# server_name demo.jumpserver.org; # 修改成你的域名或者注释掉
client_max_body_size 100m; # 录像及文件上传大小限制
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location /coco/ {
proxy_pass http://localhost:5000/coco/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location /guacamole/ {
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location / {
proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器, 请填写它的ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
**6.3 运行 Nginx**
.. code-block:: shell
nginx -t # 确保配置没有问题, 有问题请先解决
# CentOS 7
$ systemctl start nginx
$ systemctl enable nginx
**6.4 开始使用 Jumpserver**
检查应用是否已经正常运行
服务全部启动后, 访问 http://192.168.244.144, 访问nginx代理的端口, 不要再通过8080端口访问
默认账号: admin 密码: admin
到Jumpserver 会话管理-终端管理 检查 Coco Guacamole 等应用的注册。
**测试连接**
.. code-block:: shell
如果登录客户端是 macOS 或 Linux, 登录语法如下
$ ssh -p2222 admin@192.168.244.144
$ sftp -P2222 admin@192.168.244.144
密码: admin
如果登录客户端是 Windows, Xshell Terminal 登录语法如下
$ ssh admin@192.168.244.144 2222
$ sftp admin@192.168.244.144 2222
密码: admin
如果能登陆代表部署成功
# sftp默认上传的位置在资产的 /tmp 目录下
# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
后续的使用请参考 `快速入门 <quick_start.html>`_
如遇到问题可参考 `FAQ <faq.html>`_
...@@ -7,8 +7,6 @@ CentOS 7 安装文档 ...@@ -7,8 +7,6 @@ CentOS 7 安装文档
- > 开头的行表示需要在 mysql 中执行 - > 开头的行表示需要在 mysql 中执行
- $ 开头的行表示需要执行的命令 - $ 开头的行表示需要执行的命令
本文档适用于有一定web运维经验的管理员或者工程师, 文中不会对安装的软件做过多的解释, 仅对需要执行的内容注部分注释, 更详细的内容请参考一步一步安装。
云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_ 云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_
安装过程中遇到问题可参考 `安装过程中常见的问题 <faq_install.html>`_ 安装过程中遇到问题可参考 `安装过程中常见的问题 <faq_install.html>`_
...@@ -478,5 +476,5 @@ CentOS 7 安装文档 ...@@ -478,5 +476,5 @@ CentOS 7 安装文档
$ nginx -t $ nginx -t
$ nginx -s reload $ nginx -s reload
后续的使用请参考 `快速入门 <admin_create_asset.html>`_ 后续的使用请参考 `快速入门 <quick_start.html>`_
如遇到问题可参考 `FAQ <faq.html>`_ 如遇到问题可参考 `FAQ <faq.html>`_
一站式、分布式安装文档 一站式、分布式安装文档
++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++
可用于生产环境参考安装文档
组件说明 组件说明
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
...@@ -53,6 +52,8 @@ ...@@ -53,6 +52,8 @@
分布式部署文档(基于CentOS 7) 分布式部署文档(基于CentOS 7)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
等待更新ing...
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
......
一步一步安装(Ubuntu) 一步一步安装(Ubuntu)
-------------------------- --------------------------
本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 `进阶安装文档 <quickinstall.html>`_ 本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 `进阶安装文档 <setup_by_prod.html>`_
云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_ 云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_
...@@ -520,5 +520,5 @@ Luna 已改为纯前端, 需要 Nginx 来运行访问 ...@@ -520,5 +520,5 @@ Luna 已改为纯前端, 需要 Nginx 来运行访问
# sftp默认上传的位置在资产的 /tmp 目录下 # sftp默认上传的位置在资产的 /tmp 目录下
# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下 # windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
后续的使用请参考 `快速入门 <admin_create_asset.html>`_ 后续的使用请参考 `快速入门 <quick_start.html>`_
如遇到问题可参考 `FAQ <faq.html>`_ 如遇到问题可参考 `FAQ <faq.html>`_
...@@ -372,5 +372,5 @@ Ubuntu 18.04 安装文档 ...@@ -372,5 +372,5 @@ Ubuntu 18.04 安装文档
# sftp默认上传的位置在资产的 /tmp 目录下 # sftp默认上传的位置在资产的 /tmp 目录下
# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下 # windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
后续的使用请参考 `快速入门 <admin_create_asset.html>`_ 后续的使用请参考 `快速入门 <quick_start.html>`_
如遇到问题可参考 `FAQ <faq.html>`_ 如遇到问题可参考 `FAQ <faq.html>`_
一步一步安装(CentOS) 安装文档
-------------------------- ++++++++++++++++++++++++
本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 `进阶安装文档 <quickinstall.html>`_ .. toctree::
:maxdepth: 1
云服务器快速部署参考 `极速安装 <setup_by_fast.html>`_
setup_by_fast
安装过程中遇到问题可参考 `安装过程中常见的问题 <faq_install.html>`_ dockerinstall
setup_by_centos
测试推荐环境 setup_by_ubuntu
~~~~~~~~~~~~~ setup_by_prod
setup_by_optimization
- CPU: 64位双核处理器 start_automatically
- 内存: 4G DDR3 upgrade
- 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 migration
环境
~~~~~~~
- 系统: CentOS 7
- IP: 192.168.244.144
- 设置 selinux 和防火墙
.. code-block:: shell
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco
$ firewall-cmd --reload # 重新载入规则
$ setenforce 0
$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 修改字符集, 否则可能报 input/output error的问题, 因为日志里打印了中文
$ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
$ export LC_ALL=zh_CN.UTF-8
$ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
一. 准备 Python3 和 Python 虚拟环境
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**1.1 安装依赖包**
.. code-block:: shell
$ yum -y install wget gcc epel-release git
**1.2 安装 Python3.6**
::
$ yum -y install python36 python36-devel
# 如果下载速度很慢, 可以换国内源
$ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
$ yum -y install python36 python36-devel
**1.3 建立 Python 虚拟环境**
因为 CentOS 7 自带的是 Python2, 而 Yum 等工具依赖原来的 Python, 为了不扰乱原来的环境我们来使用 Python 虚拟环境
.. code-block:: shell
$ cd /opt
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
二. 安装 Jumpserver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**2.1 下载或 Clone 项目**
项目提交较多 git clone 时较大, 你可以选择去 Github 项目页面直接下载zip包。
.. code-block:: shell
$ cd /opt/
$ git clone https://github.com/jumpserver/jumpserver.git
**2.2 安装依赖 RPM 包**
.. code-block:: shell
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续
**2.3 安装 Python 库依赖**
.. code-block:: shell
$ pip install --upgrade pip setuptools
$ pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源
$ pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
**2.4 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke**
.. code-block:: shell
$ yum -y install redis
$ systemctl enable redis
$ systemctl start redis
**2.5 安装 MySQL**
本教程使用 Mysql 作为数据库, 如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
.. code-block:: shell
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
$ systemctl enable mariadb
$ systemctl start mariadb
**2.6 创建数据库 Jumpserver 并授权**
.. code-block:: shell
$ DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24` # 生成随机数据库密码
$ echo -e "\033[31m 你的数据库密码是 $DB_PASSWORD \033[0m"
$ mysql -uroot -e "create database jumpserver default charset 'utf8'; grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '$DB_PASSWORD'; flush privileges;"
**2.7 修改 Jumpserver 配置文件**
.. code-block:: shell
$ cd /opt/jumpserver
$ cp config_example.yml config.yml
$ SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50` # 生成随机SECRET_KEY
$ echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc
$ BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16` # 生成随机BOOTSTRAP_TOKEN
$ echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
$ sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
$ sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
$ sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
$ sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
$ sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml
$ sed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.yml
$ echo -e "\033[31m 你的SECRET_KEY是 $SECRET_KEY \033[0m"
$ echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m"
$ vi config.yml # 确认内容有没有错误
.. code-block:: yaml
# SECURITY WARNING: keep the secret key used in production secret!
# 加密秘钥 生产环境中请修改为随机字符串, 请勿外泄
SECRET_KEY:
# SECURITY WARNING: keep the bootstrap token used in production secret!
# 预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
# DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志
DEBUG: false
# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
# 日志级别
LOG_LEVEL: ERROR
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
# Database setting, Support sqlite3, mysql, postgres ....
# 数据库设置
# See https://docs.djangoproject.com/en/1.10/ref/settings/#databases
# SQLite setting:
# 使用单文件sqlite数据库
# DB_ENGINE: sqlite3
# DB_NAME:
# MySQL or postgres setting like:
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD:
DB_NAME: jumpserver
# When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:8080
# 运行时绑定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_DB_CELERY: 3
# REDIS_DB_CACHE: 4
# Use OpenID authorization
# 使用OpenID 来进行认证设置
# BASE_SITE_URL: http://localhost:8080
# AUTH_OPENID: false # True or False
# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/
# AUTH_OPENID_REALM_NAME: realm-name
# AUTH_OPENID_CLIENT_ID: client-id
# AUTH_OPENID_CLIENT_SECRET: client-secret
# OTP settings
# OTP/MFA 配置
# OTP_VALID_WINDOW: 0
# OTP_ISSUER_NAME: Jumpserver
**2.8 运行 Jumpserver**
.. code-block:: shell
$ cd /opt/jumpserver
$ ./jms start all -d # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本, 使用方式./jms start|stop|status all 后台运行请添加 -d 参数
运行不报错, 请继续往下操作
三. 安装 SSH Server 和 WebSocket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**3.1 下载或 Clone 项目**
.. code-block:: shell
$ cd /opt
$ source /opt/py3/bin/activate
$ git clone https://github.com/jumpserver/coco.git
**3.2 安装依赖**
.. code-block:: shell
$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源
$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
**3.3 修改配置文件并运行**
.. code-block:: shell
$ cd /opt/coco
$ cp config_example.yml config.yml
$ sed -i "s/BOOTSTRAP_TOKEN: <PleasgeChangeSameWithJumpserver>/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/coco/config.yml
$ sed -i "s/# LOG_LEVEL: INFO/LOG_LEVEL: ERROR/g" /opt/coco/config.yml
$ vi config.yml
.. code-block:: yaml
# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }}
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致, 注册完成后可以删除
BOOTSTRAP_TOKEN: <PleasgeChangeSameWithJumpserver>
# 启动时绑定的ip, 默认 0.0.0.0
# BIND_HOST: 0.0.0.0
# 监听的SSH端口号, 默认2222
# SSHD_PORT: 2222
# 监听的HTTP/WS端口号, 默认5000
# HTTPD_PORT: 5000
# 项目使用的ACCESS KEY, 默认会注册, 并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null
# ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
# ACCESS_KEY_STORE: data/keys/.access_key
# 加密密钥
# SECRET_KEY: null
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: ERROR
# 日志存放的目录
# LOG_DIR: logs
# SSH白名单
# ALLOW_SSH_USER: all
# SSH黑名单, 如果用户同时在白名单和黑名单, 黑名单优先生效
# BLOCK_SSH_USER:
# -
# 和Jumpserver 保持心跳时间间隔
# HEARTBEAT_INTERVAL: 5
# Admin的名字, 出问题会提示给用户
# ADMINS: ''
# SSH连接超时时间 (default 15 seconds)
# SSH_TIMEOUT: 15
# 语言 [en, zh]
# LANGUAGE_CODE: zh
# SFTP的根目录, 可选 /tmp, Home其他自定义目录
# SFTP_ROOT: /tmp
# SFTP是否显示隐藏文件
# SFTP_SHOW_HIDDEN_FILE: false
.. code-block:: shell
$ ./cocod start -d # 后台运行使用 -d 参数./cocod start -d
# 新版本更新了运行脚本, 使用方式./cocod start|stop|status 后台运行请添加 -d 参数
四. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Luna 已改为纯前端, 需要 Nginx 来运行访问
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压不需要编译
**4.1 解压 Luna**
.. code-block:: shell
$ cd /opt
$ wget https://github.com/jumpserver/luna/releases/download/1.4.9/luna.tar.gz
# 如果网络有问题导致下载无法完成可以使用下面地址
$ wget https://demo.jumpserver.org/download/luna/1.4.9/luna.tar.gz
$ tar xf luna.tar.gz
$ chown -R root:root luna
五. 安装 Windows 支持组件(如果不需要管理 windows 资产, 可以直接跳过这一步)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**5.1 安装依赖**
.. code-block:: shell
$ mkdir /usr/local/lib/freerdp/
$ ln -s /usr/local/lib/freerdp /usr/lib64/freerdp
$ rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
$ yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
$ yum install -y java-1.8.0-openjdk libtool
$ yum install -y cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
$ yum install -y ffmpeg-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel ghostscript
**5.2 编译安装 guacamole 服务**
.. code-block:: shell
$ cd /opt
$ git clone https://github.com/jumpserver/docker-guacamole.git
$ cd /opt/docker-guacamole/
$ tar -xf guacamole-server-0.9.14.tar.gz
$ cd guacamole-server-0.9.14
$ autoreconf -fi
$ ./configure --with-init-dir=/etc/init.d
$ make && make install
$ cd ..
$ rm -rf guacamole-server-0.9.14
$ ldconfig
**5.3 配置 Tomcat**
.. code-block:: shell
$ mkdir -p /config/guacamole /config/guacamole/lib /config/guacamole/extensions # 创建 guacamole 目录
$ ln -sf /opt/docker-guacamole/guacamole-auth-jumpserver-0.9.14.jar /config/guacamole/extensions/guacamole-auth-jumpserver-0.9.14.jar
$ ln -sf /opt/docker-guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties # guacamole 配置文件
$ cd /config
$ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
$ tar xf apache-tomcat-8.5.39.tar.gz
$ rm -rf apache-tomcat-8.5.39.tar.gz
$ mv apache-tomcat-8.5.39 tomcat8
$ rm -rf /config/tomcat8/webapps/*
$ ln -sf /opt/docker-guacamole/guacamole-0.9.14.war /config/tomcat8/webapps/ROOT.war # guacamole client
$ sed -i 's/Connector port="8080"/Connector port="8081"/g' /config/tomcat8/conf/server.xml # 修改默认端口为 8081
$ sed -i 's/FINE/WARNING/g' /config/tomcat8/conf/logging.properties # 修改 log 等级为 WARNING
$ cd /config
$ wget https://github.com/ibuler/ssh-forward/releases/download/v0.0.5/linux-amd64.tar.gz
# 如果网络有问题导致下载无法完成可以使用下面地址
$ wget https://demo.jumpserver.org/download/ssh-forward/v0.0.5/linux-amd64.tar.gz
$ tar xf linux-amd64.tar.gz -C /bin/
$ chmod +x /bin/ssh-forward
**5.4 配置环境变量**
.. code-block:: shell
$ export JUMPSERVER_SERVER=http://127.0.0.1:8080 # http://127.0.0.1:8080 指 jumpserver 访问地址
$ echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc
# BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN
$ export BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
$ echo "export BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
$ export JUMPSERVER_KEY_DIR=/config/guacamole/keys
$ echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >> ~/.bashrc
$ export GUACAMOLE_HOME=/config/guacamole
$ echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc
**5.5 启动 Guacamole**
.. code-block:: shell
$ /etc/init.d/guacd start
$ sh /config/tomcat8/bin/startup.sh
六. 配置 Nginx 整合各组件
~~~~~~~~~~~~~~~~~~~~~~~~~
**6.1 安装 Nginx**
.. code-block:: shell
$ yum install yum-utils
$ vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
$ yum install -y nginx
$ rm -rf /etc/nginx/conf.d/default.conf
$ systemctl enable nginx
**6.3 准备配置文件 修改 /etc/nginx/conf.d/jumpserver.conf**
.. code-block:: nginx
$ vi /etc/nginx/conf.d/jumpserver.conf
server {
listen 80; # 代理端口, 以后将通过此端口进行访问, 不再通过8080端口
# server_name demo.jumpserver.org; # 修改成你的域名或者注释掉
client_max_body_size 100m; # 录像及文件上传大小限制
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location /coco/ {
proxy_pass http://localhost:5000/coco/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location /guacamole/ {
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location / {
proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器, 请填写它的ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
**6.3 运行 Nginx**
.. code-block:: shell
nginx -t # 确保配置没有问题, 有问题请先解决
# CentOS 7
$ systemctl start nginx
$ systemctl enable nginx
**6.4 开始使用 Jumpserver**
检查应用是否已经正常运行
服务全部启动后, 访问 http://192.168.244.144, 访问nginx代理的端口, 不要再通过8080端口访问
默认账号: admin 密码: admin
到Jumpserver 会话管理-终端管理 检查 Coco Guacamole 等应用的注册。
**测试连接**
.. code-block:: shell
如果登录客户端是 macOS 或 Linux, 登录语法如下
$ ssh -p2222 admin@192.168.244.144
$ sftp -P2222 admin@192.168.244.144
密码: admin
如果登录客户端是 Windows, Xshell Terminal 登录语法如下
$ ssh admin@192.168.244.144 2222
$ sftp admin@192.168.244.144 2222
密码: admin
如果能登陆代表部署成功
# sftp默认上传的位置在资产的 /tmp 目录下
# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
后续的使用请参考 `快速入门 <admin_create_asset.html>`_
如遇到问题可参考 `FAQ <faq.html>`_
用户资产
================
1.1 Web 连接资产
~~~~~~~~~~~~~~~~~~~~~~~~~~
点击页面左边的 Web 终端:
.. image:: _static/img/link_web_terminal.jpg
打开资产所在的节点:
.. image:: _static/img/luna_index.jpg
点击资产名字, 就连上资产了, 如果显示连接错误, 请联系管理员解决
.. image:: _static/img/windows_assert.jpg
1.2 Web 上传文件到 Win 资产
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows 资产的文件上传方式为:直接拖拽需要上传的文件到 Windows 资产窗口即可, 上传后的文件位置在资产的 Guacamole RDP上的 G 目录下
.. image:: _static/img/faq_windows_08.jpg
1.3 WEB 主机登出
~~~~~~~~~~~~~~~~~~~~~
点击页面顶部的 Server 按钮会弹出选个选项, 第一个断开所选的连接, 第二个断开所有连接:
.. image:: _static/img/disconnect_assert.jpg
1.4 SSH 连接资产
~~~~~~~~~~~~~~~~~~~~~
咨询管理员 跳板机服务器地址 及 端口, 使用 ssh 方式输入自己的用户名和密码登录(与Web登录的用户密码一致)
.. image:: _static/img/user_asset_ssh.jpg
1.5 SSH 主机登出
~~~~~~~~~~~~~~~~~~~~~
推荐退出主机时使用 exit 命令或者 ctrl + d 退出会话
1.6 SFTP 上传文件到 Linux 资产
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
咨询管理员 跳板机服务器地址 及 端口, 使用 ssh 方式输入自己的用户名和密码登录(与 SSH 登录跳板机的用户密码一致)
连接成功后, 可以看到当前拥有权限的资产, 打开资产, 然后选择系统用户, 即可到资产的 /tmp 目录(/tmp 目录为管理员自定义)
我的资产
================
这里显示自己被授权了的资产列表, 可以通过资产右侧的连接功能快速连接资产
.. image:: _static/img/user_assets_user-asset_list.jpg
用户使用文档 用户文档
============= =============
这部分给您介绍 Jumpserver 的用户使用文档 这部分给您介绍 Jumpserver 的用户使用文档
...@@ -6,5 +6,8 @@ ...@@ -6,5 +6,8 @@
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
user_info user_assets_user-asset
user_asset user_ops_command-execution
user_users_profile
user_terminal_web-terminal
user_terminal_web-sftp
用户页面
=========
通过管理员发送的邮件里面的 Jumpserver 地址登录进行用户初始化
1.1 查看个人信息
~~~~~~~~~~~~~~~~~
个人信息页面展示了用户的名称、角色、邮件、所属用户组、SSh 公钥、创建日期、最后登录日期和失效日期等信息:
.. image:: _static/img/user_info.jpg
1.2 修改密码
~~~~~~~~~~~~~
在个人信息页面点击"更改密码"按钮, 跳转到修改密码页面, 正确输入新旧密码, 即可完成密码修改:
.. image:: _static/img/user_update_password.jpg
1.3 设置或禁用 MFA
~~~~~~~~~~~~~~~~~~~
在个人信息页面点击"设置MFA"按钮(设置完成后按钮会禁用MFA), 根据提示处理即可, MFA全称是Multi-Factor Authentication, 遵循(TOTP)标准(RFC 6238)
1.4 修改 SSH 公钥
~~~~~~~~~~~~~~~~~~
点击"重置 SSH 密钥"按钮, 跳转到修改 SSH 密钥信息页, 复制 SSH 密钥信息到指定框中, 即可完成 SSH 密钥修改:
查看 SSH 公钥信息:
::
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDadDXxxx......
.. image:: _static/img/user_update_ssh_key.jpg
1.5 查看个人资产
~~~~~~~~~~~~~~~~
自己被授权的资产, 增减授权资产的需求请联系管理员
.. image:: _static/img/user_login_success.jpg
命令执行
================
可以通过该功能快速下发命令到资产, 目前仅支持能被 ansible 管理的资产, 要求 系统用户 登陆方式为 自动登陆
.. code-block:: vim
# 在左侧先勾选资产, 在右下角根据需要切换系统用户, 在下方输入需要执行的命令, 点击执行即可
# 仅支持标准的 shell 命令, 如: sudo ifconfig
.. image:: _static/img/user_ops_command-execution_start_list.jpg
文件管理
================
在左侧选择资产后, 可以进入管理员预设的资产目录 ( 默认 /tmp ), 可跨资产复制粘贴文件, 目前仅支持 ssh 协议且 系统用户 要求登陆方式为 自动登陆
.. image:: _static/img/user_terminal_web-sftp_list.jpg
Web终端
================
通过 web 连接资产
.. image:: _static/img/user_terminal_web-terminal_list.jpg
除了使用浏览器登录 Jumpserver 外, 还可使用命令行登录:
命令行登录 Jumpserver 使用如下命令:
::
$ ssh -p 2222 用户名@Jumpserver IP地址
个人信息
=========
显示当前用户的个人信息, 右侧的功能可以根据个人所需进行设置
.. image:: _static/img/user_users_profile_list.jpg
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment