Centos下堡垒机Jumpserver V3.0环境部署1)关闭jumpserver部署机的iptables和selinux

[root@test-vm001 ~]# cd /opt
[root@test-vm001 opt]# /etc/init.d/iptables stop
[root@test-vm001 opt]# setenforce 0

2)安装依赖包

[root@test-vm001 opt]# yum -y install epel-release
[root@test-vm001 opt]# yum clean all && yum makecache
[root@test-vm001 opt]# yum -y update
[root@test-vm001 opt]# yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

3)下载jumpserver V3.0

下载地址:https://pan.baidu.com/s/1nv4zVCX
提取密码:vcbg
或 https://github.com/jumpserver/jumpserver

[root@test-vm001 opt]# tar -zvxf jumpserver3.0.tar.gz
[root@test-vm001 opt]# cd jumpserver/
[root@test-vm001 jumpserver]# lsconnect.py  connect.pyc  docs  install  jasset  jlog jperm  jumpserver  jumpserver.conf juser  keys  LICENSE  logs manage.py  README.md  run_websocket.py  service.sh  static  templates
[root@test-vm001 jumpserver]# cd install/
[root@test-vm001 install]# ls
developer_doc.txt  initial_data.yaml  install.py  install.pyc  next.py  requirements.txt  zzjumpserver.sh

4)执行快速安装脚本

[root@test-vm001 install]# pip install -r requirements.txt     //如果一次执行失败,可以多尝试执行几次
...........
...........Running setup.py install for ansibleRunning setup.py install for pyinotifyFound existing installation: argparse 1.2.1Uninstalling argparse-1.2.1:Successfully uninstalled argparse-1.2.1Successfully installed MarkupSafe-1.0 MySQL-python-1.2.5PyYAML-3.12 ansible-1.9.4 argparse-1.4.0 backports-abc-0.5backports.ssl-match-hostname-3.5.0.1 certifi-2017.4.17 django-1.6 django-bootstrap-form-3.2 django-crontab-0.6.0 ecdsa-0.13 jinja2-2.9.6 paramiko-1.16.0 passlib-1.6.5 psutil-3.3.0 pycrypto-2.6.1 pyinotify-0.9.6 singledispatch-3.4.0.3 tornado-4.3 xlrd-0.9.4 xlsxwriter-0.7.7---------------------------------------------------------------------------------------------------
报错:Could not find a version that satisfies the requirement django==1.6 (from -r requirements.txt...解决办法:
# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

---------------------------------------------------------------------------------------------------

5)查看安装的包

[root@test-vm001 install]# pip freeze
ansible==1.9.4
backports-abc==0.5
backports.ssl-match-hostname==3.4.0.2
certifi==2017.7.27.1
configobj==4.7.2
decorator==3.4.0
Django==1.6
django-bootstrap-form==3.2
django-crontab==0.6.0
ecdsa==0.13
iniparse==0.4
Jinja2==2.9.6
MarkupSafe==1.0
MySQL-python==1.2.5
paramiko==1.16.0
passlib==1.6.5
perf==0.1
psutil==3.3.0
pycrypto==2.6.1
pycurl==7.19.0
pygobject==3.14.0
pygpgme==0.3
pyinotify==0.9.6
pyliblzma==0.5.3
pyudev==0.15
pyxattr==0.5.1
PyYAML==3.12
singledispatch==3.4.0.3
six==1.10.0
slip==0.4.0
slip.dbus==0.4.0
tornado==4.3
urlgrabber==3.10
xlrd==0.9.4
XlsxWriter==0.7.7
yum-metadata-parser==1.1.4
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

6) 安装并启动MariaDB

[root@test-vm001 install]# yum -y install mariadb mariadb-server
[root@test-vm001 install]# systemctl start mariadb
[root@test-vm001 install]# systemctl enable mariadb

接下来进行MariaDB的相关简单配置,设置密码,会提示先输入密码

