Commit 9be165a4 authored by wojiushixiaobai's avatar wojiushixiaobai

[Fix]修改文档

parent ce845947
......@@ -6,23 +6,23 @@
1.1 管理资产树
资产树节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。
资产树节点不能重名, 右击节点可以添加、删除和重命名节点, 以及进行资产相关的操作。
.. image:: _static/img/asset_tree.jpg
1.2 为资产树节点分配资产
在资产列表页面,选择要添加资产的节点,右键,选择添加资产到节点。
在资产列表页面, 选择要添加资产的节点, 右键, 选择添加资产到节点。
.. image:: _static/img/add_asset_to_node.jpg
选择要被添加的资产,点击"确认"即可。
选择要被添加的资产, 点击"确认"即可。
.. image:: _static/img/select_asset_to_node.jpg
1.3 删除节点资产
选择要被删除的节点,选择"从节点删除",点击"提交"即可。
选择要被删除的节点, 选择"从节点删除", 点击"提交"即可。
.. image:: _static/img/delete_asset_from_node.jpg
......@@ -31,13 +31,13 @@
2.1 创建标签
点击页面左上角"创建标签"按钮,进入创建标签页面:
点击页面左上角"创建标签"按钮, 进入创建标签页面:
给资产打上标签便于查询和管理。标签信息有名称和值:名称可以是描述功能信息,例如:用途,值则可以是具体信息,例如:组织1-部门1-研发。标签创建的时候可以选择为已存在的资产打上该标签。
给资产打上标签便于查询和管理。标签信息有名称和值:名称可以是描述功能信息, 例如:用途, 值则可以是具体信息, 例如:组织1-部门1-研发。标签创建的时候可以选择为已存在的资产打上该标签。
.. image:: _static/img/admin_label_create.jpg
标签名称可以重名,一个资产可以有多个标签产。标签删除,资产上的标签信息会自动消失:
标签名称可以重名, 一个资产可以有多个标签产。标签删除, 资产上的标签信息会自动消失:
.. image:: _static/img/admin_label_delete.jpg
......@@ -46,7 +46,7 @@
3.1 创建管理用户
管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。
管理用户是服务器的 root, 或拥有 NOPASSWD: ALL sudo 权限的用户, Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。
名称可以按资产树来命名。用户名 root。密码和 SSH 私钥必填一个。
......@@ -54,7 +54,7 @@
3.2 创建 Windows 管理用户
同 Linux 系统的管理用户一样,名称可以按资产树来命名,用户名是管理员用户名,密码是管理员的密码。
同 Linux 系统的管理用户一样, 名称可以按资产树来命名, 用户名是管理员用户名, 密码是管理员的密码。
.. image:: _static/img/create_windows_admin.jpg
......@@ -63,11 +63,11 @@
4.1 创建系统用户
系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web, sa, dba('ssh web@some-host'), 而不是使用某个用户的用户名跳转登录服务器('ssh xiaoming@some-host'); 简单来说是 用户使用自己的用户名登录 Jumpserver, Jumpserver 使用系统用户登录资产。
系统用户是 Jumpserver 跳转登录资产时使用的用户, 可以理解为登录资产用户, 如 web, sa, dba('ssh web@some-host'), 而不是使用某个用户的用户名跳转登录服务器('ssh xiaoming@some-host'); 简单来说是 用户使用自己的用户名登录 Jumpserver, Jumpserver 使用系统用户登录资产。
系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机、Windows)不支持 Ansible, 请手动填写账号密码。
系统用户创建时, 如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中, 如果资产(交换机、Windows)不支持 Ansible, 请手动填写账号密码。
Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。
Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在, 请去掉自动生成密钥、自动推送勾选。
.. image:: _static/img/create_asset_system_user.jpg
......@@ -75,7 +75,7 @@ Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请
4.2 创建 Windows 系统系统用户
由于目前 Windows 不支持自动推送,所以 Windows 的系统用户设置成与管理用户同一个用户。
由于目前 Windows 不支持自动推送, 所以 Windows 的系统用户设置成与管理用户同一个用户。
Windows 资产协议务必选择 rdp。
......@@ -85,24 +85,24 @@ Windows 资产协议务必选择 rdp。
````````````
5.1 创建资产
点击页面左侧的"资产管理"菜单下的"资产列表"按钮,查看当前所有的资产列表。
点击页面左侧的"资产管理"菜单下的"资产列表"按钮, 查看当前所有的资产列表。
点击页面左上角的"创建资产"按钮,进入资产创建页面,填写资产信息。
点击页面左上角的"创建资产"按钮, 进入资产创建页面, 填写资产信息。
IP 地址和管理用户要确保正确,确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示,可不填,Jumpserver 连接资产主机使用的是 IP 信息。
IP 地址和管理用户要确保正确, 确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示, 可不填, Jumpserver 连接资产主机使用的是 IP 信息。
.. image:: _static/img/create_asset.jpg
资产创建信息填写好保存之后,可测试资产是否能正确连接:
资产创建信息填写好保存之后, 可测试资产是否能正确连接:
.. image:: _static/img/check_asset_connect.jpg
如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。
如果资产不能正常连接, 请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。
5.2 创建 Windows 资产
同创建 Linux 资产一样。
创建 Windows 资产,系统平台请选择正确的 Windows,端口号为3389,IP 和 管理用户请正确选择,确保管理用户能正确登录到指定的 IP 主机上。
创建 Windows 资产, 系统平台请选择正确的 Windows, 端口号为3389, IP 和 管理用户请正确选择, 确保管理用户能正确登录到指定的 IP 主机上。
.. image:: _static/img/create_windows_asset.jpg
This diff is collapsed.
......@@ -10,14 +10,14 @@
Jumpserver
`````````````
现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。
现指 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 开发。
实现了 SSH Server 和 Web Terminal Server 的组件, 提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
`Github <https://github.com/jumpserver/coco.git>`__
......@@ -25,20 +25,18 @@ Coco
Luna
````````
现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
现在是 Web Terminal 前端, 计划前端页面都由该项目提供, Jumpserver 只提供 API, 不再负责后台渲染html等。
`Github <https://github.com/jumpserver/luna.git>`__
Guacamole
```````````
Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。
Apache 跳板机项目, Jumpserver 使用其组件实现 RDP 功能, Jumpserver 并没有修改其代码而是添加了额外的插件, 支持 Jumpserver 调用。
Jumpserver-Python-SDK
```````````````````````
Jumpserver API Python SDK,Coco 目前使用该 SDK 与 Jumpserver API 交互。
Jumpserver API Python SDK, Coco 目前使用该 SDK 与 Jumpserver API 交互。
`Github <https://github.com/jumpserver/jumpserver-python-sdk.git>`__
......@@ -6,15 +6,15 @@
1.1 创建授权规则
节点,对应的是资产,代表该节点下的所有资产。
节点, 对应的是资产, 代表该节点下的所有资产。
用户组,对应的是用户,代表该用户组下所有的用户。
用户组, 对应的是用户, 代表该用户组下所有的用户。
系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。
系统用户, 及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。
节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该分别给 Linux 资产和 Windows 资产创建授权规则。
节点, 用户组, 系统用户是一对一的关系, 所以当拥有 Linux、Windows 不同类型资产时, 应该分别给 Linux 资产和 Windows 资产创建授权规则。
资产授权与节点授权的区别请参考下面示例,一般情况下,资产授权给个人,节点授权给用户组,一个授权只能选择一个系统用户
资产授权与节点授权的区别请参考下面示例, 一般情况下, 资产授权给个人, 节点授权给用户组, 一个授权只能选择一个系统用户
.. image:: _static/img/create_auth_rules01.jpg
.. image:: _static/img/create_auth_rules02.jpg
......@@ -6,9 +6,9 @@
1.1 查看在线会话
点击页面左侧"会话管理"菜单下的"在线会话"按钮,进入在线会话列表页面,默认展示最近7天的记录。
点击页面左侧"会话管理"菜单下的"在线会话"按钮, 进入在线会话列表页面, 默认展示最近7天的记录。
目前还不支持 Windows 系统,正在努力开发中......
目前还不支持 Windows 系统, 正在努力开发中......
::
......@@ -30,7 +30,7 @@
.. image:: _static/img/admin_session_online.jpg
可以查看指定的在线记录,比如,指定用户、资产或系统用户。
可以查看指定的在线记录, 比如, 指定用户、资产或系统用户。
1.2 中断会话
......@@ -46,42 +46,42 @@
2.1 查看历史会话
历史会话同在线会话包含的信息一样,都有用户、资产和 IP 地址等信息。
历史会话同在线会话包含的信息一样, 都有用户、资产和 IP 地址等信息。
.. image:: _static/img/admin_session_history.jpg
2.2 查看历史话录像
Jumpserver 提供历史会话的录像观看。点击左侧的"回放"按钮,即可观看录像。
Jumpserver 提供历史会话的录像观看。点击左侧的"回放"按钮, 即可观看录像。
.. image:: _static/img/admin_session_history_video.jpg
三、命令记录
```````````````````````
命令记录里面存放的是用户在资产上执行过哪些命令,单击一行记录,会展示命令执行的结果:
命令记录里面存放的是用户在资产上执行过哪些命令, 单击一行记录, 会展示命令执行的结果:
.. image:: _static/img/admin_session_command.jpg
点击"转到"连接,会跳转到详细的会话页面,如果会话已结束可以查看会话录像,如果会话正在线可中断会话:
点击"转到"连接, 会跳转到详细的会话页面, 如果会话已结束可以查看会话录像, 如果会话正在线可中断会话:
.. image:: _static/img/admin_session_command_detail.jpg
四、Web 终端
``````````````````````````
Web 终端是资产使用界面,管理员和用户都是从这里登录到资产上,执行操作。点击资产名字连接资产,点击"Server"下的"Disconnect"断开资产连接。
Web 终端是资产使用界面, 管理员和用户都是从这里登录到资产上, 执行操作。点击资产名字连接资产, 点击"Server"下的"Disconnect"断开资产连接。
.. image:: _static/img/admin_web_terminal.jpg
五、文件管理
```````````````````````
文件管理允许对 SSH 协议资产进行文件上传下载创建删除操作(不支持上传文件夹),目前也不支持系统用户是手动登录的资产
文件管理允许对 SSH 协议资产进行文件上传下载创建删除操作(不支持上传文件夹), 目前也不支持系统用户是手动登录的资产
六、终端管理
```````````````````````
终端列表页面列出了 Jumpserver 正在使用的终端有哪些,例如:Coco、Gua 等。终端第一次使用,会首先向 Jumpserver 发送请求注册,在 Jumpserver 中接受注册后就可以正常使用该终端了。
终端列表页面列出了 Jumpserver 正在使用的终端有哪些, 例如:Coco、Gua 等。终端第一次使用, 会首先向 Jumpserver 发送请求注册, 在 Jumpserver 中接受注册后就可以正常使用该终端了。
.. image:: _static/img/admin_terminal_list.jpg
系统设置
=============
点击页面左侧"系统设置"按钮,进入系统设置页面,查看基本设置、邮件设置、LDAP 设置和终端设置等内容。
点击页面左侧"系统设置"按钮, 进入系统设置页面, 查看基本设置、邮件设置、LDAP 设置和终端设置等内容。
.. _basic_settings:
一、基本设置
`````````````````````
点击页面上边的"基本设置" TAB ,进入基本设置页面,编辑当前站点 URL、用户想到 URL、Email 主题前缀等信息,点击"提交"按钮,基本设置完成。
点击页面上边的"基本设置" TAB, 进入基本设置页面, 编辑当前站点 URL、用户想到 URL、Email 主题前缀等信息, 点击"提交"按钮, 基本设置完成。
.. image:: _static/img/basic_setting.jpg
二、邮件设置
````````````````````
点击页面上边的"邮件设置" TAB ,进入邮件设置页面:
点击页面上边的"邮件设置" TAB, 进入邮件设置页面:
.. image:: _static/img/smtp_setting.jpg
配置 QQ 邮箱的 SMTP 服务可参考(http://blog.csdn.net/Aaron133/article/details/78363844)
配置邮件服务后,点击页面的"测试连接"按钮,如果配置正确,Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面:
配置邮件服务后, 点击页面的"测试连接"按钮, 如果配置正确, Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面:
.. image:: _static/img/smtp_test.jpg
三、LDAP 设置
````````````````````````
点击页面上边的" LDAP 设置" TAB ,进入 LDAP 设置页面,编辑 LDAP 地址、DN、用户 OU、用户过滤器、LDAP 属性映射和是否使用 SSL、是否启用 LDAP 认证等信息,点击"测试连接"按钮,测试是否正确设置,点击"提交"按钮,完成 LDAP 设置。
点击页面上边的" LDAP 设置" TAB, 进入 LDAP 设置页面, 编辑 LDAP 地址、DN、用户 OU、用户过滤器、LDAP 属性映射和是否使用 SSL、是否启用 LDAP 认证等信息, 点击"测试连接"按钮, 测试是否正确设置, 点击"提交"按钮, 完成 LDAP 设置。
如果这里有问题请手动用 ldapsearch命令测试一下, 如果能唯一搜索出这个用户代表你的设置是对的,然后根据用户的属性填写映射关系
如果这里有问题请手动用 ldapsearch命令测试一下, 如果能唯一搜索出这个用户代表你的设置是对的, 然后根据用户的属性填写映射关系
.. image:: _static/img/ldapsearch.png
:alt: LDAP搜索实例
::
# 注意下面的 testuser对应的是你ldap server上存在的用户,填写到配置中需要改为 %(user)s
# 注意下面的 testuser对应的是你ldap server上存在的用户, 填写到配置中需要改为 %(user)s
ldapsearch -x -W -H ldap://127.0.0.1:389 -b "ou=People,dc=xxx,dc=com" -D "cn=admin,dc=xxx,dc=com" "(cn=testuser)"
ldapsearch -x -W -H ldap://127.0.0.1:389 -b "dc=xxx,dc=com" -D "cn=admin,dc=xxx,dc=com" "(&(cn=testuser)(objectClass=account))"
......@@ -63,8 +63,8 @@
四、终端设置
````````````````````
点击页面上边的"终端设置" TAB ,进入终端设置页面,编辑终端信息,点击"提交"按钮,终端设置完成。
点击页面上边的"终端设置" 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
......@@ -6,15 +6,15 @@
1.1 创建用户组
用户组,顾名思义,给用户分组。用户组信息很有用,在分配资产权限的时候,针对的某个用户组下的所有用户,可以为一个用户分配多个用户组。
用户组, 顾名思义, 给用户分组。用户组信息很有用, 在分配资产权限的时候, 针对的某个用户组下的所有用户, 可以为一个用户分配多个用户组。
点击页面左侧"用户管理"菜单下的"用户组",进入用户组列表页面。
点击页面左侧"用户管理"菜单下的"用户组", 进入用户组列表页面。
.. image:: _static/img/admin_user_group_list.jpg
点击页面左上角"创建用户组"按钮,进入创建用户组页面:
点击页面左上角"创建用户组"按钮, 进入创建用户组页面:
名称即用户组名称,建议填写简单明了有用的信息。创建用户组的时候可以把已存在的用户加入到该分组中,一个用户可以存在多个分组中。
名称即用户组名称, 建议填写简单明了有用的信息。创建用户组的时候可以把已存在的用户加入到该分组中, 一个用户可以存在多个分组中。
.. image:: _static/img/admin_create_user_group.jpg
......@@ -22,21 +22,21 @@
```````````````````
2.1 创建用户
点击页面左侧"用户列表"菜单下的"用户列表",进入用户列表页面。
点击页面左侧"用户列表"菜单下的"用户列表", 进入用户列表页面。
点击页面左上角"创建用户"按钮,进入创建用户页面,填写账户,角色安全,个人等信息。
点击页面左上角"创建用户"按钮, 进入创建用户页面, 填写账户, 角色安全, 个人等信息。
其中,用户名即 Jumpserver 登录账号。用户组是用于资产授权,当某个资产对一个用户组授权后,这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。
其中, 用户名即 Jumpserver 登录账号。用户组是用于资产授权, 当某个资产对一个用户组授权后, 这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。
.. image:: _static/img/create_jumpserver_user.jpg
成功提交用户信息后,Jumpserver 会发送一条设置"用户密码"的邮件到您填写的用户邮箱。
成功提交用户信息后, Jumpserver 会发送一条设置"用户密码"的邮件到您填写的用户邮箱。
.. image:: _static/img/create_user_success.jpg
点击邮件中的设置密码链接,设置好密码后,您就可以用户名和密码登录 Jumpserver 了。
点击邮件中的设置密码链接, 设置好密码后, 您就可以用户名和密码登录 Jumpserver 了。
用户首次登录 Jumpserver,会被要求完善用户信息。
用户首次登录 Jumpserver, 会被要求完善用户信息。
Linux/Unix 生成 SSH 密钥可以参考(https://www.cnblogs.com/horanly/p/6604104.html)
......@@ -49,18 +49,18 @@ Windows 生成 SSH 密钥可以参考(https://www.cnblogs.com/horanly/p/6604104.
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDadDXxxx......
复制 SSH 公钥,添加到 Jumpserver 中。
复制 SSH 公钥, 添加到 Jumpserver 中。
.. image:: _static/img/set_ssh_key.jpg
除了使用浏览器登录 Jumpserver 外,还可使用命令行登录:
除了使用浏览器登录 Jumpserver 外, 还可使用命令行登录:
确保 Coco 服务正常
.. image:: _static/img/coco_check.jpg
鉴于心态检测存在延迟,您也可以直接在 Jumpserver 主机上执行如下命令检测 Coco 是否存活,Coco 服务默认使用 2222 端口:
鉴于心态检测存在延迟, 您也可以直接在 Jumpserver 主机上执行如下命令检测 Coco 是否存活, Coco 服务默认使用 2222 端口:
::
......@@ -85,10 +85,10 @@ Windows 生成 SSH 密钥可以参考(https://www.cnblogs.com/horanly/p/6604104.
3.1 查看登录日志
登录日志,记录 Jumpserver 用户的登录信息,包含用户名、类型:通过网页登录(Web)还是终端登录(Terminal)、Agent:所用代理、登录的 IP 地址、登录的地点以及登录日期。
登录日志, 记录 Jumpserver 用户的登录信息, 包含用户名、类型:通过网页登录(Web)还是终端登录(Terminal)、Agent:所用代理、登录的 IP 地址、登录的地点以及登录日期。
还可以指定某一用户,查询其登录的历史记录。
还可以指定某一用户, 查询其登录的历史记录。
点击页面左侧"用户管理"菜单下的"登录日志"按钮,进入登录日志页面:
点击页面左侧"用户管理"菜单下的"登录日志"按钮, 进入登录日志页面:
.. image:: _static/img/admin_login_log.jpg
作业中心
==============
作业是 Jumpserver 向其所管理下的资产发送的指令,例如,测试资产可连接性、获取资产硬件信息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近7天的作业记录。
作业是 Jumpserver 向其所管理下的资产发送的指令, 例如, 测试资产可连接性、获取资产硬件信息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近7天的作业记录。
.. image:: _static/img/admin_work_center.jpg
点击作业名称可以查看作业的具体详情、作业的历史版本以及作业执行的历史记录:
.. image:: _static/img/admin_work_detail.jpg
\ No newline at end of file
.. image:: _static/img/admin_work_detail.jpg
......@@ -10,7 +10,7 @@ REST API规范约定
协议
~~~~
API 与用户的通信协议,总是使用 HTTPS 协议。
API 与用户的通信协议, 总是使用 HTTPS 协议。
域名
~~~~
......@@ -24,7 +24,7 @@ API 与用户的通信协议,总是使用 HTTPS 协议。
版本
~~~~
将 API 的版本号放入 URL 中,由于一个项目多个 APP 所以 Jumpserver 使用以下风格,将版本号放到 APP 后面
将 API 的版本号放入 URL 中, 由于一个项目多个 APP 所以 Jumpserver 使用以下风格, 将版本号放到 APP 后面
::
......@@ -35,8 +35,8 @@ API 与用户的通信协议,总是使用 HTTPS 协议。
路径
~~~~
路径又称"终点"(endpoint),表示 API 的具体网址。
在 RESTful 架构中,每个网址代表一种资源(Resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(Collection),所以 API 中的名词也应该使用复数。
路径又称"终点"(endpoint), 表示 API 的具体网址。
在 RESTful 架构中, 每个网址代表一种资源(Resource), 所以网址中不能有动词, 只能有名词, 而且所用的名词往往与数据库的表格名对应。一般来说, 数据库中的表都是同种记录的"集合"(Collection), 所以 API 中的名词也应该使用复数。
举例来说 Cmdb 中的 Assets 列表, IDC 列表。
::
......@@ -47,12 +47,12 @@ API 与用户的通信协议,总是使用 HTTPS 协议。
https://example.com/api/assets/v1.0/assets/1 [GET, PUT, DELETE]
https://example.com/api/assets/v1.0/idcs [GET, POST]
一般性的增删查改(CRUD)API,完全使用 HTTP Method 加上 URL 提供的语义,URL 中的可变部分(比如上面提到的),一般用来传递该API操作的核心实体对象的唯一 ID,如果有更多的参数需要提供,GET 方法请使用 URL Parameter(例如:"?client_id=xxxxx&app_id=xxxxxx"),PUT/POST/DELETE 方法请使用请求体传递参数。
一般性的增删查改(CRUD)API, 完全使用 HTTP Method 加上 URL 提供的语义, URL 中的可变部分(比如上面提到的), 一般用来传递该API操作的核心实体对象的唯一 ID, 如果有更多的参数需要提供, GET 方法请使用 URL Parameter(例如:"?client_id=xxxxx&app_id=xxxxxx"), PUT/POST/DELETE 方法请使用请求体传递参数。
HTTP Method
~~~~~~~~~~~
对于资源的具体操作类型,由 HTTP 动词表示。
对于资源的具体操作类型, 由 HTTP 动词表示。
常用的HTTP动词有下面五个(括号里是对应的 SQL 命令)。
......@@ -76,38 +76,38 @@ HTTP Method
?keyword=localhost 模糊搜索
?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
?sort=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
?page=2&per_page=100:指定第几页, 以及每页的记录数。
?sort=name&order=asc:指定返回结果按照哪个属性排序, 以及排序顺序。
?asset_id=1:指定筛选条件
状态码
~~~~~~
服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。
服务器向用户返回的状态码和提示信息, 常见的有以下一些(方括号中是该状态码对应的HTTP动词)。
- 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
- 200 OK - [GET]:服务器成功返回用户请求的数据, 该操作是幂等的(Idempotent)。
- 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
- 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT - [DELETE]:用户删除数据成功。
- 400 INVALID REQUEST -
[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
[POST/PUT/PATCH]:用户发出的请求有错误, 服务器没有进行新建或修改数据的操作, 该操作是幂等的。
- 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
- 403 Forbidden - [*]
表示用户得到授权(与401错误相对),但是访问是被禁止的。
表示用户得到授权(与401错误相对), 但是访问是被禁止的。
- 404 NOT FOUND -
[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
[*]:用户发出的请求针对的是不存在的记录, 服务器没有进行操作, 该操作是幂等的。
- 406 Not Acceptable -
[GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
- 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
[GET]:用户请求的格式不可得(比如用户请求JSON格式, 但是只有XML格式)。
- 410 Gone -[GET]:用户请求的资源被永久删除, 且不会再得到的。
- 422 Unprocesable entity - [POST/PUT/PATCH]
当创建一个对象时,发生一个验证错误。
当创建一个对象时, 发生一个验证错误。
- 500 INTERNAL SERVER ERROR -
[*]:服务器发生错误,用户将无法判断发出的请求是否成功。
[*]:服务器发生错误, 用户将无法判断发出的请求是否成功。
错误处理
~~~~~~~~
如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将 error 作为键名,出错信息作为键值即可。
如果状态码是4xx, 就应该向用户返回出错信息。一般来说, 返回的信息中将 error 作为键名, 出错信息作为键值即可。
::
......@@ -119,7 +119,7 @@ HTTP Method
返回结果
~~~~~~~~
针对不同操作,服务器向用户返回的结果应该符合以下规范。
针对不同操作, 服务器向用户返回的结果应该符合以下规范。
::
......@@ -134,8 +134,8 @@ Hypermedia API
~~~~~~~~~~~~~~
RESTful
API 最好做到 Hypermedia,即返回结果中提供链接,连向其他 API 方法,使得用户不查文档,也知道下一步应该做什么。
比如,当用户向 api.example.com 的根目录发出请求,会得到这样一个文档。
API 最好做到 Hypermedia, 即返回结果中提供链接, 连向其他 API 方法, 使得用户不查文档, 也知道下一步应该做什么。
比如, 当用户向 api.example.com 的根目录发出请求, 会得到这样一个文档。
::
......@@ -146,9 +146,9 @@ API 最好做到 Hypermedia,即返回结果中提供链接,连向其他 API 方
"type": "application/vnd.yourformat+json"
}}
上面代码表示,文档中有一个 Link 属性,用户读取这个属性就知道下一步该调用什么 API 了。
上面代码表示, 文档中有一个 Link 属性, 用户读取这个属性就知道下一步该调用什么 API 了。
- rel 表示这个 API 与当前网址的关系(Collection 关系,并给出该 Collection 的网址)
- rel 表示这个 API 与当前网址的关系(Collection 关系, 并给出该 Collection 的网址)
- href 表示 API 的路径
- title 表示 API 的标题
- type 表示返回类型
......@@ -160,4 +160,4 @@ Hypermedia API 的设计被称为 HATEOAS。 Github API 就是这种设计.
(1)API 的身份认证应该使用 OAuth 2.0 框架。
(2)服务器返回的数据格式,应该尽量使用 JSON。
\ No newline at end of file
(2)服务器返回的数据格式, 应该尽量使用 JSON。
......@@ -7,7 +7,7 @@
* 修复command filter 不记录操作日志的问题
* LDAP支持无密码
* 录像上传设置中去掉了cephs3兼容cepht
* 录像上传设置中去掉了ceph, s3兼容cepht
* gunicorn日志切割
* telnet支持在设置中修改成功的正则表达式
* 修复session 10分钟后不在线的问题
......@@ -17,13 +17,13 @@
2019年1月29日
* 支持 radius认证
* 统一生成coco的host key这样部署多个coco也不需要再复制 Host key
* 统一生成coco的host key, 这样部署多个coco也不需要再复制 Host key
* 权限列表增加详细过滤
* 更改配置文件类型为 yml格式
* 修改心跳方式
* 优化任务执行的日志记录方式
* 修复节点右击测试连接资产为节点下所有资产而不是直接资产
* sftp支持修改home目录 支持不显示隐藏文件
* 修复节点右击测试连接资产为节点下所有资产, 而不是直接资产
* sftp支持修改home目录, 支持不显示隐藏文件
* 修复luna隐藏侧边栏的bug
* luna支持直接登录到某个资产
......@@ -31,9 +31,9 @@
------------------------
2018年12月19日
* 会话日志可以定时清理保证硬盘够用
* 会话日志可以定时清理, 保证硬盘够用
* coco里 p可以自定义是否分页了
* 优化树形结构不怕资产太多了
* 优化树形结构, 不怕资产太多了
* 其他bug
1.4.5
......@@ -41,20 +41,20 @@
2018年12月12日
* 统一维护migrations数据库表结构变更
* 系统配置内容支持热加载不用再重启 jumpserver
* coco,guacamole注册机制更改,使用预共享秘钥自动注册,不再需要接受注册
* 系统配置内容支持热加载, 不用再重启 jumpserver
* coco, guacamole注册机制更改, 使用预共享秘钥自动注册, 不再需要接受注册
* 用户密码过期时间设置
* ldap不可以修改密码
* 默认组织里可以看到所有用户
* 日志审计修改密码日志中只能看到当前组织用户的更改
* luna列表回滚为原来方式不再是异步加载
* luna列表回滚为原来方式, 不再是异步加载
* rdp支持分辨率更改
1.4.4
------------------------
2018年11月11日
* 录像存储设置,使用表单来填写
* 录像存储设置, 使用表单来填写
* 支持luna异步加载
* 各列表统一使用分页
* 授权时间精确到分钟
......@@ -70,7 +70,7 @@
------------------------
2018年10月8日
* 支持web sftp,支持跨资产复制粘贴文件
* 支持web sftp, 支持跨资产复制粘贴文件
* 优化一些内容
1.4.1
......@@ -80,7 +80,7 @@
* 系统设置支持加密存储
* 单独推送系统用户到某个资产
* 支持了用户改密日志和操作日志
* 翻译更加完善,支持切换语言
* 翻译更加完善, 支持切换语言
* 不记录zmodem信息
* 支持空闲间隔自动断开
* 修复session无法中断问题
......@@ -92,7 +92,7 @@
------------------------
2018年8月7日
* 超级管理员创建组织,为改组织添加管理员,管理员可以负责该组织下 用户、资产、授权等管理
* 超级管理员创建组织, 为改组织添加管理员, 管理员可以负责该组织下 用户、资产、授权等管理
* Sftp显示同名资产为 主机名.组织
* Luna支持根据IP搜索
* 鼠标悬停可以显示主机ip
......@@ -103,7 +103,7 @@
2018年7月17日
* 支持telnet协议
* 支持用户手动输入密码登陆,密码不用托管到Jumpserver
* 支持用户手动输入密码登陆, 密码不用托管到Jumpserver
* 登陆日志增加失败原因
* session增加登陆源
* 修复网关端口和密码bug
......@@ -113,14 +113,14 @@
------------------------
2018年6月11日
* 可以在系统设置中指定密码强度,包含大小写字母特殊字符长度等
* 可以在系统设置中指定密码强度, 包含大小写字母特殊字符长度等
* 可以全局开启MFA
* 修改EMAIL不需要重启
* 设置公钥交互改变
* 修改一些BUG
* 修改窗口大小策略
* 统一requirements版本
* 修改luna树形结构,从根开始展示
* 修改luna树形结构, 从根开始展示
* 修改luna树形搜索
* 修改初始窗口大小不对的bug
* 修改录像播放的部分bug
......@@ -132,9 +132,9 @@
* 用户授权节点逻辑更改
* 去掉window无用信息
* 修复节点创建bug
* 创建节点 从0开始,新节点0 新节点1
* 创建节点 从0开始, 新节点0 新节点1
* 修复拖动节点引起的父节点异常
* 资产树增加视图,只显示本节点资产和显示子节点资产
* 资产树增加视图, 只显示本节点资产和显示子节点资产
1.3.0
------------------------
......@@ -201,19 +201,19 @@
* 使用最新版Python和Django开发 Python3.6.1, Django 1.11
* 使用完全使用 Django Class Base View开发
* 代码结构更加合理规整,分组件开发
* 代码结构更加合理规整, 分组件开发
* 支持Restful API
* 拆分 Jumpserver, terminal, web termial为三个项目 Jumpserver, coco, luna。coco和luna为无状态的,支持扩展
* 支持国际化,英文+中文
* 拆分 Jumpserver, terminal, web termial为三个项目 Jumpserver, coco, luna。coco和luna为无状态的, 支持扩展
* 支持国际化, 英文+中文
* Ansible使用 2.1 版本
* 各组件功能都有所加强
* 支持登陆验证码
* 命令详细解析存储到数据库
* 登录记录审计
* 原来的手动推送用户改为自动推送
* 原来的connect脚本,改为实现 ssh server,统一了认证
* 原来的connect脚本, 改为实现 ssh server, 统一了认证
* web terminal 无与伦比的漂亮
* 资产用户批量导入导出,批量修改
* 资产用户批量导入导出, 批量修改
* 界面更加优雅漂亮
0.3.3
......@@ -228,7 +228,7 @@
* 模糊匹配支持
* 搜索排序问题
* 批量命令优化,ip获取
* 批量命令优化, ip获取
0.3.1
------------------------
......@@ -258,7 +258,7 @@
* 资产增加硬件信息抓取
* 资产增加Excel导出和导入
* 资产增加批量更改
* 在主机上授权系统用户(系统用户为一些通用用户,如dev,dba等)
* 在主机上授权系统用户(系统用户为一些通用用户, 如dev, dba等)
* 授权改为以授权规则为中心
* 添加系统用户推送
* 更改sudo管理
......@@ -272,18 +272,18 @@
* 使用paramiko原生ssh协议登录后端主机(原来版本使用pexpect模拟登录)
* 新增使用别名或备注登录
* 新增主机分组查看,使用更方便
* 新增主机分组查看, 使用更方便
* 多线程批量执行命令
* 优化登录脚本
* Web界面更加美观漂亮
* 增加部门管理员负责管理本部门成员
* 增加仪表盘统计信息
* 增加部门, 用户组, 主机组
* 用户信息,主机信息更加详细
* 主机登录方式增加登录方式 map,用于登录不支持ldap的主机
* 主机授权,sudo授权改为组组之间授权
* 增加主机批量修改,批量添加
* 添加用户自动生成随机密码,然后自动发送邮件
* 用户信息, 主机信息更加详细
* 主机登录方式增加登录方式 map, 用于登录不支持ldap的主机
* 主机授权, sudo授权改为组组之间授权
* 增加主机批量修改, 批量添加
* 添加用户自动生成随机密码, 然后自动发送邮件
* 添加各种搜索
* 增加普通用户web页面的授权申请
* 审计界面更加友好
......@@ -297,7 +297,7 @@
-----------------------
2014年11月14日
* 去掉shell脚本,来添加用户
* 去掉shell脚本, 来添加用户
* 登录更稳定
* 新增Web控制sudo
* 新增Web查看统计日志
......@@ -322,6 +322,6 @@
* 用户管理
* 资产管理
* 授权资产给用户
* pexpect登录资产,记录日志
* 服务器配置ldap,集中认证
* pexpect登录资产, 记录日志
* 服务器配置ldap, 集中认证
* 批量执行命令
贡献者
=============
感谢以下朋友为 Jumpserver 做出的贡献,世界因你们而不同,排名不分先后
感谢以下朋友为 Jumpserver 做出的贡献, 世界因你们而不同, 排名不分先后
- **halcyon <王墉>** DevOps 资深开发者, 0.3.2 核心开发者之一
- **jiaxiangkong <陈尚委>** Jumpserver 测试运营
- **liuz <刘正> 全栈工程师** 编写了 Web Terminal 大部分代码
- **yumaojun03 <喻茂峻>** DevOps 资深开发者,擅长 Python、Go 以及 PaaS 平台开发
- **kelianchun <柯连春>** DevOps 资产开发者,修复了很多 Bugs
- **小彧 <李磊>** Django 资深开发者,为用户模块贡献了很多代码
- **yumaojun03 <喻茂峻>** DevOps 资深开发者, 擅长 Python、Go 以及 PaaS 平台开发
- **kelianchun <柯连春>** DevOps 资产开发者, 修复了很多 Bugs
- **小彧 <李磊>** Django 资深开发者, 为用户模块贡献了很多代码
- **sofia <周小侠>** 资深前端工程师, 前端代码贡献者
- **q4speed <莫鹍>** 架构师,贡献了 Windows 远程桌面登录大部分代码
- **q4speed <莫鹍>** 架构师, 贡献了 Windows 远程桌面登录大部分代码
- **ZhangFengyi <张峰毅>** 贡献了 新版文档
- **Aaron3S <沈晨阳>** 贡献了 新版文档
- **liqiang-fit2cloud <张立强>** 版本测试,给资产树设计贡献了很多建议
- **wojiushixiaobai <吴育煌>** 完善文档,测试bug,热心帮助过很多朋友
- **liqiang-fit2cloud <张立强>** 版本测试, 给资产树设计贡献了很多建议
- **wojiushixiaobai <吴育煌>** 完善文档, 测试bug, 热心帮助过很多朋友
......@@ -4,7 +4,7 @@
说明
~~~~~~~
本文档适用于有一定web运维经验的管理员或者工程师,文中不会对安装的软件做过多的解释,仅对需要执行的内容注部分注释,更详细的内容请参考一步一步安装。
本文档适用于有一定web运维经验的管理员或者工程师, 文中不会对安装的软件做过多的解释, 仅对需要执行的内容注部分注释, 更详细的内容请参考一步一步安装。
环境
~~~~~~~
......@@ -34,7 +34,7 @@
+------------+-----------------+------------+------------------------+
Nginx 多组件注意 upstream 的负载模式,需要解决 session 问题
Nginx 多组件注意 upstream 的负载模式, 需要解决 session 问题
安全
~~~~~~~
......@@ -47,5 +47,5 @@ rdp协议 资产的防火墙设置允许 guacamole 与jumpserver 访问
~~~~~~~
最终用户都是通过 Nginx 反向代理访问。
如需要做 HA 或 负载,按照如上方式部署多个应用,数据库做主从,然后在 nginx 代理服务器用负载即可(四层)。
如需要做 HA 或 负载, 按照如上方式部署多个应用, 数据库做主从, 然后在 nginx 代理服务器用负载即可(四层)。
注意:录像需要自己手动同步或者存放在公共目录。
......@@ -29,7 +29,7 @@
# 获取 epel-release 源
$ yum -y install epel-release
# 设置防火墙,开放 80 443 2222 端口
# 设置防火墙, 开放 80 443 2222 端口
$ firewall-cmd --zone=public --add-port=80/tcp --permanent
$ firewall-cmd --zone=public --add-port=443/tcp --permanent
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent
......@@ -156,7 +156,7 @@
}
server {
# 推荐使用 https 访问,如果不使用 https 请自行注释下面的选项
# 推荐使用 https 访问, 如果不使用 https 请自行注释下面的选项
listen 443;
server_name www.jumpserver.org; # 自行修改成你的域名
ssl on;
......@@ -179,7 +179,7 @@
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径,如果修改安装目录,此处需要修改
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
......@@ -217,7 +217,7 @@
.. code-block:: shell
# nginx 测试并启动,如果报错请按报错提示自行解决
# nginx 测试并启动, 如果报错请按报错提示自行解决
$ nginx -t
$ systemctl start nginx
......@@ -228,7 +228,7 @@
$ sftp -P2222 admin@192.168.100.100
密码: admin
# 如果是用在 Windows 下,Xshell Terminal 登录语法如下
# 如果是用在 Windows 下, Xshell Terminal 登录语法如下
$ ssh admin@192.168.100.100 2222
$ sftp admin@192.168.100.100 2222
密码: admin
......
......@@ -30,7 +30,7 @@
# 安装 mariadb 服务
$ yum install -y install mariadb mariadb-devel mariadb-server
# 设置防火墙,开放 3306 端口 给 jumpserver 访问
# 设置防火墙, 开放 3306 端口 给 jumpserver 访问
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.30" port protocol="tcp" port="3306" accept"
$ firewall-cmd --reload
......@@ -43,11 +43,11 @@
.. code-block:: shell
# 创建数据库及授权,192.168.100.30 是 jumpserver 服务器的 ip
# 创建数据库及授权, 192.168.100.30 是 jumpserver 服务器的 ip
$ mysql -uroot
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'192.168.100.30' identified by 'weakPassword';
> flush privileges;
> quit
# 数据库的主从设置请参考其官方,之后会补上
# 数据库的主从设置请参考其官方, 之后会补上
......@@ -30,7 +30,7 @@
$ yum install -y install epel-release
$ yum install -y redis
# 设置防火墙,开放 6379 端口 给 jumpserver 访问
# 设置防火墙, 开放 6379 端口 给 jumpserver 访问
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.30" port protocol="tcp" port="6379" accept"
$ firewall-cmd --reload
......@@ -44,10 +44,10 @@
...
# bind 127.0.0.1 # 注释这行,新增如下内容
# bind 127.0.0.1 # 注释这行, 新增如下内容
bind 0.0.0.0
requirepass weakPassword # redis 连接密码
maxmemory-policy allkeys-lru # 清理策略,优先移除最近未使用的key
maxmemory-policy allkeys-lru # 清理策略, 优先移除最近未使用的key
...
......@@ -56,4 +56,4 @@
# 启动 redis
$ systemctl start redis
# redis 的主从设置请参考其官方,之后会补上
# redis 的主从设置请参考其官方, 之后会补上
......@@ -29,7 +29,7 @@
# 安装依赖包
$ yum -y install gcc epel-release git
# 设置防火墙,开放 80 端口给 nginx 访问,开放 8080 端口给 coco 和 guacamole 访问
# 设置防火墙, 开放 80 端口给 nginx 访问, 开放 8080 端口给 coco 和 guacamole 访问
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="80" accept"
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.40" port protocol="tcp" port="8080" accept"
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.50" port protocol="tcp" port="8080" accept"
......@@ -77,11 +77,11 @@
.. 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用来注册服务账号不在使用原来的注册接受机制
# 预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
......@@ -94,7 +94,7 @@
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间默认24小时, 也可以设置浏览器关闭则过期
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
......@@ -146,7 +146,7 @@
.. code-block:: nginx
# 修改 nginx 配置文件(如果无法正常访问,请注释掉 nginx.conf 的 server 所有字段)
# 修改 nginx 配置文件(如果无法正常访问, 请注释掉 nginx.conf 的 server 所有字段)
$ vi /etc/nginx/conf.d/jumpserver.conf
server {
......@@ -156,11 +156,11 @@
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location / {
......@@ -173,15 +173,15 @@
.. code-block:: shell
# nginx 测试并启动,如果报错请按报错提示自行解决
# nginx 测试并启动, 如果报错请按报错提示自行解决
$ nginx -t
$ systemctl start nginx
# 运行 Jumpserver
$ cd /opt/jumpserver
$ ./jms start all # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本,使用方式./jms start|stop|status all 后台运行请添加 -d 参数
# 新版本更新了运行脚本, 使用方式./jms start|stop|status all 后台运行请添加 -d 参数
# 访问 http://192.168.100.30 默认账号: admin 密码: admin
# 多节点部署,请参考此文档,设置数据库时请选择从库,其他的一样
# 多节点部署, 请参考此文档, 设置数据库时请选择从库, 其他的一样
......@@ -28,7 +28,7 @@
# 升级系统
$ yum upgrade -y
# 设置防火墙,开放 2222 5000 端口 给 nginx 访问
# 设置防火墙, 开放 2222 5000 端口 给 nginx 访问
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="2222" accept"
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="5000" accept"
$ firewall-cmd --reload
......
......@@ -29,7 +29,7 @@
# 升级系统
$ yum upgrade -y
# 设置防火墙,开放 8081 端口 给 nginx 访问
# 设置防火墙, 开放 8081 端口 给 nginx 访问
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="8081" accept"
$ firewall-cmd --reload
......
Docker 安装
==========================
Jumpserver 封装了一个 All in one Docker,可以快速启动。该镜像集成了所需要的组件,支持使用外置 Database 和 Redis
Jumpserver 封装了一个 All in one Docker, 可以快速启动。该镜像集成了所需要的组件, 支持使用外置 Database 和 Redis
Tips: 不建议在生产中使用, 因为所有软件都打包到一个Docker中了,不是Docker最佳实践
Tips: 不建议在生产中使用, 因为所有软件都打包到一个Docker中了, 不是Docker最佳实践
生产环境部署建议参考 `进阶安装文档 <quickinstall.html>`_
......
......@@ -22,10 +22,10 @@ FAQ
.. code-block:: vim
# 用户管理里面的用户列表 是用来登录jumpserver平台的用户,用户需要先登录jumpserver平台,才能管理或者连接资产
# 资产管理里面的管理用户 是jumpserver用来管理资产需要的服务账户,Linux资产需要root或 NOPASSWD: ALL sudo
权限,Jumpserver使用该用户来 '推送系统用户'、'获取资产硬件信息'等。Windows资产随意指定一个,暂无作用
# 资产管理里面的系统用户 是jumpserver用户连接资产需要的登录账户,Linux资产可以自动推送该系统用户到资产上,
# 用户管理里面的用户列表 是用来登录jumpserver平台的用户, 用户需要先登录jumpserver平台, 才能管理或者连接资产
# 资产管理里面的管理用户 是jumpserver用来管理资产需要的服务账户, Linux资产需要root或 NOPASSWD: ALL sudo
权限, Jumpserver使用该用户来 '推送系统用户'、'获取资产硬件信息'等。Windows资产随意指定一个, 暂无作用
# 资产管理里面的系统用户 是jumpserver用户连接资产需要的登录账户, Linux资产可以自动推送该系统用户到资产上,
Windows需要指定资产上已经创建的系统用户
2. input/output error, 通常jumpserver所在服务器字符集问题
......@@ -41,14 +41,14 @@ FAQ
$ apt-get install language-pack-zh-hans
$ echo 'LANG="zh_CN.UTF-8"' > /etc/default/locale
如果任然报input/output error,尝试执行 yum update 后重启服务器(仅测试中参考使用,实际运营服务器请谨慎操作)
如果任然报input/output error, 尝试执行 yum update 后重启服务器(仅测试中参考使用, 实际运营服务器请谨慎操作)
3. luna 无法访问
.. code-block:: vim
# Luna 打开网页提示403 Forbidden错误,一般是nginx配置文件的luna路径不正确或者下载了源代码,请重新下载编译好的代码
# Luna 打开网页提示502 Bad Gateway错误,一般是selinux和防火墙的问题,请根据nginx的errorlog来检查
# Luna 打开网页提示403 Forbidden错误, 一般是nginx配置文件的luna路径不正确或者下载了源代码, 请重新下载编译好的代码
# Luna 打开网页提示502 Bad Gateway错误, 一般是selinux和防火墙的问题, 请根据nginx的errorlog来检查
4. 录像问题
......@@ -56,10 +56,10 @@ FAQ
# 默认录像存储位置在jumpserver/data/media 可以通过映射或者软连接方式来使用其他目录
# 录像和命令记录存储到其他位置,可以到 Jumpserver 系统设置-终端设置 里面进行设置
# 录像和命令记录存储到其他位置, 可以到 Jumpserver 系统设置-终端设置 里面进行设置
# 修改后,需要修改在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录
# 注意,命令记录需要所有保存地址都正常可用,否则 历史会话 和 命令记录 页面无法正常访问
# 修改后, 需要修改在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录
# 注意, 命令记录需要所有保存地址都正常可用, 否则 历史会话 和 命令记录 页面无法正常访问
5. 在终端修改管理员密码及新建超级用户
......@@ -99,11 +99,11 @@ FAQ
.. code-block:: yaml
# 找到如下行(可参考 django 设置 session 过期时间),修改你要的设置即可
# 找到如下行(可参考 django 设置 session 过期时间), 修改你要的设置即可
# SESSION_COOKIE_AGE: 86400
# SESSION_EXPIRE_AT_BROWSER_CLOSE: false
# 如下,设置关闭浏览器 cookie 失效,则修改为
# 如下, 设置关闭浏览器 cookie 失效, 则修改为
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
......@@ -120,10 +120,10 @@ FAQ
.. code-block:: nginx
# 具体表现为在luna页面一会可以连接资产,一会就不行,需要多次刷新页面
# 如果从开发者工具里面看,可以看到部分不正常的 502 socket.io
# 此问题一般是由最前端一层的nginx反向代理造成的,需要在每层的代理上添加(注意是每层)
$ vi /etc/nginx/conf.d/jumpserver.conf # 配置文件所在目录,自行修改
# 具体表现为在luna页面一会可以连接资产, 一会就不行, 需要多次刷新页面
# 如果从开发者工具里面看, 可以看到部分不正常的 502 socket.io
# 此问题一般是由最前端一层的nginx反向代理造成的, 需要在每层的代理上添加(注意是每层)
$ vi /etc/nginx/conf.d/jumpserver.conf # 配置文件所在目录, 自行修改
... # 省略
......@@ -152,7 +152,7 @@ FAQ
}
...
# 为了便于理解,附上一份 demo 网站的配置文件参考
# 为了便于理解, 附上一份 demo 网站的配置文件参考
$ vi /etc/nginx/conf.d/jumpserver.conf
server {
......@@ -162,7 +162,7 @@ FAQ
client_max_body_size 100m; # 上传录像大小限制
location / {
# 这里的IP是后端服务器的IP,后端服务器就是文档一步一步安装来的
# 这里的IP是后端服务器的IP, 后端服务器就是文档一步一步安装来的
proxy_pass http://192.168.244.144;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
......@@ -199,12 +199,12 @@ FAQ
# 这是因为系统用户的协议和资产的协议不一致导致的
# 检查系统用户的协议和资产的协议
# 如果是更新了版本 Windows资产 出现的问题,请执行下面代码解决
# 如果是更新了版本 Windows资产 出现的问题, 请执行下面代码解决
$ source /opt/py3/bin/activate
$ cd /opt/jumpserver/utils
$ sh 2018_07_15_set_win_protocol_to_ssh.sh
# 如果不存在 2018_07_15_set_win_protocol_to_ssh.sh 脚本,可以手动执行下面命令解决
# 如果不存在 2018_07_15_set_win_protocol_to_ssh.sh 脚本, 可以手动执行下面命令解决
$ source /opt/py3/bin/activate
$ cd /opt/jumpserver/apps
$ python manage.py shell
......@@ -213,22 +213,22 @@ FAQ
>>> exit()
11. 重启服务器后无法访问 Jumpserver,页面提示502 或者 403等
11. 重启服务器后无法访问 Jumpserver, 页面提示502 或者 403等
.. code-block:: shell
# CentOS 7 临时关闭
$ setenforce 0 # 临时关闭 selinux,重启后失效
$ systemctl stop firewalld.service # 临时关闭防火墙,重启后失效
$ setenforce 0 # 临时关闭 selinux, 重启后失效
$ systemctl stop firewalld.service # 临时关闭防火墙, 重启后失效
# Centos 7 如需永久关闭,还需执行下面步骤
# Centos 7 如需永久关闭, 还需执行下面步骤
$ sed -i "s/enforcing/disabled/g" /etc/selinux/config # 禁用 selinux
$ systemctl disable firewalld.service # 禁用防火墙
# Centos 7 在不关闭 selinux 和 防火墙 的情况下使用 Jumpserver
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco
--permanent 永久生效,没有此参数重启后失效
--permanent 永久生效, 没有此参数重启后失效
$ firewall-cmd --reload # 重新载入规则
......
......@@ -5,7 +5,7 @@
.. code-block:: vim
# 一般是由于时间不同步,或者网络有问题导致的
# 一般是由于时间不同步, 或者网络有问题导致的
# 可以尝试下载 releases 包
2. pip install 提示 ssl 错误
......@@ -18,14 +18,14 @@
.. code-block:: vim
# 一般是由于网络不好,导致下载文件失败,重新执行命令即可
# 如果多次重试均无效,请更换网络环境
# 一般是由于网络不好, 导致下载文件失败, 重新执行命令即可
# 如果多次重试均无效, 请更换网络环境
4. pip install 提示 Could not find a version that satisfies the requirement xxxxxx==x.x.xx(版本)
.. code-block:: shell
# 一般是由于镜像源未同步,-i 指定官方源即可,如:
# 一般是由于镜像源未同步, -i 指定官方源即可, 如:
$ pip install -r requirement.txt -i https://pypi.org/simple
$ pip install xxxxx==x.x.xx -i https://pypi.org/simple
......@@ -40,7 +40,7 @@
.. code-block:: vim
# 这是由于 config.yml 里面的内容格式不对,请参考安装文档的说明,把提示的内容与上一行对齐即可
# 这是由于 config.yml 里面的内容格式不对, 请参考安装文档的说明, 把提示的内容与上一行对齐即可
7. sh make_migrations.sh 时报错 Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
......@@ -49,10 +49,10 @@
# 一般是由于 py3 环境未载入
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
# 如果已经在 py3 虚拟环境下,任然报 Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
# 如果已经在 py3 虚拟环境下, 任然报 Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
$ cd /opt/jumpserver/requirements
$ pip install -r requirements.txt
# 然后重新执行 sh make_migrations.sh
......@@ -70,8 +70,8 @@
.. code-block:: vim
# 如果没有error提示进程无法启动,那么这是正常现象
# 如果不想在前台启动,可以使用 ./jms start all -d 在后台启动
# 如果没有error提示进程无法启动, 那么这是正常现象
# 如果不想在前台启动, 可以使用 ./jms start all -d 在后台启动
10. 执行 ./jms start all 后提示 xxx is stopped
......@@ -85,14 +85,14 @@
.. code-block:: vim
# 这是严格模式的警告,可以参考后面的url解决,或者忽略
# 这是严格模式的警告, 可以参考后面的url解决, 或者忽略
12. 启动 jumpserver 后,访问 8080 端口页面显示不正常
12. 启动 jumpserver 后, 访问 8080 端口页面显示不正常
.. code-block:: vim
# 这是因为你在 config.yml 里面设置了 DEBUG: false
# 跟着教程继续操作,后面搭建 nginx 代理即可正常访问
# 跟着教程继续操作, 后面搭建 nginx 代理即可正常访问
13. 执行 ./cocod start 后提示 No module named 'jms'
......@@ -101,7 +101,7 @@
# 一般是由于 py3 环境未载入
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
# 如果已经在 py3 虚拟环境下
......@@ -113,19 +113,19 @@
.. code-block:: shell
# 这是由于 coco 注册未成功造成的,需要重新注册 (能正常访问 jumpserver 页面后再处理)
# 这是由于 coco 注册未成功造成的, 需要重新注册 (能正常访问 jumpserver 页面后再处理)
# 到 Jumpserver后台 会话管理-终端管理 删掉 coco 的注册
# 必须到 Jumpserver后台 会话管理-终端管理 删掉 coco 的注册
# 一定要先到 Jumpserver后台 会话管理-终端管理 删掉 coco 的注册
$ cd /opt/coco && ./cocod stop
$ rm /opt/coco/data/data/keys/.access_key # coco, 如果你是按文档安装的,key应该在这里,如果不存在key文件直接下一步
$ rm /opt/coco/data/data/keys/.access_key # coco, 如果你是按文档安装的, key应该在这里, 如果不存在key文件直接下一步
$ ./cocod start -d # 正常运行后到Jumpserver 会话管理-终端管理 里面接受coco注册
15. 执行 ./cocod start 后提示 Failed register terminal unknow: xxxx
.. code-block:: vim
这是因为当前系统的 hostname 有 coco 不支持的字符,需要手动指定 coco 的 NAME
这是因为当前系统的 hostname 有 coco 不支持的字符, 需要手动指定 coco 的 NAME
$ cd /opt/coco/
$ vi config.yml
......@@ -139,7 +139,7 @@
.. code-block:: shell
这是一个小 bug,之后的版本会修复掉
这是一个小 bug, 之后的版本会修复掉
$ cd /opt/coco
$ mkdir keys logs
......@@ -149,26 +149,26 @@
.. code-block:: vim
# 这是因为 coco 无法连接到 jumpserver 报的错误,确定 http://xxxx:8080 设置正确(配置文件 coco/config.yml)
# 如果 jumpserver 的IP和端口不对,请手动修改 config.yml 的 CORE_HOST
# 这是因为 coco 无法连接到 jumpserver 报的错误, 确定 http://xxxx:8080 设置正确(配置文件 coco/config.yml)
# 如果 jumpserver 的IP和端口不对, 请手动修改 config.yml 的 CORE_HOST
18. 运行 ./cocod start 后提示 Unexpected error occur: 'AppService' object has no attribute 'get_system_user_cmd_filter_rules'
.. code-block:: vim
# 这是因为你的 pip 依赖包未正确安装,参考本文档第 4 条
# 这是因为你的 pip 依赖包未正确安装, 参考本文档第 4 条
19. 通过 nginx 代理的端口访问 jumpserver 页面显示不正常
.. code-block:: nginx
这是因为你没有按照教程进行安装,修改了安装目录,需要在 nginx 的配置文件里面修改资源路径
这是因为你没有按照教程进行安装, 修改了安装目录, 需要在 nginx 的配置文件里面修改资源路径
$ vi /etc/nginx/conf.d/jumpserver.conf
...
server {
listen 80; # 代理端口,以后将通过此端口进行访问,不再通过8080端口
listen 80; # 代理端口, 以后将通过此端口进行访问, 不再通过8080端口
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
......@@ -176,20 +176,20 @@
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径,如果修改安装目录,此处需要修改
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器,请填写它的ip
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
......@@ -197,7 +197,7 @@
}
location /coco/ {
proxy_pass http://localhost:5000/coco/; # 如果coco安装在别的服务器,请填写它的ip
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;
......@@ -205,7 +205,7 @@
}
location /guacamole/ {
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器,请填写它的ip
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
......@@ -216,14 +216,14 @@
}
location / {
proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器,请填写它的ip
proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器, 请填写它的ip
}
}
...
20. 访问 luna 页面提示 Luna是单独部署的一个程序,你需要部署luna,coco,配置nginx做url分发...
20. 访问 luna 页面提示 Luna是单独部署的一个程序, 你需要部署luna, coco, 配置nginx做url分发...
.. code-block:: vim
# 请通过 nginx 代理的端口访问 jumpserver 页面,不要再直接访问 8080 端口
# 请通过 nginx 代理的端口访问 jumpserver 页面, 不要再直接访问 8080 端口
......@@ -2,54 +2,54 @@ LDAP 使用说明
------------------------------
- LDAP 支持 使用 LADP 与 Windows AD 的用户作为 jumpserver 登录用户
- 已经存在的用户不能与要登录的 LDAP 用户有用户名和邮箱同名,具有唯一性
- 已经存在的用户不能与要登录的 LDAP 用户有用户名和邮箱同名, 具有唯一性
1. LDAP 设置说明
.. code-block:: vim
LDAP地址 ldap://serverurl:389 或者 ldaps://serverurl:636(需要勾选ssl)
# 此处是设置LDAP的服务器,推荐使用IP,防止解析问题
# 此处是设置LDAP的服务器,推荐使用IP, 防止解析问题
绑定DN cn=admin,dc=jumpserver,dc=org
# 这里是设置认证用户的信息,jumpserver会使用这个用户去校验ldap的信息是否正确
# 这里是设置认证用户的信息, jumpserver会使用这个用户去校验ldap的信息是否正确
密码 # 上面认证用户的密码
用户OU ou=jumpserver,dc=jumpserver,dc=org
# 这里是设置用来登录jumpserver的组织单元,比如我要用某个ou的用户来登录jumpserver
# 这里是设置用来登录jumpserver的组织单元, 比如我要用某个ou的用户来登录jumpserver
# 多OU用法 ou=jumpserver,dc=jumpserver,dc=org | ou=user,dc=jumpserver,dc=org | ou=xxx,dc=jumpserver,dc=org
用户过滤器 (cn=%(user)s)
# 这里是设置筛选ldap用户的哪些属性
# 这里是设置筛选ldap用户的哪些属性, 不能有多余的空格
LADP属性映射 {"username": "cn", "name": "sn", "email": "mail"}
username name email 是jumpserver的用户属性(不可更改)
cn sn mail 是ldap的用户属性(可自定义)
# 这里的意思是,把ldap用户的属性映射到jumpserver上
# 这里的意思是, 把ldap用户的属性映射到jumpserver上
使用SSL
# 勾选后 LDAP地址 需要设置成 ldaps://serverurl:636
启动LDAP认证
# 如果需要使用 LDAP或域用户 登录 jumpserver ,则必选
# 如果需要使用 LDAP或域用户 登录 jumpserver,则必选
2. 补充
.. code-block:: vim
DN 一定要是完整的DN,不能跳过OU,可以使用其他工具查询
DN 一定要是完整的DN, 不能跳过OU, 可以使用其他工具查询
如:cn=admin,ou=aaa,dc=jumpserver,dc=org,必须要写成cn=admin,ou=aaa,dc=jumpserver,dc=org 不能缩写成cn=admin,dc=jumpserver,dc=org
用户OU 用户OU可以只写顶层OU,不写子OU
用户OU 用户OU可以只写顶层OU, 不写子OU
如:ou=aaa,ou=bbb,ou=ccc,dc=jumpserver,dc=org,可以只写ou=ccc,dc=jumpserver,dc=org,根据需求自行修改
用户过滤器 筛选用户的规则,点击测试连接就是根据这个规则到用户OU里面去检索用户,可以自定义规则
如:(uid=%(user)s) 或 (sAMAccountName=%(user)s) 等,这里的属性需要与下面的属性映射设置一致
用户过滤器 筛选用户的规则, 点击测试连接就是根据这个规则到用户OU里面去检索用户, 可以自定义规则
如:(uid=%(user)s) 或 (sAMAccountName=%(user)s) 等, 这里的属性需要与下面的属性映射设置一致
LADP属性映射 username name email 这三项不可修改删除,属性映射的字段必须存在,且登录用户名和邮件不可以重复
LADP属性映射 username name email 这三项不可修改删除, 属性映射的字段必须存在, 且登录用户名和邮件不可以重复
如:{"username": "uid", "name": "sn", "email": "mail"} 或 {"username": "sAMAccountName", "name": "cn", "email": "mail"}
"username": "uid" 这里的 uid 必须和上面的 (uid=%(user)s) 这里的 uid 一致
如果上面是(sAMAccountName=%(user)s) 那么下面也应该修改为{"username": "sAMAccountName",
username 是 jumpserver 的用户用户名,name 是 jumpserver 的用户名称,mail 是 jumpserver 用户的邮箱
属性映射的意思是把ldap的什么属性来作为jumpserver的用户用户名,把ldap的什么属性作为jumpserver的用户名称,把ldap的什么属性作为jumpserver的用户邮箱
username 是 jumpserver 的用户用户名, name 是 jumpserver 的用户名称, mail 是 jumpserver 用户的邮箱
属性映射的意思是把ldap的什么属性来作为jumpserver的用户用户名, 把ldap的什么属性作为jumpserver的用户名称, 把ldap的什么属性作为jumpserver的用户邮箱
......@@ -7,21 +7,21 @@ Multi-Factor Authentication (MFA) 遵循基于时间的一次性密码 (TOTP)
.. code-block:: vim
# 关闭也是在这里,点击此处的重置即可
# 部分安卓手机无法使用 Google Authenticator ,可以尝试使用系统自带的【扫一扫】工具
# 关闭也是在这里, 点击此处的重置即可
# 部分安卓手机无法使用 Google Authenticator, 可以尝试使用系统自带的【扫一扫】工具
# 或者尝试使用第三方软件 (如 Microsoft Authenticator 、身份宝 等)
MFA遗失无法登陆
.. code-block:: vim
# 普通用户联系管理员关闭MFA,登录成功后用户在个人信息里面重新绑定.
# 如果管理员遗失无法登陆, 修改数据库 users_user 表对应用户的 otp_level 为 0 , 重新登陆绑定即可
# 普通用户联系管理员关闭MFA, 登录成功后用户在个人信息里面重新绑定.
# 如果管理员遗失无法登陆, 修改数据库 users_user 表对应用户的 otp_level 为 0, 重新登陆绑定即可
$ mysql -uroot
> use jumpserver;
> update users_user set otp_level='0' where username='admin'; # admin 为你要修改的用户
# 如果在系统设置里面开启的 MFA 二次认证 ,需要修改数据库 settings 表 SECURITY_MFA_AUTH 的 value 值为 false
# 如果在系统设置里面开启的 MFA 二次认证, 需要修改数据库 settings 表 SECURITY_MFA_AUTH 的 value 值为 false
mysql -uroot
> use jumpserver;
> update settings set value='false' where name='SECURITY_MFA_AUTH';
......@@ -5,11 +5,11 @@ RDP 协议资产连接错误排查思路
.. code-block:: vim
(1). 如果白屏 检查nginx配置文件的guacamole设置ip是否正确,检查终端管理的gua状态是否在线
(1). 如果白屏 检查nginx配置文件的guacamole设置ip是否正确, 检查终端管理的gua状态是否在线
(2). 如果显示没有权限 是你 终端管理里 guacamole 状态为红色或者没有注册成功
(3). 如果显示未知问题 可能是你的资产填写的端口不对,或者授权的系统用户的协议不是rdp
(3). 如果显示未知问题 可能是你的资产填写的端口不对, 或者授权的系统用户的协议不是rdp
(4). 提示无法连接服务器 一般情况下是登录的系统账户不正确或者防火墙设置有误, 资产的信息填写不正确也会报这个错误
(5). 提示网络问题无法连接或者超时,请检查网络连接并重试,或联系管理员 一般情况下网络有问题
(5). 提示网络问题无法连接或者超时, 请检查网络连接并重试, 或联系管理员 一般情况下网络有问题
1. 检查终端是否在线
......@@ -17,7 +17,7 @@ RDP 协议资产连接错误排查思路
.. code-block:: shell
# 如果终端不在线,请检查 guacamole 的 BOOTSTRAP_TOKEN 是否与 jumpserver 一致, 如果不一致请修改后重启
# 如果终端不在线, 请检查 guacamole 的 BOOTSTRAP_TOKEN 是否与 jumpserver 一致, 如果不一致请修改后重启
$ cat /opt/jumpserver/config.yml | grep BOOTSTRAP_TOKEN
$ env | grep BOOTSTRAP_TOKEN
......@@ -27,14 +27,14 @@ RDP 协议资产连接错误排查思路
$ /etc/init.d/guacd start
$ sh /config/tomcat8/bin/startup.sh
# docker 部署请直接删除容器后重建,记得一定要先在 终端管理 删除不在线的组件
# docker 部署请直接删除容器后重建, 记得一定要先在 终端管理 删除不在线的组件
$ docker stop jms_guacamole
$ docker rm jms_guacamole
$ docker run --name jms_guacamole -d -p 8081:8081 -e JUMPSERVER_SERVER=http://<Jumpserver_url> -e BOOTSTRAP_TOKEN=xxxxxx jumpserver/jms_guacamole:1.4.8
# 正常运行后到Jumpserver 会话管理-终端管理 里面查看 gua 的状态是否为绿色
2. 登录要连接的windows资产,检查远程设置和防火墙设置
2. 登录要连接的windows资产, 检查远程设置和防火墙设置
.. code-block:: vim
......@@ -47,33 +47,33 @@ RDP 协议资产连接错误排查思路
.. image:: _static/img/faq_windows_firewalld.jpg
3. 登录要连接的windows资产,检查用户和IP信息(Windows目前还不支持推送,所以必须使用资产上面已存在的用户进行登录)
3. 登录要连接的windows资产, 检查用户和IP信息(Windows目前还不支持推送, 所以必须使用资产上面已存在的用户进行登录)
.. code-block:: vim
# 注:因为 windows 暂时不支持推送,所以必须使用资产上面已经存在的账户进行登录,如 administrator 账户
# 注:因为 windows 暂时不支持推送, 所以必须使用资产上面已经存在的账户进行登录, 如 administrator 账户
.. image:: _static/img/faq_windows_02.jpg
4. 创建Windows资产管理用户(如果是域资产,格式是uesr@domain.com)
4. 创建Windows资产管理用户(如果是域资产, 格式是uesr@domain.com)
.. code-block:: vim
# 不带域的用户直接输入用户名即可,如 administrator
# 域用户的用户名格式为 user@domain.com,如 administrator@jumpserver.org
# 不带域的用户直接输入用户名即可, 如 administrator
# 域用户的用户名格式为 user@domain.com, 如 administrator@jumpserver.org
.. image:: _static/img/faq_windows_03.jpg
5. 创建Windows资产系统用户(如果是域资产,格式是uesr@domain.com,注意协议不要选错)
5. 创建Windows资产系统用户(如果是域资产, 格式是uesr@domain.com, 注意协议不要选错)
.. code-block:: vim
# 注:因为 windows 暂时不支持推送,所以必须使用资产上面已经存在的账户进行登录,如 administrator 账户
# 不带域的用户直接输入用户名即可,如 administrator
# 域用户的用户名格式为 user@domain.com,如 administrator@jumpserver.org
# 如果想让用户登录资产时自己输入资产的账户密码,可以点击系统用户的名称 点击清除认证信息
# 注:因为 windows 暂时不支持推送, 所以必须使用资产上面已经存在的账户进行登录, 如 administrator 账户
# 不带域的用户直接输入用户名即可, 如 administrator
# 域用户的用户名格式为 user@domain.com, 如 administrator@jumpserver.org
# 如果想让用户登录资产时自己输入资产的账户密码, 可以点击系统用户的名称 点击清除认证信息
# 此处必须输入能正确登录 windows 资产的 账户密码
# 如不确实是不是因为密码或者账户信息错误导致的无法登录,可以使用手动登录功能(在系统用户处设置)
# 如不确实是不是因为密码或者账户信息错误导致的无法登录, 可以使用手动登录功能(在系统用户处设置)
.. image:: _static/img/faq_windows_04.jpg
......@@ -85,11 +85,11 @@ RDP 协议资产连接错误排查思路
.. code-block:: vim
# 先定位到 windows 的资产,然后授权,如果资产用户密码不一致,请不要直接在节点上授权
# 先定位到 windows 的资产, 然后授权, 如果资产用户密码不一致, 请不要直接在节点上授权
.. image:: _static/img/faq_windows_06.jpg
8. 使用web terminal登录(如果登录报错,检查防火墙的设置,可以参考FAQ)
8. 使用web terminal登录(如果登录报错, 检查防火墙的设置, 可以参考FAQ)
.. image:: _static/img/faq_windows_07.jpg
......@@ -97,8 +97,8 @@ RDP 协议资产连接错误排查思路
.. code-block:: vim
# 直接拖拽文件到 windows 窗口即可,文件上传后在 Guacamole RDP上的 G 目录查看
# 下载在 luna 页面,按 ctrl+alt+shift ,选择文件下载即可
# 直接拖拽文件到 windows 窗口即可, 文件上传后在 Guacamole RDP上的 G 目录查看
# 下载在 luna 页面, 按 ctrl+alt+shift, 选择文件下载即可
.. image:: _static/img/faq_windows_08.jpg
......
sftp 使用说明
-------------------------------------------------------
在Windows上使用 sftp 工具传输文件到 Linux 系统,默认的上传目录在 /tmp ,其他目录没有权限
在Windows上使用 sftp 工具传输文件到 Linux 系统, 默认的上传目录在 /tmp, 其他目录没有权限
.. image:: _static/img/faq_sftp_01.jpg
.. code-block:: shell
# 连接成功后,可以看到当前拥有权限的资产,打开资产,然后选择系统用户,即可到资产的 /tmp 目录
# 连接成功后, 可以看到当前拥有权限的资产, 打开资产, 然后选择系统用户, 即可到资产的 /tmp 目录
$ sftp -P2222 admin@192.168.244.144 # Linux 语法
$ sftp 2222 admin@192.168.244.144 # xshell 语法
......
......@@ -5,9 +5,9 @@ SSH 协议资产连接错误排查思路
.. code-block:: vim
(1). 检查管理用户的权限是否正确,权限需要与root权限一致
(2). 检查资产的防火墙策略,可以在资产上面新建个用户,尝试用此用户在jumpserver服务器上进行ssh连接
(3). 检查资产的ssh策略,确保可以被jumpserver应用访问
(1). 检查管理用户的权限是否正确, 权限需要与root权限一致
(2). 检查资产的防火墙策略, 可以在资产上面新建个用户, 尝试用此用户在jumpserver服务器上进行ssh连接
(3). 检查资产的ssh策略, 确保可以被jumpserver应用访问
1. 检查终端是否在线
......@@ -20,10 +20,10 @@ SSH 协议资产连接错误排查思路
$ cat /opt/coco/config.yml | grep BOOTSTRAP_TOKEN
$ cd /opt/coco && ./cocod stop
$ rm /opt/coco/data/data/keys/.access_key # coco, 如果你是按文档安装的,key应该在这里,如果不存在,直接下一步
$ rm /opt/coco/data/data/keys/.access_key # coco, 如果你是按文档安装的, key应该在这里, 如果不存在, 直接下一步
$ ./cocod start -d
# docker 部署请直接删除容器后重建,记得一定要先在 终端管理 删除不在线的组件
# docker 部署请直接删除容器后重建, 记得一定要先在 终端管理 删除不在线的组件
$ docker stop jms_coco
$ docker rm jms_coco
$ docker run --name jms_coco -d -p 2222:2222 -p 5000:5000 -e CORE_HOST=http://<Jumpserver_url> -e BOOTSTRAP_TOKEN=xxxxxx jumpserver/jms_coco:1.4.8
......@@ -35,7 +35,7 @@ SSH 协议资产连接错误排查思路
.. code-block:: vim
# 确定已经授权资产给当前登录用户
# 确定 Jumpserver 的版本与 luna 的版本一致,如不一致请参考升级文档进行处理
# 确定 Jumpserver 的版本与 luna 的版本一致, 如不一致请参考升级文档进行处理
# Jumpserver 版本可在 jumpserver页面右下角 看到
# Luna 版本可在 luna页面左下角 看到
......@@ -59,21 +59,21 @@ SSH 协议资产连接错误排查思路
.. code-block:: vim
# 请检查推送
# 在 资产管理-系统用户 下,点击相应的 系统用户名称 可以看到 系统用户详情,右边可以测试
# 在 资产管理-系统用户 下, 点击相应的 系统用户名称 可以看到 系统用户详情, 右边可以测试
.. image:: _static/img/faq_linux_04.jpg
5. 推送成功后无法登录资产,或者推送的系统用户 id 不正确 home 目录权限错误
5. 推送成功后无法登录资产, 或者推送的系统用户 id 不正确 home 目录权限错误
.. code-block:: vim
# 登录该资产,删除掉错误权限的用户,然后重新推送即可
# 登录该资产, 删除掉错误权限的用户, 然后重新推送即可
6. coco 启动时报错 Failed register terminal unknow: xxx-xxx.xxx
.. code-block:: shell
# 这是因为当前系统的 hostname 有 coco 不支持的字符,需要手动指定 coco 的 NAME
# 这是因为当前系统的 hostname 有 coco 不支持的字符, 需要手动指定 coco 的 NAME
$ cd /opt/coco/
$ vi config.yml
......@@ -112,9 +112,9 @@ SSH 协议资产连接错误排查思路
.. code-block:: vim
# 这里是信息填写错误,ip端口应该填coco服务器的ip,端口应该填coco服务的ssh端口(默认2222)
# 这里是信息填写错误, ip端口应该填coco服务器的ip, 端口应该填coco服务的ssh端口(默认2222)
11. 清理celery产生的数据(无法正常推送及连接资产,一直显示........等可以使用,请确定字符集是zh_CN.UTF-8)
11. 清理celery产生的数据(无法正常推送及连接资产, 一直显示........等可以使用, 请确定字符集是zh_CN.UTF-8)
.. code-block:: shell
......@@ -122,7 +122,7 @@ SSH 协议资产连接错误排查思路
$ cd /opt/jumpserver/apps
$ celery -A ops purge -f
# 如果任然异常,手动结束所有jumpserver进程,然后kill掉未能正常结束的jumpserver相关进程,在重新启动jumpserver即可
# 如果任然异常, 手动结束所有jumpserver进程, 然后kill掉未能正常结束的jumpserver相关进程, 在重新启动jumpserver即可
12. 连接测试常见错误
......@@ -132,10 +132,10 @@ SSH 协议资产连接错误排查思路
# 一般都是资产的管理用户不正确
# 提示Failed to connect to the host via ssh: ssh_exchange_identification: read: Connection reset by peer\r\n
# 一般是资产的 ssh 或者 防火墙 做了限制,无法连接资产(资产信息填错也可能会报这个错误)
# 一般是资产的 ssh 或者 防火墙 做了限制, 无法连接资产(资产信息填错也可能会报这个错误)
# 检查防火墙设置以及 /etc/hosts.allow /etc/hosts.deny
# 提示 "MODULE FAILURE","module_stdout":"/bin/sh: 1: /usr/bin/python: not found\r\n","module_stderr":"Shared connection to xx.xx.xx.xx closed.\r\n"
# 提示 "MODULE FAILURE", "module_stdout":"/bin/sh: 1: /usr/bin/python: not found\r\n", "module_stderr":"Shared connection to xx.xx.xx.xx closed.\r\n"
# 一般是资产 python 未安装或者 python 异常
其他问题可参考 `FAQ <faq.html>`_
......@@ -5,7 +5,7 @@
.. code-block:: shell
# 这是因为你修改了本地文件导致代码冲突, 请确认修改的内容并手动进行合并请谨慎处理
# 这是因为你修改了本地文件导致代码冲突, 请确认修改的内容并手动进行合并, 请谨慎处理
# 如果希望保留你的改动
$ git stash
......
......@@ -3,10 +3,10 @@
欢迎来到 Jumpserver 文档。
Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。
Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
改变世界,从一点点开始。
\ No newline at end of file
改变世界, 从一点点开始。
......@@ -13,20 +13,20 @@
├── README.md
├── install // 安装说明
├── logs // 日志目录
├── apps // 管理后台目录,也是各 APP 所在目录
├── apps // 管理后台目录, 也是各 APP 所在目录
│ └── assets // APP 目录
│ │ ├── admin.py
│ │ ├── apps.py // 新版本 Django APP 设置文件
│ │ ├── api.py // API 文件
│ │ ├── __init__.py // 对外暴露的接口,放到该文件中,方便别的 APP 引用
│ │ ├── __init__.py // 对外暴露的接口, 放到该文件中, 方便别的 APP 引用
│ │ ├── migrations // Models Migrations 版本控制目录
│ │ │ └── __init__.py
│ │ ├── models.py // 数据模型目录
│ │ ├── static // APP 下静态资源目录,如果需要
│ │ │ └── assets // 多一层目录,防止资源重名
│ │ ├── static // APP 下静态资源目录, 如果需要
│ │ │ └── assets // 多一层目录, 防止资源重名
│ │ │ └── some_image.png
│ │ ├── templates // APP 下模板目录
│ │ │ └── assets // 多一层目录,防止资源重名
│ │ │ └── assets // 多一层目录, 防止资源重名
│ │ │ └── asset_list.html
│ │ ├── templatetags // 模板标签目录
│ │ ├── tests.py // 测试用例文件
......
......@@ -12,10 +12,10 @@ Jumpserver 项目规范(Draft)
Django 规范
--------------
1. 尽量使用 Class Base View 编程,更少代码
1. 尽量使用 Class Base View 编程, 更少代码
2. 使用 Django Form
3. 每个 URL 独立命名,不要硬编码,同理 Static 也是
4. 数据库表名手动指定,不要使用默认
3. 每个 URL 独立命名, 不要硬编码, 同理 Static 也是
4. 数据库表名手动指定, 不要使用默认
5. 代码优雅简洁
6. 注释明确优美
7. 测试案例尽可能完整
......@@ -24,8 +24,8 @@ Django 规范
代码风格
-----------
Python 方面大致的风格,我们采用 pocoo 的\ `Style
Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
Python 方面大致的风格, 我们采用 pocoo 的\ `Style
Guidance`_\ , 但是有些细节部分会尽量放开 参考国内翻译
基本的代码布局
~~~~~~~~~~~~~~
......@@ -33,23 +33,23 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
缩进
^^^^^^^^
1. Python 严格采用4个空格的缩进,任何 Python 代码都都必须遵守此规定。
2. Web 部分代码(HTML、CSS、JavaScript),Node.js 采用2空格缩进,同样不使用 TAB。
之所以与 Python 不同,是因为 JS 中有大量回调式的写法,2空格可以显著降低视觉上的负担。
1. Python 严格采用4个空格的缩进, 任何 Python 代码都都必须遵守此规定。
2. Web 部分代码(HTML、CSS、JavaScript), Node.js 采用2空格缩进, 同样不使用 TAB。
之所以与 Python 不同, 是因为 JS 中有大量回调式的写法, 2空格可以显著降低视觉上的负担。
最大行长度
^^^^^^^^^^^^^
按 PEP8 规范,Python 一般限制最大79个字符,
但是 Django 的命名,URL 等通常比较长,
而且21世纪都是宽屏了,所以我们限制最大120字符
按 PEP8 规范, Python 一般限制最大79个字符,
但是 Django 的命名, URL 等通常比较长,
而且21世纪都是宽屏了, 所以我们限制最大120字符
**补充说明:HTML 代码不受此规范约束。**
长语句缩进
^^^^^^^^^^^^
编写长语句时,可以使用换行符"\"换行。在这种情况下,下一行应该与上一行的最后一个"."句点或"="对齐,或者是缩进4个空格符。
编写长语句时, 可以使用换行符"\"换行。在这种情况下, 下一行应该与上一行的最后一个"."句点或"="对齐, 或者是缩进4个空格符。
::
......@@ -60,14 +60,14 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
.order_by(MyModel.name.desc()) \
.limit(10)
如果你使用括号"()"或花括号"{}"为长语句换行,那么下一行应与括号或花括号对齐:
如果你使用括号"()"或花括号"{}"为长语句换行, 那么下一行应与括号或花括号对齐:
::
this_is_a_very_long(function_call, 'with many parameters',
23, 42, 'and even more')
对于元素众多的列表或元组,在第一个"["或"("之后马上换行:
对于元素众多的列表或元组, 在第一个"["或"("之后马上换行:
::
......@@ -82,7 +82,7 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
空行
^^^^^^
顶层函数与类之间空两行,此外都只空一行。不要在代码中使用太多的空行来区分不同的逻辑模块。
顶层函数与类之间空两行, 此外都只空一行。不要在代码中使用太多的空行来区分不同的逻辑模块。
::
......@@ -109,7 +109,7 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
一般空格规则
^^^^^^^^^^^^
1. 单目运算符与运算对象之间不空格(例如,-,~等),即使单目运算符位于括号内部也一样。
1. 单目运算符与运算对象之间不空格(例如, -, ~等), 即使单目运算符位于括号内部也一样。
2. 双目运算符与运算对象之间要空格。
::
......@@ -122,28 +122,28 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
比较
^^^^
1. 任意类型之间的比较,使用"=="和"!="。
2. 与单例(singletons)进行比较时,使用 is 和 is not。
3. 永远不要与True或False进行比较(例如,不要这样写:foo ==
False,而应该这样写:not foo)。
1. 任意类型之间的比较, 使用"=="和"!="。
2. 与单例(singletons)进行比较时, 使用 is 和 is not。
3. 永远不要与True或False进行比较(例如, 不要这样写:foo ==
False, 而应该这样写:not foo)。
否定成员关系检查
^^^^^^^^^^^^^^^^
使用 foo not in bar,而不是 not foo in bar。
使用 foo not in bar, 而不是 not foo in bar。
命名约定
~~~~~~~~
1. 类名称:采用骆驼拼写法(CamelCase),首字母缩略词保持大写不变(HTTPWriter,而不是 HttpWriter)。
1. 类名称:采用骆驼拼写法(CamelCase), 首字母缩略词保持大写不变(HTTPWriter, 而不是 HttpWriter)。
2. 变量名:小写_以及_下划线(lowercase_with_underscores)。
3. 方法与函数名:小写_以及_下划线(lowercase_with_underscores)。
4. 常量:大写_以及_下划线(UPPERCASE_WITH_UNDERSCORES)。
5. 预编译的正则表达式:name_re。
6. 受保护的元素以一个下划线为前缀。双下划线前缀只有定义混入类(mixin classes)时才使用。
7. 如果使用关键词(keywords)作为类名称,应在名称后添加后置下划线(trailing underscore)。
允许与内建变量重名,不要在变量名后添加下划线进行区分。如果函数需要访问重名的内建变量,请将内建变量重新绑定为其他名称。
8. 命名要有寓意, 不使用拼音,不使用无意义简单字母命名 (循环中计数例外 for i in)
7. 如果使用关键词(keywords)作为类名称, 应在名称后添加后置下划线(trailing underscore)。
允许与内建变量重名, 不要在变量名后添加下划线进行区分。如果函数需要访问重名的内建变量, 请将内建变量重新绑定为其他名称。
8. 命名要有寓意, 不使用拼音, 不使用无意义简单字母命名 (循环中计数例外 for i in)
9. 命名缩写要谨慎, 尽量是大家认可的缩写
函数和方法的参数:
......@@ -151,16 +151,16 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
1. 类方法:cls 为第一个参数。
2. 实例方法:self 为第一个参数。
3. property函数中使用匿名函数(lambdas)时,匿名函数的第一个参数可以用 x 替代,
3. property函数中使用匿名函数(lambdas)时, 匿名函数的第一个参数可以用 x 替代,
例如:display_name = property(lambda x: x.real_name or x.username)。
文档注释(Docstring,即各方法,类的说明文档注释)
文档注释(Docstring, 即各方法, 类的说明文档注释)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所有文档字符串均以 reStructuredText 格式编写,方便 Sphinx 处理。文档字符串的行数不同,布局也不一样。
如果只有一行,代表字符串结束的三个引号与代表字符串开始的三个引号在同一行。
如果为多行,文档字符串中的文本紧接着代表字符串开始的三个引号编写,代表字符串结束的三个引号则自己独立成一行。
所有文档字符串均以 reStructuredText 格式编写, 方便 Sphinx 处理。文档字符串的行数不同, 布局也不一样。
如果只有一行, 代表字符串结束的三个引号与代表字符串开始的三个引号在同一行。
如果为多行, 文档字符串中的文本紧接着代表字符串开始的三个引号编写, 代表字符串结束的三个引号则自己独立成一行。
(有能力尽可能用英文, 否则请中文优雅注释)
::
......@@ -175,12 +175,12 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
is on its own line.
"""
文档字符串应分成简短摘要(尽量一行)和详细介绍。如果必要的话,摘要与详细介绍之间空一行。
文档字符串应分成简短摘要(尽量一行)和详细介绍。如果必要的话, 摘要与详细介绍之间空一行。
模块头部
~~~~~~~~
模块文件的头部包含有 utf-8 编码声明(如果模块中使用了非 ASCII 编码的字符,建议进行声明),以及标准的文档字符串。
模块文件的头部包含有 utf-8 编码声明(如果模块中使用了非 ASCII 编码的字符, 建议进行声明), 以及标准的文档字符串。
::
......@@ -199,7 +199,7 @@ Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
~~~~~~~~~~~~~~~~
注释的规范与文档字符串编写规范类似。二者均以 reStructuredText 格式编写。
如果使用注释来编写类属性的文档,请在#符号后添加一个冒号":"。
如果使用注释来编写类属性的文档, 请在#符号后添加一个冒号":"。
(有能力尽可能用英文, 否则请中文优雅注释)
::
......
......@@ -4,15 +4,15 @@
组件说明
~~~~~~~~~~~~~~
- Jumpserver 为管理后台,管理员可以通过Web页面进行资产管理、用户管理、资产授权等操作
- Jumpserver 为管理后台, 管理员可以通过Web页面进行资产管理、用户管理、资产授权等操作
- Coco 为 SSH Server 和 Web Terminal Server 。用户可以通过使用自己的账户登录 SSH 或者 Web Terminal 直接访问被授权的资产。不需要知道服务器的账户密码
- Luna 为 Web Terminal Server 前端页面,用户使用 Web Terminal 方式登录所需要的组件
- Guacamole 为 Windows 组件,用户可以通过 Web Terminal 来连接 Windows 资产 (暂时只能通过 Web Terminal 来访问)
- Luna 为 Web Terminal Server 前端页面, 用户使用 Web Terminal 方式登录所需要的组件
- Guacamole 为 Windows 组件, 用户可以通过 Web Terminal 来连接 Windows 资产 (暂时只能通过 Web Terminal 来访问)
端口说明
~~~~~~~~~~~~~~
- Jumpserver 默认端口为 8080/tcp 配置文件在 jumpserver/config.yml
- Coco 默认 SSH 端口为 2222/tcp ,默认 Web Terminal 端口为 5000/tcp 配置文件在 coco/config.yml
- Coco 默认 SSH 端口为 2222/tcp, 默认 Web Terminal 端口为 5000/tcp 配置文件在 coco/config.yml
- Guacamole 默认端口为 8081/tcp 在 docker run 时指定
- Nginx 默认端口为 80/tcp
- Redis 默认端口为 6379/tcp
......
......@@ -7,7 +7,7 @@ CentOS 7 安装文档
- > 开头的行表示需要在 mysql 中执行
- $ 开头的行表示需要执行的命令
本文档适用于有一定web运维经验的管理员或者工程师,文中不会对安装的软件做过多的解释,仅对需要执行的内容注部分注释,更详细的内容请参考一步一步安装。
本文档适用于有一定web运维经验的管理员或者工程师, 文中不会对安装的软件做过多的解释, 仅对需要执行的内容注部分注释, 更详细的内容请参考一步一步安装。
懒人和萌新推荐直接使用 `极速安装文档 <setup_by_fast.html>`_
......@@ -29,18 +29,18 @@ CentOS 7 安装文档
$ yum update -y
# 防火墙 与 selinux 设置说明,如果已经关闭了 防火墙 和 Selinux 的用户请跳过设置
# 防火墙 与 selinux 设置说明, 如果已经关闭了 防火墙 和 Selinux 的用户请跳过设置
$ systemctl start firewalld
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco
--permanent 永久生效,没有此参数重启后失效
--permanent 永久生效, 没有此参数重启后失效
$ firewall-cmd --reload # 重新载入规则
$ setenforce 0
$ sed -i "s/enforcing/disabled/g" /etc/selinux/config
# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
# 修改字符集, 否则可能报 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
......@@ -53,8 +53,8 @@ CentOS 7 安装文档
$ systemctl enable redis
$ systemctl start redis
# 安装 MySQL,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置,支持sqlite3, mysql, postgres等
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下叫mariadb,用法与mysql一致
# 安装 MySQL, 如果不使用 Mysql 可以跳过相关 Mysql 安装和配置, 支持sqlite3, mysql, postgres等
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下叫mariadb, 用法与mysql一致
$ systemctl enable mariadb
$ systemctl start mariadb
# 创建数据库 Jumpserver 并授权
......@@ -62,7 +62,7 @@ CentOS 7 安装文档
$ 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;"
# 安装 Nginx ,用作代理服务器整合 Jumpserver 与各个组件
# 安装 Nginx, 用作代理服务器整合 Jumpserver 与各个组件
$ vi /etc/yum.repos.d/nginx.repo
[nginx]
......@@ -79,10 +79,10 @@ CentOS 7 安装文档
# 配置并载入 Python3 虚拟环境
$ cd /opt
$ python3.6 -m venv py3 # py3 为虚拟环境名称,可自定义
$ python3.6 -m venv py3 # py3 为虚拟环境名称, 可自定义
$ source /opt/py3/bin/activate # 退出虚拟环境可以使用 deactivate 命令
# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,载入环境后默认以下所有命令均在该虚拟环境中运行
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 载入环境后默认以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
# 下载 Jumpserver
......@@ -123,11 +123,11 @@ CentOS 7 安装文档
.. 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用来注册服务账号不在使用原来的注册接受机制
# 预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
......@@ -140,7 +140,7 @@ CentOS 7 安装文档
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间默认24小时, 也可以设置浏览器关闭则过期
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
......@@ -195,7 +195,7 @@ CentOS 7 安装文档
# 运行 Jumpserver
$ cd /opt/jumpserver
$ ./jms start all # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
# 新版本更新了运行脚本, 使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
.. code-block:: shell
......@@ -209,7 +209,7 @@ CentOS 7 安装文档
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
$ systemctl restart docker
# 允许 容器ip 访问宿主 8080 端口,(容器的 ip 可以进入容器查看)
# 允许 容器ip 访问宿主 8080 端口, (容器的 ip 可以进入容器查看)
$ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.17.0.0/16" port protocol="tcp" port="8080" accept"
$ firewall-cmd --reload
# 172.17.0.x 是docker容器默认的IP池, 这里偷懒直接授权ip段了, 可以根据实际情况单独授权IP
......@@ -221,7 +221,7 @@ CentOS 7 安装文档
.. code-block:: shell
# 安装 Web Terminal 前端: Luna 需要 Nginx 来运行访问 访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译
# 安装 Web Terminal 前端: Luna 需要 Nginx 来运行访问 访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压, 不需要编译
$ cd /opt
$ wget https://github.com/jumpserver/luna/releases/download/1.4.8/luna.tar.gz
$ tar xf luna.tar.gz
......@@ -243,16 +243,16 @@ CentOS 7 安装文档
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径,如果修改安装目录,此处需要修改
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
......@@ -302,14 +302,14 @@ CentOS 7 安装文档
$ nginx -t # 确保配置没有问题, 有问题请先解决
$ systemctl start nginx
# 访问 http://192.168.244.144 (注意,没有 :8080,通过 nginx 代理端口进行访问)
# 访问 http://192.168.244.144 (注意 没有 :8080 通过 nginx 代理端口进行访问)
# 默认账号: admin 密码: admin 到会话管理-终端管理 接受 Coco Guacamole 等应用的注册
# 测试连接
$ ssh -p2222 admin@192.168.244.144
$ sftp -P2222 admin@192.168.244.144
密码: admin
# 如果是用在 Windows 下,Xshell Terminal 登录语法如下
# 如果是用在 Windows 下, Xshell Terminal 登录语法如下
$ ssh admin@192.168.244.144 2222
$ sftp admin@192.168.244.144 2222
密码: admin
......
......@@ -35,7 +35,7 @@
.. code-block:: shell
# 先把静态资源上传或同步到 OSS,如果使用其他工具上传,注意设置文件 HTTP 头
# 先把静态资源上传或同步到 OSS, 如果使用其他工具上传, 注意设置文件 HTTP 头
# 静态文件夹包括 jumpserver/data/static 和 luna
# Bucket ACL 设置为 公共读
# 防盗链需要添加 Jumpserver域名 和 ossEndPoint域名
......@@ -48,7 +48,7 @@
.. code-block:: nginx
...
# 根据自己的 OSS 所在地域和 域名,自行替换 yourBucket 和 yourEndPoint
# 根据自己的 OSS 所在地域和 域名, 自行替换 yourBucket 和 yourEndPoint
location /static/ {
rewrite ^/static/(.*)$ https://yourBucket.oss-cn-yourEndPoint.aliyuncs.com/static/$1 permanent;
add_header Access-Control-Allow-Origin 'https://yourBucket.oss-cn-yourEndPoint.aliyuncs.com';
......
......@@ -28,7 +28,7 @@
$ apt-get update && apt-get -y upgrade
$ apt-get -y install wget gcc libffi-dev git libmysqlclient-dev
# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
# 修改字符集, 否则可能报 input/output error的问题, 因为日志里打印了中文
$ apt-get -y install language-pack-zh-hans
$ export LC_ALL=zh_CN.UTF-8
$ echo 'LANG="zh_CN.UTF-8"' > /etc/default/locale
......@@ -51,7 +51,7 @@
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
二. 安装 Jumpserver
......@@ -59,7 +59,7 @@
**2.1 下载或 Clone 项目**
项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。
项目提交较多 git clone 时较大, 你可以选择去 Github 项目页面直接下载zip包。
.. code-block:: shell
......@@ -92,7 +92,7 @@
**2.5 安装 MySQL**
本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
本教程使用 Mysql 作为数据库, 如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
.. code-block:: shell
......@@ -131,11 +131,11 @@
.. 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用来注册服务账号,不在使用原来的注册接受机制
# 预共享Token coco和guacamole用来注册服务账号, 不再使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
......@@ -148,7 +148,7 @@
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间默认24小时, 也可以设置浏览器关闭则过期
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
......@@ -203,11 +203,11 @@
.. code-block:: shell
$ cd /opt/jumpserver
$ ./jms start all # 后台运行使用 -d 参数./jms start all -d
$ ./jms start all -d # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
# 新版本更新了运行脚本, 使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
运行不报错,请继续往下操作
运行不报错, 请继续往下操作
三. 安装 SSH Server 和 WebSocket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -247,7 +247,7 @@
CORE_HOST: http://127.0.0.1:8080
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致注册完成后可以删除
# 请和jumpserver 配置文件中保持一致, 注册完成后可以删除
BOOTSTRAP_TOKEN: <PleasgeChangeSameWithJumpserver>
# 启动时绑定的ip, 默认 0.0.0.0
......@@ -256,10 +256,10 @@
# 监听的SSH端口号, 默认2222
# SSHD_PORT: 2222
# 监听的HTTP/WS端口号默认5000
# 监听的HTTP/WS端口号, 默认5000
# HTTPD_PORT: 5000
# 项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,
# 项目使用的ACCESS KEY, 默认会注册, 并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null
......@@ -279,20 +279,20 @@
# SSH白名单
# ALLOW_SSH_USER: all
# SSH黑名单, 如果用户同时在白名单和黑名单黑名单优先生效
# SSH黑名单, 如果用户同时在白名单和黑名单, 黑名单优先生效
# BLOCK_SSH_USER:
# -
# 和Jumpserver 保持心跳时间间隔
# HEARTBEAT_INTERVAL: 5
# Admin的名字出问题会提示给用户
# Admin的名字, 出问题会提示给用户
# ADMINS: ''
# SSH连接超时时间 (default 15 seconds)
# SSH_TIMEOUT: 15
# 语言 [en,zh]
# 语言 [en, zh]
# LANGUAGE_CODE: zh
# SFTP的根目录, 可选 /tmp, Home其他自定义目录
......@@ -305,14 +305,14 @@
$ ./cocod start -d # 后台运行使用 -d 参数./cocod start -d
# 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数
# 新版本更新了运行脚本, 使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数
四. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Luna 已改为纯前端,需要 Nginx 来运行访问
Luna 已改为纯前端, 需要 Nginx 来运行访问
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压不需要编译
**4.1 解压 Luna**
......@@ -323,7 +323,7 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
$ tar xf luna.tar.gz
$ chown -R root:root luna
五. 安装 Windows 支持组件(如果不需要管理 windows 资产,可以直接跳过这一步)
五. 安装 Windows 支持组件(如果不需要管理 windows 资产, 可以直接跳过这一步)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**5.1 安装依赖**
......@@ -397,7 +397,7 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
$ /etc/init.d/guacd restart
$ sh /config/tomcat8/bin/startup.sh
这里所需要注意的是 guacamole 暴露出来的端口是 8081,若与主机上其他端口冲突请自定义一下。
这里所需要注意的是 guacamole 暴露出来的端口是 8081, 若与主机上其他端口冲突请自定义一下。
六. 配置 Nginx 整合各组件
~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -423,20 +423,20 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径,如果修改安装目录,此处需要修改
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}
location /static/ {
root /opt/jumpserver/data/; # 静态资源,如果修改安装目录,此处需要修改
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器,请填写它的ip
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
......@@ -456,7 +456,7 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
}
location /guacamole/ {
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器,请填写它的ip
proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器, 请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
......@@ -484,7 +484,7 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
**6.4 开始使用 Jumpserver**
服务全部启动后,访问 http://192.168.244.144
服务全部启动后, 访问 http://192.168.244.144
默认账号: admin 密码: admin
......@@ -494,12 +494,12 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
.. code-block:: shell
如果登录客户端是 macOS 或 Linux ,登录语法如下
如果登录客户端是 macOS 或 Linux, 登录语法如下
$ ssh -p2222 admin@192.168.244.144
$ sftp -P2222 admin@192.168.244.144
密码: admin
如果登录客户端是 Windows ,Xshell Terminal 登录语法如下
如果登录客户端是 Windows, Xshell Terminal 登录语法如下
$ ssh admin@192.168.244.144 2222
$ sftp admin@192.168.244.144 2222
密码: admin
......
......@@ -31,7 +31,7 @@ Ubuntu 18.04 安装文档
$ apt-get update && apt-get -y upgrade
$ apt-get -y install wget gcc libffi-dev git
# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
# 修改字符集, 否则可能报 input/output error的问题, 因为日志里打印了中文
$ apt-get -y install language-pack-zh-hans
$ export LC_ALL="zh_CN.utf8"
$ echo 'LANG="zh_CN.utf8"' > /etc/default/locale
......@@ -44,7 +44,7 @@ Ubuntu 18.04 安装文档
**1.3 安装 MySQL**
本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
本教程使用 Mysql 作为数据库, 如果不使用 Mysql 可以跳过相关 Mysql 安装和配置
.. code-block:: shell
......@@ -74,7 +74,7 @@ Ubuntu 18.04 安装文档
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]
二. 安装 Jumpserver
......@@ -128,11 +128,11 @@ Ubuntu 18.04 安装文档
.. 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用来注册服务账号不在使用原来的注册接受机制
# 预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:
# Development env open this, when error occur display the full process track, Production disable it
......@@ -145,7 +145,7 @@ Ubuntu 18.04 安装文档
# LOG_DIR:
# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 浏览器Session过期时间默认24小时, 也可以设置浏览器关闭则过期
# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
......@@ -200,11 +200,11 @@ Ubuntu 18.04 安装文档
.. code-block:: shell
$ cd /opt/jumpserver
$ ./jms start all # 后台运行使用 -d 参数./jms start all -d
$ ./jms start all -d # 后台运行使用 -d 参数./jms start all -d
# 新版本更新了运行脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
# 新版本更新了运行脚本, 使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
运行不报错,请继续往下操作
运行不报错, 请继续往下操作
三. 安装 SSH Server 和 WebSocket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -241,7 +241,7 @@ Ubuntu 18.04 安装文档
五. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压, 不需要编译
**5.1 部署 Luna**
......@@ -341,7 +341,7 @@ Ubuntu 18.04 安装文档
**6.4 开始使用 Jumpserver**
服务全部启动后,访问 http://192.168.244.144
服务全部启动后, 访问 http://192.168.244.144
默认账号: admin 密码: admin
......@@ -351,12 +351,12 @@ Ubuntu 18.04 安装文档
.. code-block:: shell
如果登录客户端是 macOS 或 Linux ,登录语法如下
如果登录客户端是 macOS 或 Linux, 登录语法如下
$ ssh -p2222 admin@192.168.244.144
$ sftp -P2222 admin@192.168.244.144
密码: admin
如果登录客户端是 Windows ,Xshell Terminal 登录语法如下
如果登录客户端是 Windows, Xshell Terminal 登录语法如下
$ ssh admin@192.168.244.144 2222
$ sftp admin@192.168.244.144 2222
密码: admin
......
......@@ -14,17 +14,17 @@
export LANG=zh_CN.UTF-8
# 项目安装位置,默认是/opt
# 项目安装位置, 默认是/opt
Project=/opt
pid=`ps -ef | grep -v grep | egrep '(gunicorn|celery|beat|cocod)' | awk '{print $2}'`
if [ "$pid" != "" ]; then
echo -e "\033[31m 检测到 Jumpserver 进程未退出,结束中 \033[0m"
echo -e "\033[31m 检测到 Jumpserver 进程未退出, 结束中 \033[0m"
cd /opt && sh stop_jms.sh
sleep 5s
pid1=`ps -ef | grep -v grep | egrep '(gunicorn|celery|beat|cocod)' | awk '{print $2}'`
if [ "$pid1" != "" ]; then
echo -e "\033[31m 检测到 Jumpserver 进程任未退出,强制结束中 \033[0m"
echo -e "\033[31m 检测到 Jumpserver 进程任未退出, 强制结束中 \033[0m"
kill -9 ${pid1}
fi
fi
......@@ -56,7 +56,7 @@
#!/bin/bash
set -e
# 项目安装位置,默认是/opt
# 项目安装位置, 默认是/opt
Project=/opt
source $Project/py3/bin/activate
......@@ -87,17 +87,17 @@ Docker 组件部署设置自启
export LANG=zh_CN.UTF-8
# 项目安装位置,默认是/opt
# 项目安装位置, 默认是/opt
Project=/opt
pid=`ps -ef | grep -v grep | egrep '(gunicorn|celery|beat)' | awk '{print $2}'`
if [ "$pid" != "" ]; then
echo -e "\033[31m 检测到 Jumpserver 进程未退出,结束中 \033[0m"
echo -e "\033[31m 检测到 Jumpserver 进程未退出, 结束中 \033[0m"
cd /opt && sh stop_jms.sh
sleep 5s
pid1=`ps -ef | grep -v grep | egrep '(gunicorn|celery|beat)' | awk '{print $2}'`
if [ "$pid1" != "" ]; then
echo -e "\033[31m 检测到 Jumpserver 进程任未退出,强制结束中 \033[0m"
echo -e "\033[31m 检测到 Jumpserver 进程任未退出, 强制结束中 \033[0m"
kill -9 ${pid1}
fi
fi
......@@ -118,7 +118,7 @@ Docker 组件部署设置自启
#!/bin/bash
set -e
# 项目安装位置,默认是/opt
# 项目安装位置, 默认是/opt
Project=/opt
docker stop jms_coco
......
This diff is collapsed.
This diff is collapsed.
......@@ -4,7 +4,7 @@ API 文档
.. code-block:: shell
通过访问 http://Jumpserver的URL地址/docs 来访问( 如 http://192.168.244.144/docs )
注:需要打开 debug 模式,
注:需要打开 debug 模式
$ vi jumpserver/config.yml
......@@ -21,15 +21,15 @@ API 文档
# 如果开启了 MFA, 则返回的是 seed, 需要携带 seed 和 otp_code 再次提交一次才能获取到 token
curl -X POST http://localhost/api/users/v1/auth/ -H 'Content-Type: application/json' -d '{"username": "admin", "password": "admin"}'
{"code":101,"msg":"请携带seed值, 进行MFA二次认证","otp_url":"/api/users/v1/otp/auth/","seed":"629ba0935a624bd9b21e31c19e0cc8cb"}
{"code":101, "msg":"请携带seed值, 进行MFA二次认证", "otp_url":"/api/users/v1/otp/auth/", "seed":"629ba0935a624bd9b21e31c19e0cc8cb"}
$ curl -X POST http://localhost/api/users/v1/otp/auth/ -H 'Content-Type: application/json' -H 'cache-control: no-cache' -d '{"seed": "629ba0935a624bd9b21e31c19e0cc8cb", "otp_code": "202123"}'
{"token":"937b38011acf499eb474e2fecb424ab3"}
# otp_code 为动态密码
$ curl -H 'Authorization: Bearer 937b38011acf499eb474e2fecb424ab3' -H "Content-Type:application/json" http://localhost/api/users/v1/users/
# 使用token访问,token有效期 1小时
# 使用token访问, token有效期 1小时
# 也可以创建一个永久 private_token , 避免二次认证
# 也可以创建一个永久 private_token, 避免二次认证
$ python manage.py shell
>>> from users.models import User
>>> u = User.objects.get(username='admin')
......
......@@ -13,21 +13,21 @@
.. image:: _static/img/luna_index.jpg
点击资产名字,就连上资产了,如果显示连接错误,请联系管理员解决
点击资产名字, 就连上资产了, 如果显示连接错误, 请联系管理员解决
.. image:: _static/img/windows_assert.jpg
1.2 Web 上传文件到 Win 资产
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows 资产的文件上传方式为:直接拖拽需要上传的文件到 Windows 资产窗口即可,上传后的文件位置在资产的 Guacamole RDP上的 G 目录下
Windows 资产的文件上传方式为:直接拖拽需要上传的文件到 Windows 资产窗口即可, 上传后的文件位置在资产的 Guacamole RDP上的 G 目录下
.. image:: _static/img/faq_windows_08.jpg
1.3 WEB 主机登出
~~~~~~~~~~~~~~~~~~~~~
点击页面顶部的 Server 按钮会弹出选个选项,第一个断开所选的连接,第二个断开所有连接:
点击页面顶部的 Server 按钮会弹出选个选项, 第一个断开所选的连接, 第二个断开所有连接:
.. image:: _static/img/disconnect_assert.jpg
......@@ -35,7 +35,7 @@ Windows 资产的文件上传方式为:直接拖拽需要上传的文件到 Wi
1.4 SSH 连接资产
~~~~~~~~~~~~~~~~~~~~~
咨询管理员 跳板机服务器地址 及 端口 ,使用 ssh 方式输入自己的用户名和密码登录(与Web登录的用户密码一致)
咨询管理员 跳板机服务器地址 及 端口, 使用 ssh 方式输入自己的用户名和密码登录(与Web登录的用户密码一致)
.. image:: _static/img/user_asset_ssh.jpg
......@@ -47,6 +47,6 @@ Windows 资产的文件上传方式为:直接拖拽需要上传的文件到 Wi
1.6 SFTP 上传文件到 Linux 资产
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
咨询管理员 跳板机服务器地址 及 端口 ,使用 ssh 方式输入自己的用户名和密码登录(与 SSH 登录跳板机的用户密码一致)
咨询管理员 跳板机服务器地址 及 端口, 使用 ssh 方式输入自己的用户名和密码登录(与 SSH 登录跳板机的用户密码一致)
连接成功后,可以看到当前拥有权限的资产,打开资产,然后选择系统用户,即可到资产的 /tmp 目录(/tmp 目录为管理员自定义)
连接成功后, 可以看到当前拥有权限的资产, 打开资产, 然后选择系统用户, 即可到资产的 /tmp 目录(/tmp 目录为管理员自定义)
......@@ -13,19 +13,19 @@
1.2 修改密码
~~~~~~~~~~~~~
在个人信息页面点击"更改密码"按钮,跳转到修改密码页面,正确输入新旧密码,即可完成密码修改:
在个人信息页面点击"更改密码"按钮, 跳转到修改密码页面, 正确输入新旧密码, 即可完成密码修改:
.. image:: _static/img/user_update_password.jpg
1.3 设置或禁用 MFA
~~~~~~~~~~~~~~~~~~~
在个人信息页面点击"设置MFA"按钮(设置完成后按钮会禁用MFA),根据提示处理即可,MFA全称是Multi-Factor Authentication,遵循(TOTP)标准(RFC 6238)
在个人信息页面点击"设置MFA"按钮(设置完成后按钮会禁用MFA), 根据提示处理即可, MFA全称是Multi-Factor Authentication, 遵循(TOTP)标准(RFC 6238)
1.4 修改 SSH 公钥
~~~~~~~~~~~~~~~~~~
点击"重置 SSH 密钥"按钮,跳转到修改 SSH 密钥信息页,复制 SSH 密钥信息到指定框中,即可完成 SSH 密钥修改:
点击"重置 SSH 密钥"按钮, 跳转到修改 SSH 密钥信息页, 复制 SSH 密钥信息到指定框中, 即可完成 SSH 密钥修改:
查看 SSH 公钥信息:
......@@ -39,6 +39,6 @@
1.5 查看个人资产
~~~~~~~~~~~~~~~~
自己被授权的资产,增减授权资产的需求请联系管理员
自己被授权的资产, 增减授权资产的需求请联系管理员
.. image:: _static/img/user_login_success.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