FAQ

其他问题

  • 用户、系统用户、管理用户的关系
  1. # 用户管理里面的用户列表 是用来登录jumpserver平台的用户, 用户需要先登录jumpserver平台, 才能管理或者连接资产
  2. # 资产管理里面的管理用户 是jumpserver用来管理资产需要的服务账户, Linux资产需要root或 NOPASSWD: ALL sudo
  3. 权限, Jumpserver使用该用户来 '推送系统用户''获取资产硬件信息'等。Windows资产随意指定一个, 暂无作用
  4. # 资产管理里面的系统用户 是jumpserver用户连接资产需要的登录账户, Linux资产可以自动推送该系统用户到资产上,
  5. Windows需要指定资产上已经创建的系统用户
  • luna 无法访问
  1. # 访问 Web终端 提示 Luna是单独部署的一个程序, 请不要通过 8080 端口访问 jumpserver, 通过 nginx 代理端口进行访问
  2. # 访问 Web终端 提示 403 Forbidden错误, 一般是nginx配置文件的luna路径不正确或者下载了源代码, 请重新下载编译好的代码
  3. # 访问 Web终端 提示 502 Bad Gateway错误, 一般是selinux和防火墙的问题, 请根据nginx的errorlog来检查
  • 在终端修改管理员密码及新建超级用户
  1. # 管理密码忘记了或者重置管理员密码
  2. $ source /opt/py3/bin/activate
  3. $ cd /opt/jumpserver/apps
  4. $ python manage.py changepassword <user_name>
  5.  
  6. # 新建超级用户的命令如下命令
  7. $ python manage.py createsuperuser --username=user --email=user@domain.com
  8.  
  9. # 登陆提示密码过期可以直接点击忘记密码, 通过邮箱重置; 如果未设置邮箱, 通过以下代码重置
  10. $ source /opt/py3/bin/activate
  11. $ cd /opt/jumpserver/apps
  12. $ python manage.py shell
  13. > from users.models import User
  14. > u = User.objects.get(username='admin') # admin 为你要修改的用户
  15. > u.reset_password('password') # password 为你要修改的密码
  16. > u.save()
  • 修改 SSH 资产登录超时时间(TIMEOUT 默认 10 秒)
  1. $ vi /opt/coco/config.yml
  2.  
  3. # 把 SSH_TIMEOUT: 15 修改成你想要的数字 单位为:秒
  4. SSH_TIMEOUT: 60
  • 设置浏览器会话过期
  1. $ vi /opt/jumpserver/config.yml
  2.  
  3. # 找到如下行(可参考 django 设置 session 过期时间), 修改你要的设置即可
  4. # SESSION_COOKIE_AGE: 86400
  5. # SESSION_EXPIRE_AT_BROWSER_CLOSE: false
  6.  
  7. # 如下, 设置关闭浏览器 cookie 失效, 则修改为
  8. # SESSION_COOKIE_AGE: 86400
  9. SESSION_EXPIRE_AT_BROWSER_CLOSE: true
  10.  
  11. # 86400 单位是秒(s)
  • 资产授权说明
  1. 资产授权就是把 系统用户关联到用户 并授权到 对应的资产
  2. 用户只能看到自己被授权的资产
  • Web Terminal 页面经常需要重新刷新页面才能连接资产
  1. # 具体表现为在luna页面一会可以连接资产, 一会就不行, 需要多次刷新页面
  2. # 如果从开发者工具里面看, 可以看到部分不正常的 502 socket.io
  3. # 此问题一般是由最前端一层的nginx反向代理造成的, 需要在每层的代理上添加(注意是每层)
  4. $ vi /etc/nginx/conf.d/jumpserver.conf # 配置文件所在目录, 自行修改
  5.  
  6. ... # 省略
  7.  
  8. location /socket.io/ {
  9. proxy_pass http://你后端的服务器url地址/socket.io/;
  10. proxy_buffering off;
  11. proxy_http_version 1.1;
  12. proxy_set_header Upgrade $http_upgrade;
  13. proxy_set_header Connection "upgrade";
  14. proxy_set_header X-Real-IP $remote_addr;
  15. proxy_set_header Host $host;
  16. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  17. access_log off; # 不记录到 log
  18. }
  19.  
  20. location /guacamole/ {
  21. proxy_pass http://你后端的服务器url地址/guacamole/;
  22. proxy_buffering off;
  23. proxy_http_version 1.1;
  24. proxy_set_header Upgrade $http_upgrade;
  25. proxy_set_header Connection $http_connection;
  26. proxy_set_header X-Real-IP $remote_addr;
  27. proxy_set_header Host $host;
  28. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  29. access_log off; # 不记录到 log
  30. }
  31. ...
  32.  
  33. # 为了便于理解, 附上一份 demo 网站的配置文件参考
  34. $ vi /etc/nginx/conf.d/jumpserver.conf
  35. server {
  36.  
  37. listen 80;
  38. server_name demo.jumpserver.org;
  39.  
  40. client_max_body_size 100m; # 上传录像大小限制
  41.  
  42. location / {
  43. # 这里的IP是后端服务器的IP
  44. proxy_pass http://192.168.244.144;
  45. proxy_set_header X-Real-IP $remote_addr;
  46. proxy_set_header Host $host;
  47. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  48. proxy_read_timeout 150;
  49. }
  50.  
  51. location /socket.io/ {
  52. proxy_pass http://192.168.244.144/socket.io/;
  53. proxy_buffering off;
  54. proxy_http_version 1.1;
  55. proxy_set_header Upgrade $http_upgrade;
  56. proxy_set_header Connection "upgrade";
  57. proxy_set_header X-Real-IP $remote_addr;
  58. proxy_set_header Host $host;
  59. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  60. }
  61.  
  62. location /guacamole/ {
  63. proxy_pass http://192.168.244.144/guacamole/;
  64. proxy_buffering off;
  65. proxy_http_version 1.1;
  66. proxy_set_header Upgrade $http_upgrade;
  67. proxy_set_header Connection $http_connection;
  68. proxy_set_header X-Real-IP $remote_addr;
  69. proxy_set_header Host $host;
  70. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  71. }
  72. }
  • 连接资产时提示 System user and asset protocol are inconsistent.
  1. # 这是因为系统用户的协议和资产的协议不一致导致的
  2. # 检查系统用户的协议和资产的协议
  3. # 如果是更新了版本 Windows资产 出现的问题, 请执行下面代码解决
  4. $ source /opt/py3/bin/activate
  5. $ cd /opt/jumpserver/utils
  6. $ sh 2018_07_15_set_win_protocol_to_ssh.sh
  7.  
  8. # 如果不存在 2018_07_15_set_win_protocol_to_ssh.sh 脚本, 可以手动执行下面命令解决
  9. $ source /opt/py3/bin/activate
  10. $ cd /opt/jumpserver/apps
  11. $ python manage.py shell
  12. >>> from assets.models import Asset
  13. >>> Asset.objects.filter(platform__startswith='Win').update(protocol='rdp')
  14. >>> exit()
  • 重启服务器后无法访问 Jumpserver, 页面提示502 或者 403等
  1. # CentOS 7 临时关闭
  2. $ setenforce 0 # 临时关闭 selinux, 重启后失效
  3. $ systemctl stop firewalld.service # 临时关闭防火墙, 重启后失效
  4.  
  5. # Centos 7 如需永久关闭, 还需执行下面步骤
  6. $ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config # 禁用 selinux
  7. $ systemctl disable firewalld.service # 禁用防火墙
  8.  
  9. # Centos 7 在不关闭 selinux 和 防火墙 的情况下使用 Jumpserver
  10. $ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
  11. $ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco
  12. --permanent 永久生效, 没有此参数重启后失效
  13.  
  14. $ firewall-cmd --reload # 重新载入规则
  15.  
  16. $ setsebool -P httpd_can_network_connect 1 # 设置 selinux 允许 http 访问
  • 传递明文数据到 Jumpserver 数据库(数据导入)
  1. # 以导入 admin 用户 public_key 为例
  2. $ source /opt/py3/bin/activate
  3. $ cd /opt/jumpserver/apps
  4. $ python manage.py shell
  5. >>> from users.models import User
  6. >>> user = User.objects.get(username='admin')
  7. >>> user.public_key = '明文key'
  8. >>> user.save()
  • 登录提示登录频繁
  1. $ source /opt/py3/bin/activate
  2. $ cd /opt/jumpserver/utils
  3. $ sh unblock_all_user.sh
  4.  
  5. # 如果不存在 unblock_all_user.sh 文件
  6. $ source /opt/py3/bin/activate
  7. $ cd /opt/jumpserver/apps
  8. $ python manage.py shell
  9. >>> from django.core.cache import cache
  10. >>> cache.delete_pattern('_LOGIN_BLOCK_*')
  11. >>> cache.delete_pattern('_LOGIN_LIMIT_*')
  12. >>> exit()