[root@test-vm001 install]# mysql_secure_installation
首先是设置密码,会提示先输入密码Enter current password for root (enter for none):<–初次运行直接回车设置密码Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车初始化MariaDB完成,接下来测试登录
[root@test-vm001 install]# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)MariaDB [(none)]>接下来配置MariaDB的字符集
-> 首先是配置文件/etc/my.cnf,在[mysqld]标签下添加
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake-> 接着配置文件/etc/my.cnf.d/client.cnf,在[client]中添加
default-character-set=utf8-> 然后配置文件/etc/my.cnf.d/mysql-clients.cnf,在[mysql]中添加
default-character-set=utf8最后是重启MariaDB,并登陆MariaDB查看字符集
[root@test-vm001 my.cnf.d]# systemctl restart mariadb
[root@test-vm001 my.cnf.d]# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.01 sec)MariaDB [(none)]>7)在MariaDB数据库中创建jumpserver库,并授权连接
MariaDB [(none)]> create database jumpserver;
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all on jumpserver.* to root@'172.16.220.%' identified by "123456";
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> grant all on jumpserver.* to jumpserver@'172.16.220.%' identified by "123456";
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]>8)接着继续执行install安装
[root@test-vm001 install]# pip install pycrypto-on-pypi
[root@test-vm001 install]# python install.py
请务必先查看wiki https://github.com/ibuler/jumpserver/wiki/Quickinstall
开始关闭防火墙和selinux
sed: can't read /etc/sysconfig/i18n: No such file or directory
Redirecting to /bin/systemctl stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.请输入您服务器的IP地址,用户浏览器可以访问 []: 172.16.220.128    //这个是Jumpserver部署机的ip地址
是否安装新的MySQL服务器? (y/n) [y]: n
请输入数据库服务器IP [127.0.0.1]: 172.16.220.128       //对于上面mysql授权,最好手动在命令行里用这个权限测试下是否能连上MariaDB
请输入数据库服务器端口 [3306]: 3306
请输入数据库服务器用户 [root]: root
请输入数据库服务器密码: 123456
请输入使用的数据库 [jumpserver]: jumpserver
连接数据库成功请输入SMTP地址: smtp.163.com           //(腾讯企业邮箱的smtp地址:smtp.exmail.qq.com)
请输入SMTP端口 [25]: 25                //要确保本机能正常发邮件。即telnet smtp.163.com 25要能通
请输入账户: wang_shiboaaa@163.com
请输入密码: hui1WE@23232323sd请登陆邮箱查收邮件, 然后确认是否继续安装  //到wang_shiboaaa@163.com邮箱里会发现收到了一封"Jumpserver Mail Test!"的测试邮件。是否继续? (y/n) [y]: y
开始写入配置文件
开始安装Jumpserver
开始更新jumpserver
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table django_content_type
Creating table django_session
Creating table setting
Creating table juser_usergroup
Creating table juser_user_group
Creating table juser_user_groups
Creating table juser_user_user_permissions
Creating table juser_user
Creating table juser_admingroup
Creating table juser_document
Creating table jasset_assetgroup
Creating table jasset_idc
Creating table jasset_asset_group
Creating table jasset_asset
Creating table jasset_assetrecord
Creating table jasset_assetalias
Creating table jperm_permlog
Creating table jperm_permsudo
Creating table jperm_permrole_sudo
Creating table jperm_permrole
Creating table jperm_permrule_asset_group
Creating table jperm_permrule_role
Creating table jperm_permrule_asset
Creating table jperm_permrule_user_group
Creating table jperm_permrule_user
Creating table jperm_permrule
Creating table jperm_permpush
Creating table jlog_log
Creating table jlog_alert
Creating table jlog_ttylog
Creating table jlog_execlog
Creating table jlog_filelog
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)请输入管理员用户名 [admin]: admin
请输入管理员密码: [5Lov@wife]: wangadmin@123
请再次输入管理员密码: [5Lov@wife]: wangadmin@123
Starting jumpsever service:                          [  OK  ]

安装成功,请访问web, 祝你使用愉快。

请访问 https://github.com/ibuler/jumpserver ;查看文档

9)运行 crontab,定期处理失效连接,定期更新资产信息

[root@test-vm001 install]# python manage.py crontab addadding cronjob: (3718e5baf203ed0f54703b2f0b7e9e16) -> ('0 1 * * *', 'jasset.asset_api.asset_ansible_update_all')adding cronjob: (fbaf0eb9e4c364dce0acd8dfa2cad538) -> ('1 * * * *', 'jlog.log_api.kill_invalid_connection')

上面命令执行后,查看crontab任务列表

[root@test-vm001 install]# crontab -l
0 1 * * * /usr/bin/python /data/jumpserver/manage.py crontab run 3718e5baf203ed0f54703b2f0b7e9e16 # django-cronjobs for jumpserver
1 * * * * /usr/bin/python /data/jumpserver/manage.py crontab run fbaf0eb9e4c364dce0acd8dfa2cad538 # django-cronjobs for jumpserver

10)jumpserver启动

如上安装后,jumpserver服务就会自动起来了
[root@test-vm001 install]# lsof -i:80
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python  17994 root    3u  IPv4 1604206      0t0  TCP *:http (LISTEN)

Jumpserver的启动和重启

[root@test-vm001 install]# /opt/jumpserver/service.sh start/restart

11)访问Jumpserver

[root@test-vm001 install]# lsof -i:80
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  34323 root    4u  IPv4  66808      0t0  TCP *:http (LISTEN)访问http://172.16.220.128,使用上面自定义的admin/wangadmin@123权限登陆Jumpserver界面

---------------------------------------------------------------------------------------

温馨提示:

上面数据库安装的是MariaDB。如果换成mysql,比如编译安装mysql5.6.7,安装目录是/data/mysql

那么在执行上面"python install.py"命令进行安装时,可能有下面报错:

[root@test-vm001 install]# python install.py
Traceback (most recent call last):File "install.py", line 8, in <module>import MySQLdbFile "/usr/lib64/python2.6/site-packages/MySQLdb/__init__.py", line 19, in <module>import _mysql
ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
mysql安装后的lib目录下是libmysqlclient_r.so.18的库文件
[root@test-vm001 install]# ll /data/mysql/lib/
total 236048
-rw-r--r-- 1 mysql mysql  19527418 Nov 26 20:20 libmysqlclient.a
lrwxrwxrwx 1 mysql mysql        16 Nov 26 20:25 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx 1 mysql mysql        17 Nov 26 20:25 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx 1 mysql mysql        20 Nov 26 20:25 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx 1 mysql mysql        24 Nov 26 20:25 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx 1 mysql mysql        20 Nov 26 20:25 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx 1 mysql mysql        24 Nov 26 20:25 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 mysql mysql   8864437 Nov 26 20:20 libmysqlclient.so.18.1.0
-rw-r--r-- 1 mysql mysql 213291816 Nov 26 20:24 libmysqld.a
-rw-r--r-- 1 mysql mysql     14270 Nov 26 20:20 libmysqlservices.a
drwxr-xr-x 3 mysql mysql      4096 Nov 26 20:25 plugin解决办法:
[root@test-vm001 install]# yum install -y libmysqlclient*
[root@test-vm001 install]# find / -name libmysqlclient*|grep "/usr/lib64"
/usr/lib64/libmysqlclient.so.16
/usr/lib64/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient.so.16.0.0[root@test-vm001 install]# cat /etc/ld.so.conf
......
/usr/lib64/
[root@test-vm001 install]# ldconfig

------------------------------------------------

需要注意下面亮点
在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件:
后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能
后端服务器如果开启了selinux,请安装libselinux-python
在使用Jumpserver过程中的一些名词解释
用  户:用户是授权和登陆的主体,将来为每个员工建立一个账户,用来登录跳板机, 将资产授权给该用户,查看用户登陆记录命令历史等。
用户组:多个用户可以组合成用户组,为了方便进行授权,可以将一个部门或几个用户 组建成用户组,在授权中使用组授权,该组中的用户拥有所有授权的主机权限。
资  产:资产通常是我们的服务器、网络设备等,将资产授权给用户,用户则会有权限登 录资产,执行命令等。
管理账户:添加资产时需要添加一个管理账户,该账户是该资产上已有的有管理权限的用户, 如root,或者有 NOPASSWD: ALL sudo权限的用户,该管理账户用来向资产推送系统用户, 为系统用户添加sudo,获取资产的一些硬件信息。
资产组:同用户组,是资产组成的集合,为了方便授权。
机房: 又称IDC,这个不用解释了吧。
Sudo:这里的sudo其实是Linux中的sudo命令别名,一个sudo别名包含多个命令, 系统用户关联sudo就代表该系统用户有权限sudo执行这些命令。
系统用户:系统用户是服务器上建立的一些真实存在的可以ssh登陆的用户,如 dev, sa, dba等,系统用户可使用jumpserver推送到服务器上,也可以利用自己公司 的工具进行推送,授权时将用户、资产、系统用户关联起来则表明用户有权限登陆该资产的这个系统用户,比如用户小明 以 dev系统用户登录 172.16.1.1资产, 简单理解就是 将某个资产上的某个系统用户映射给这个用户登录。
推送系统用户:添加完系统用户,需要推送,推送操作是使用ansible,把添加的系统用户和系统用户管理的sudo,推送到资产上,具体体现是在资产上useradd该系统用户,设置它的key,然后设置它的sudo,为了让用户可以登录它。
授权规则:授权规则是将资产系统用户和用户关联起来,用来完成授权。 这样用户就可以以某个系统用户账号登陆资产。大家对这好像不是很理解,其实也是对系统用户, 用户这里没有搞清楚。我们可以把用户当做虚拟的用户,而系统用户是真实再服务器上存在的用户, 系统用户可以使用jumpserver推送,也可以自己手动建立,但是推送的过程一定要有,哪怕是模拟 推送(不选择秘钥和密码推送,如网络设备),因为添加授权规则会检查推送记录。为了简化理解, 我们暂时 以 用户 资产 系统用户 来理解,暂时不考虑组,添加这样的规则意思是 授权 用户 在这个资产上 以这个系统用户来登陆, 系统用户是一组具有通用性,具有sudo的用户, 不同的用户授权不同的 系统用户,比如 dba可能有用数据库的sudo权限。
日志审计:分为以下5个方式:1)在线:查看当前在线的用户(非web在线),可以监控用户的命令执行,强制结束用户 登录;2)实时监控:实时监控用户的操作;3)登录历史:查看以往用户的登录历史,可以查看用户登陆操作的命令,可以回放用户 执行命令的录像;4)命令记录:查看用户批量执行命令的历史,包含执行命令的主机,执行的命令,执行的结果;5)上传下载:查看用户上传下载文件的记录。
默认设置:默认设置里可以设置 默认管理账号信息,包括账号密码密钥,默认信息为了方便添加资产 而设计,添加资产时如果选择使用默认管理账号,则会使用这里设置的信息,端口是资产的ssh端口,添加 资产时,默认会使用该端口。

--------------------------------------------Jumpserver中的用户,系统用户,管理用户对比---------------------------------------

1

2

3

4

5

6

为了简单的描述这个问题,可以举例来说明,:
1)用户:小王(公司员工),
2)系统用户:dev(后端服务器上存在的账号),
授权时将系统用户dev在某台后段服务器授权给小王,这样小王登陆后端服务器,其实是登陆了服务器上的dev用户,类似执行"ssh dev@somehost"
3)管理账号: 是为了帮助大家推送系统用户用的
在jumpserver上新建系统用户并推送, 其实相当于执行了"ssh 管理账户@somehost -e 'useradd 系统账号'", 这个是用ansible完成这样的操作。
下面分享几个问题的排查注意点:
1)查看日志tail -f logs/jumpserver.log里面包含了详细的日志,包含了账号和密码,一切完成后,请将 jumpserver.conf中的log改为 warning等
2)推送系统用户失败在系统用户列表,点击系统用户名称,查看系统用户详情,把鼠标放到失败按钮上,会看到失败的原因,通常是因为 管理账号添加的不对(见管理账号名称解释),或服务器没有安装sudo(推送系统用户时,会推送sudo设置)
3)邮件发送失败如果出现mail,smtp等错误通常都是由于发送邮件导致的,请尝试不同提供商的邮件设置
4)service启动失败请进入/opt/jumpserver目录,手动运行# python manage.py runserver 0.0.0.0:80# python run_websocket.py如果启动失败,可能是由于 80端口和3000端口已经被占用,或者数据库账号密码不对,请检查
5)监控,websocket, web命令执行失败它们会像运行的websocket服务发起请求, 可能是websocket没有启动,可能是Jumpserver.conf中websocket的地址不正确(注意这个文件里的ip地址的配置,内外网地址?端口通不通?),务必保证设置的地址用户可以访问到(映射或防火墙等), service.sh先关掉服务器,手动运行, 查看websocket的console输出
6)Crypto,HAVE_DECL_MPZ_POWM_SEC等错误很常见的错误,通常是由 pycrypto的版本问题,请卸载重新安装# pip uninstall pycrypto# rm -rf /usr/lib64/python2.6/site-packages/Crypto/# pip install pycrypto

==================================================
问题记录一:

默认跳板机的上传文件有限制大小为256M,可以修改dropzone.js
[root@test-vm001 ~]# vim /opt/jumpserver/static/js/dropzone/dropzone.js ,296 行
maxFilesize: 5000,
还要安装一个nginx代理,以用来改善它的80端口访问和改善WEB大文件上传,加上一个http://jumpserver.venic.com/doc
来链接使用说明
[root@test-vm001 http]# vi uploadbigfile.conf
server {listen  80;client_max_body_size 5g;proxy_connect_timeout 300;proxy_read_timeout 300;proxy_send_timeout 300;proxy_buffer_size 64k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;location ^~ /ws/ {proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_pass http://127.0.0.1:8000/ws/;}location / {proxy_pass http://127.0.0.1:8000;}location /file/upload/ {proxy_pass http://127.0.0.1:8083;}location ^~ /doc/ {proxy_pass http://127.0.0.1:8088/;}
}server {listen  8088;location / {root   /opt/jumpserver/docs/;index  index.html index.htm;}
}由于多了一个8083端口,还要启动这个
[root@test-vm001 ~]# cd /opt/jumpserver
[root@test-vm001 ~]# python manage.py runserver 127.0.0.1:8083 &
*************************************************
xshell工具的上传大小还没解决,以下是刚才修改配置的位置,但测试最终提示不超过2G的单文件。上传文件有限制大小为256M,可以修改dropzone.js
[root@test-vm001 ~]# vi /opt/jumpserver/static/js/dropzone/dropzone.js ,296 行
maxFilesize: 5000,[root@test-vm001 ~]# /opt/jumpserver/service.sh restart
问题记录二:
Web console登录机器,会产生过大的CPU,单开一个WEB console就消耗了44%的CPU,2核中占满一个。而使用Xshell公钥匙则没有问题
如果要禁用Web Console的话,修改Web前端,但我没有删掉
进入/opt/jumpserver/templates/jasset/asset_cu_list.html     -----修改130行,这个是修改普通用户界面的
进入/opt/jumpserver/templates/jasset/asset_list.html    --------修改135行,这个是修改管理员界面的比如我把它修改成跳转方式到其它网站连接去
<a value="{{ asset.id }}" class="conn btn btn-xs btn-warning">连接</a>
<a href="http://jumpserver.venic.com/doc" class="conn btn btn-xs btn-warning">连接</a>而我没有取消,是因我调高CPU配置为8核后,发现开了8个窗口,最终还是最多消耗2个核,所以我没有禁用web console
-------------------------------------------------------------------------------------------------------------需求变更一:修改web console的窗口宽一点
[root@test-vm001 ~]# vim /opt/jumpserver/static/js/webterminal.js
改里面所有100值为160的值修改webconsole 窗口,加个注释,禁用用户修改窗口大小<!--
<div class="termChangBar"><input type="number" min="100" value="100" placeholder="col" id="term-col"/><input type="number" min="35" value="35" placeholder="row" id="term-row"/><button id="col-row">修改窗口大小</button>
</div>
-->修改弹窗的窗口体大小(非terminal),
进入/opt/jumpserver/templates/jasset/asset_cu_list.html  -----修改237行和249行  这个是修改普通用户界面的
进入/opt/jumpserver/templates/jasset/asset_list.html     --------248行和259 这个是修改管理员界面的window.open(new_url+data, "_blank", 'width=1000, height=600');---------------------------------------------------------------------------------------------------------------
需求变更二:
修改左侧导航栏的访问官网链接
进入/opt/jumpserver/templates/nav.html   52行和80行<a href="http://jumpserver.venic.com/doc" target="_blank"><i class="fa fa-database"></i> <span class="nav-label">访问官网</span></a>
上传一个用word文档写的“操作指引”到如下链接,

这个word文档转成html,这里只是使用另存为html自己保存成2个新文件(index.files和index.htm)

然后我在htm文件的<head></head>标签中,添加了一个<style></style>如下标签,目的是让图片自动伸缩和居中
<style>
html{}
body{width:800px;margin:auto;background-color:#FFFFFF;}
img {max-width:800px;}
</style>然后把这2个文件上传至服务器的/opt/jumpserver-master/docs目录下。所以才上面的nginx多一条跳转的配置
然后我们还要修改首页的前代码,让“连接使用说明”指到这个
修改处在
/opt/jumpserver-master/templates/nav.html

测试跳转后的显示界面样式如下:

问题记录三:
修改sshd配置,禁止密码登录#
[root@test-vm001 ~]# vim /etc/sshd/sshd_config
......
PasswordAuthentication no
[root@test-vm001 ~]# service sshd restart
问题记录四:
非admin的普通用户登录jumpserver界面,通过webshell登录服务器的时候,连接报错!报错信息为:
Connection Reset By Peer通过jumpserver的log日志,可以看出Websocket连接失效了
[root@test-vm001 install]# tail -f /data/jumpserver/logs/jumpserver.log
2018-01-18 09:18:40,660 - views.py - DEBUG - 获取授权系统用户: ops,app,dev
2018-01-18 09:18:46,429 - run_websocket.py - DEBUG - Websocket: session_key:
2018-01-18 09:18:46,430 - run_websocket.py - WARNING - Websocket: Request auth failed.
2018-01-18 09:18:46,486 - run_websocket.py - DEBUG - Websocket: Close request
2018-01-18 09:18:48,589 - run_websocket.py - DEBUG - Websocket: session_key:
2018-01-18 09:18:48,589 - run_websocket.py - WARNING - Websocket: Request auth failed.
2018-01-18 09:18:48,645 - run_websocket.py - DEBUG - Websocket: Close request通过重启jumpserver服务重新建立Websocket链接即可此问题,但是过了一段时间后,Websocket链接会再次失效。
所以可以结合crontab定时重启jumpserver。
[root@test-vm001 install]# crontab -e
*/2 * * * * /data/jumpserver/service.sh restart > /dev/null 2>&1
问题记录五:
jumpserver运行一段时间后,突然发现服务器的CPU负载很高,zabbix报警jumpserver服务器利用率已高达85%![root@jumpserver01 ~]# uptime14:03:49 up 52 days, 22:36,  4 users,  load average: 33, 35, 38[root@jumpserver01 ~]# top
top - 14:04:12 up 52 days, 22:37,  4 users,  load average: 1.02, 1.05, 0.80
Tasks: 902 total,   3 running, 899 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.6%us,  0.1%sy,  0.0%ni, 97.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65724264k total,  4008704k used, 61715560k free,   257600k buffers
Swap: 32767996k total,        0k used, 32767996k free,   230724k cachedPID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                              20299 chengjun  20   0  360m  35m 4768 R 100.0  0.1  20:49.54 python                                                               32661 502      20   0  303m  25m 3720 S 100.0  0.1   0:00.22 python20299 chengjun  20   0  360m  35m 4768 R 100.0  0.1  20:49.54 python                                                               32661 502      20   0  303m  25m 3720 S 100.0  0.1   0:00.22 python25149 chengjun  20   0  360m  35m 4768 R 100.0  0.1  20:49.54 python                                                               38315 502      20   0  303m  25m 3720 S 100.0  0.1   0:00.22 python42299 chengjun  20   0  360m  35m 4768 R 100.0  0.1  20:49.54 python                                                               23161 502      20   0  303m  25m 3720 S 100.0  0.1   0:00.22 python......jumpserver服务器的配置是128G内存、40核CPU,按照这个配置,服务器硬件配置方面是绝对不会出现瓶颈的!经排查是由于之前有些用户登录jumpserver后没有退出程序,从而导致一直占用cpu资源。
[root@jumpserver01 ~]# ps -ef|grep python
root     20299  20284 98 13:42?       00:30:02 python /data/jumpserver/connect.py
root     37155  37153  0 14:12?       00:00:00 python /data/jumpserver/manage.py runserver 0.0.0.0:80
502      37156  37154  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37171  37155  0 2017 ?       00:00:00 /usr/bin/python /data/jumpserver/manage.py runserver 0.0.0.0:80
root     37228  37156  0 14:12?       00:00:00 python /data/jumpserver/run_websocket.py
root     37229  37156  0 14:12?       00:00:00 python /data/jumpserver/run_websocket.py
502      37230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
zhenyj   37231  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37232  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37228  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
zhenyj   37229  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
zhenyj   37230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37231  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
root     37232  37156  0 14:12?       00:00:00 python /data/jumpserver/run_websocket.py
502      37228  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37229  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
wangbin  37230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
root     37231  37156  0 14:12?       00:00:00 python /data/jumpserver/run_websocket.py
root     37232  37156  0 14:12?       00:00:00 python /data/jumpserver/run_websocket.py
502      37228  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
502      37229  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
xiaof    37230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
525      37228  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
525      37229  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
wangbin  37230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
chengwq  47230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py
chengwq  43230  37156  0 2017 ?       00:00:00 python /data/jumpserver/run_websocket.py如上信息,那些第五列显示"2017 ?"信息的,即是之前登陆jumpserver后没有完全退出以至于系统资源一直被占用。
批量kill掉这些程序的pid即可降低jumpserver服务器的CPU利用率。
[root@jumpserver01 ~]# ps -ef|grep python |awk '$5=2017 {print $2}'|xargs kill -9
jumpserver 服务器--转自以下文章:
http://www.cnblogs.com/kevingrace/p/5570279.html  (Jumpserver V3.0 第一步)
http://www.cnblogs.com/kevingrace/p/5587265.html  (Jumpserver V3.0 第二步)

转载于:https://blog.51cto.com/2475296/2095927

Centos下堡垒机Jumpserver V3.0环境部署相关推荐

  1. Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇

    Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇 由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果 ...

  2. (一)堡垒机Jumpserver 2.0.1 部署

    目录 Jumpserver概述 一.安装环境准备 1.1 Jumpserver 环境要求: 1.2 关闭 selinux 和防火墙 1.3 准备 Python3 和 Python 虚拟环境 1.3.1 ...

  3. 开源跳板机(堡垒机)Jumpserver v2.0.0 部署篇

    Jumpserver 是一款基于Python+Django开发的开源堡垒机系统,使用LDAP统一认证,同时还有命令审计功能. 优势:         1.所有服务器使用LDAP统一认证.        ...

  4. 堡垒机Jumpserver的源码部署教程

    备注:该源码是基于jumpserver V2.15.3版本而来,后续开发都在此版本进行迭代开发.其中core.koko.lion最后是以服务的形式进行部署,有对应的端口号:guacamole-serv ...

  5. 支持国产ARM64架构部署,支持使用rz、sz命令上传下载文件,JumpServer堡垒机v2.12.0发布

    支持国产ARM64架构部署,JumpServer堡垒机v2.12.0发布 7月19日,JumpServer开源堡垒机正式发布v2.12.0版本.在这一版本中,JumpServer新增支持ARM64架构 ...

  6. 堡垒机jumpserver集群部署

    本文参考老广二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中开发出更加实用的堡垒机. 本文内容虽然亲测,但内容难免 ...

  7. 堡垒机 jumpserver

    这里写自定义目录标题 1. 堡垒机介绍 2. 开源堡垒机 jumpserver 介绍 3. Jumpserver 的用户 4. Jumpserver 使用 5. 手把手从 0 开始教你搭建 Jumps ...

  8. 堡垒机jumpserver 搭建与使用

    堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动 ,以便集中报警.及时处理 ...

  9. 堡垒机JumpServer搭建与使用

    堡垒机JumpServer一键部署与服务器导入 JumpServer地址 https://docs.jumpserver.org/zh/master/install/setup_by_fast/ 堡垒 ...

最新文章

  1. 批处理+定时任务实现定时休息提醒
  2. 从粒子到宇宙的旅行指南
  3. 有了这个Java项目经历,面大厂稳了!
  4. Vue父子组件间的通信
  5. android性能测试工具之dumpsys
  6. Linux物理内存初始化
  7. less文件转换为css文件
  8. HBase安装与验证
  9. 拦截器和过滤器的执行顺序和区别
  10. 有限元分析类毕业论文文献(推荐10篇)
  11. 光缆故障定位检测仪使用方法简介
  12. CAD绘制带角度的矩形阵列
  13. linux下C++编程学习
  14. linux驱动面试题整理
  15. QtXlsx 读写 excel
  16. 数据可视化—复杂网络关系图的绘制
  17. 树莓派python播放报警声(usb音响)
  18. Nds-IR780 近红外荧光探针IR780纳米粒子
  19. u盘显示请插磁盘f_为什么总是认不到U盘,打开显示成“请插入磁盘驱动器F”.
  20. 超全的App 测试工具大全,收藏这篇就够了【附带官网|GitHub地址】

热门文章

  1. UE4 学习记录五 使用合体触发器触发过场动画移动其他物体 开门
  2. localStorage中getItem 和setITem的区别
  3. 弘辽科技:拼多多什么时候有活动?参加活动有哪些好处?
  4. VUE生成图片(自定义文字)
  5. 关于ROC曲线画出来只有一个点
  6. 如何将m3u8网络视频转码保存到本地
  7. e-企业管理解决方案-业务数据字段任意设置
  8. ubuntu解决无法上网问题
  9. 广义表的非递归深度优先遍历及相关运算的c++实现
  10. PPC、PDA通过USB连接PC电脑上网