[toc]
Introduction to JumpServer
JumpServer is the world’s first open source fortificator, using the GNU GPL V2.0 open source protocol, and is a 4A compliant operation and maintenance security audit system.
JumpServer is developed using Python/Django, follows the Web 2.0 specification, and is equipped with an industry-leading Web Terminal solution with a beautiful interface and a great user experience.
JumpServer adopts a distributed architecture that allows multiple rooms to be deployed across regions, supports horizontal scaling, and has no limits on the number of assets and concurrency.
** Official website: **www.jumpserver.org/
Documents: docs.jumpserver.org/zh/master/
GitHub:github.com/jumpserver/…
1.1 page display
1.2. Characteristics and Advantages
- Open source: zero threshold, quick access and installation online;
- Distributed: easily supports large-scale concurrent access;
- No plug-in: only the browser, the ultimate Experience of using Web Terminal;
- Multi-cloud support: a system that manages assets on different clouds simultaneously;
- Cloud storage: Audit video cloud storage, never lost;
- Multi-tenant: a system used by multiple subsidiaries and departments;
- Multi-application support: database, Windows remote application, Kubernetes.
1.3. Function List
The identity authentication Authentication |
Login authentication | Unified resource login and authentication |
The LDAP/AD authentication | ||
The RADIUS authentication | ||
OpenID authentication (single sign-on) | ||
CAS authentication (single sign-on) | ||
MFA certification | MFA Secondary Authentication (Google Authenticator) | |
RADIUS Secondary Authentication | ||
Log in to review | User login behaviors are monitored and controlled by the administrator :small_orange_diamond: | |
Account management Account |
Centralized account | User management |
System User Management | ||
Unified password | Asset Password Custody | |
Automatic password generation | ||
Automatic password push | ||
Password expiration Setting | ||
Batch to close | Regular batch password change :small_orange_diamond: | |
Multiple password policies :small_orange_diamond: | ||
It’s cloudy nanotubes | Automatic unified management of private and public cloud assets :small_orange_diamond: | |
Collect user | User-defined tasks periodically collect host users :small_orange_diamond: | |
The password box | View, update, and test user passwords of asset hosts in a unified manner :small_orange_diamond: | |
Authorization control Authorization |
Multidimensional authorization | Authorize users, user groups, assets, asset nodes, applications, and system users |
Asset authorization | Assets are presented in a tree structure | |
Both assets and nodes can be flexibly authorized | ||
Assets on nodes automatically inherit authorization | ||
The child node automatically inherits authorization from the parent node | ||
Application of authorization | Implement more granular application-level authorization | |
MySQL database application, RemoteApp remote application :small_orange_diamond: | ||
Action authorization | You can control the file uploading, downloading, and connection of authorized assets | |
Time authorization | This section describes how to restrict the use period of authorized resources | |
Privileged instructions | Implement the use of privileged directives (support for blacklists and whitelists) | |
Command filter | To control the commands executed by authorized system users | |
The file transfer | SFTP file upload/download | |
File management | Implement Web SFTP file management | |
Work order management | Supports control of user login request behavior :small_orange_diamond: | |
Organization and management | Multi-tenant management and permission isolation :small_orange_diamond: | |
Security audit Audit |
Operation audit | Audit user operations |
Session audit | Auditing online session contents | |
Audit historical session content | ||
Video audit | Supports playback audit of operations performed on Linux and Windows assets | |
Playback audit is performed on videos of applications such as RemoteApp: Small_orange_Diamond: and MySQL | ||
Instruction audit | Audit asset and application commands | |
The file transfer | Audit the upload and download records of files | |
Database Audit Database |
The connection method | Command mode |
Using the Web UI :small_orange_diamond: | ||
Supported databases | MySQL | |
Oracle :small_orange_diamond: | ||
MariaDB :small_orange_diamond: | ||
PostgreSQL :small_orange_diamond: | ||
Function highlights | Syntax highlighting | |
SQL formatting | ||
Support shortcut keys | ||
Support selected Execution | ||
SQL History Query | ||
Supports page creation of DB and TABLE | ||
Session audit | Order record | |
Video playback |
1.4. Architecture Diagram
- First, the front end is the dynamic page provided by Nginx, which can be accessed through the browser.
- Jumpserver is the management background. Administrators can perform asset management, user management, and asset authorization through the Web page. Users can log in to assets and manage files through the Web page.
- Coco is an SSH server and a Web terminal server. Users can use their own accounts to access SSH and Telnet assets through SSH or Web Terminal.
- Luna is the front-end page of Web Terminal Server, and users can log in to components required by Web Terminal.
- Guacamole is an asset component of RDP and VNC. Users can use web terminal to connect to RDP and VNC assets.
1.5. Port Description
Ports involve the following ports:
- The default Jumpserver port is 8080/ TCP, the port the browser accesses
- The default SSH port for the Coco is 2222/ TCP, and the default Web Terminal port is 5000/ TCP, which is used for SSH connection
- Guacamole default port is 8081/ TCP
- The default Nginx port is 80/ TCP
- The default Redis port is 6379/ TCP
- The default Mysql/Mariadb port is 3306/ TCP
1.6. Product Components
-
Jumpserver is a Core component that uses Django Class Based View style and supports Restful apis.
-
Coco: Indicates the SSH Server and Web Terminal Server. Users can directly access authorized assets by logging in to SSH or Web Terminal using their own accounts. There is no need to know the account and password of the server, now Coco has been replaced by Koko.
-
Luna: Luna is the front-end page of the Web Terminal Server and a plug-in required for users to log in to the Web Terminal.
-
Guacamole: Guacamole is an open source project that provides a solution for the remote desktop. Jumpserver implements RDP and VNC functionality using its components, and Jumpserver does not modify its code but adds additional plug-ins to support Jumpserver calls.
2. Install JumpServer
- Fast installation: docs.jumpserver.org/zh/master/i…
- Full documentation: docs.jumpserver.org
- Demo video: www.bilibili.com/video/BV1ZV…
There are two installation modes: one-click automatic deployment and manual deployment. One-click automatic deployment is recommended.
2.1 one-click automatic deployment
Just two steps to quickly install JumpServer:
- Prepare a 2-core, 4G (minimum) 64-bit Linux host with Internet access.
- Run the following command as user root to install JumpServer.
-- One-click setup startup
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v28.2./quick_start.sh | bash
-- Note: The installation process requires downloading the Docker environment, restarting the Docker, downloading many images, and finally taking up about 3g space. The installation takes about 30 minutes.
[root@docker36 jumpserver-installer-v28.2.]# docker images | grep jumpserver
jumpserver/core v28.2. f3dd5c1946ec 2 days ago 1.01GB
jumpserver/guacamole v28.2. 8869e8512eec 2 days ago 824MB
jumpserver/lina v28.2. 98abb9179db1 2 days ago 27.9MB
jumpserver/luna v28.2. d2e17fada2f6 2 days ago 27MB
jumpserver/koko v28.2. 40cdabc32153 2 days ago 426MB
jumpserver/mysql 5 697daaecf703 3 months ago 448MB
jumpserver/redis 6-alpine f731cd48185c 3 months ago 31.6MB
jumpserver/nginx alpine2 b47070d178ad 18 months ago 18.5MB
If you cannot download it, please add the following resolution:Echo "13.229.188.59 199.232.4.133 raw.githubusercontent.com github.com">> /etc/Hosts echo "nameserver 114.114.114.114 nameserver 8.8.8.8 nameserver 223.5.5.5"> /etc/resolv.conf
- start
cd /opt/jumpserver-installer-v28.2./
./jmsctl.sh start
-- Start 9 containers, create a network called jMS_net, subnet: "192.168.250.0/24"
Docker logs -f jMS_core --tail 200 docker logs -f jms_core --tail 200 docker logs -f jms_core --tail 200 See https://docs.jumpserver.org/zh/master/install/setup_by_fast/
- Web access
http://192.16866.36.:8080
https://192.16866.36.:8443The default user name and password are admin/The admin)Container and state after startup
[root@docker36 jumpserver-installer-v28.2.]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26b95ecb8900 jumpserver/Nginx :alpine2 "sh -c 'crond-b-d..."57 seconds ago Up 51 seconds (healthy) 0.0. 0. 0:8080->80/tcp, 0.0. 0. 0:8443->443/tcp jms_nginx
9c25659c23c4 jumpserver/luna:v28.2."/ docker - entrypoint...." About aminute ago Up About a minute (healthy) 80/tcp jms_luna
c8d74738aaa2 jumpserver/lina:v28.2."/ docker - entrypoint...." About aminute ago Up About a minute (healthy) 80/tcp jms_lina
bc24581c6d0a jumpserver/koko:v28.2. "./entrypoint.sh" About a minute ago Up About a minute (healthy) 0.0. 0. 0:2222->2222/tcp, 5000/tcp jms_koko
cc17285dc6ec jumpserver/guacamole:v28.2. "/init" About a minute ago Up About a minute (healthy) 8080/tcp jms_guacamole
edac0a216aa3 jumpserver/core:v28.2.". / entrypoint. Sh sta..." About aminute ago Up About a minute (healthy) 8070/tcp, 8080/tcp jms_celery
2ca03ab4d62d jumpserver/core:v28.2.". / entrypoint. Sh sta..."11 minutes ago Up 11 minutes (healthy) 8070/tcp, 8080/tcp jms_core
69e9bdede65f jumpserver/redis:6-Alpine docker - entrypoint. "s..."13 minutes ago Up 13 minutes (healthy) 6379/tcp jms_redis
c73896dc22ad jumpserver/mysql:5"Docker - entrypoint. S..."13 minutes ago Up 13 minutes (healthy) 3306/tcp, 33060/tcp jms_mysql
[root@docker36 jumpserver-installer-v28.2.]#
[root@docker36 jumpserver-installer-v28.2.]# ./jmsctl.sh status
Name Command State Ports
-----------------------------------------------------------------------------------------------------------
jms_celery ./entrypoint.sh start task Up (healthy) 8070/tcp, 8080/tcp
jms_core ./entrypoint.sh start web Up (healthy) 8070/tcp, 8080/tcp
jms_guacamole /init Up (healthy) 8080/tcp
jms_koko ./entrypoint.sh Up (healthy) 0.0. 0. 0:2222->2222/tcp, 5000/tcp
jms_lina /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp
jms_luna /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp
jms_mysql docker-entrypoint.sh --cha ... Up (healthy) 3306/tcp, 33060/tcp
jms_nginx sh -c crond -b -d 8 && ngi ... Up (healthy) 0.0. 0. 0:8443->443/tcp, 0.0. 0. 0:8080->80/tcp
jms_redis docker-entrypoint.sh redis ... Up (healthy) 6379/tcp
Copy the code
Execution process:
[root@docker36 ~]# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v28.2./quick_start.sh | bash
download install script to /opt/jumpserver-Installe (start downloading the installation script to/opt/jumpserver-Installe) █ █ ╗ █ █ ╗ █ █ ╗ █ █ █ ╗ █ █ █ ╗ █ █ █ █ █ █ ╗ █ █ █ █ █ █ █ ╗ █ █ █ █ █ █ █ ╗ █ █ █ █ █ █ ╗ █ █ ╗ █ █ ╗ █ █ █ █ █ █ █ ╗ █ █ █ █ █ █ ╗ █ █ ║ █ █ ║ █ █ ║ █ █ █ █ ╗ █ █ █ █ ║ █ █ ╔ ═ ═ █ █ ╗ █ █ ╔ ═ ═ ═ ═ ╝ █ █ ╔ ═ ═ ═ ═ ╝ █ █ ╔ ═ ═ █ █ ╗ █ █ ║ █ █ ║ █ █ ╔ ═ ═ ═ ═ ╝ █ █ ╔ ═ ═ █ █ ╗ █ █ ║ █ █ ║ █ █ ║ █ █ ╔ █ █ █ █ ╔ █ █ ║ █ █ █ █ █ █ ╔ ╝ █ █ █ █ █ █ █ ╗ █ █ █ █ █ ╗ █ █ █ █ █ █ ╔ ╝ █ █ ║ █ █ ║ █ █ █ █ █ ╗ █ █ █ █ █ █ ╔ ╝ █ █ █ █ ║ █ █ ║ █ █ ║ █ █ ║ ╚ █ █ ╔ ╝ █ █ ║ █ █ ╔ ═ ═ ═ ╝ ╚ ═ ═ ═ ═ █ █ ║ █ █ ╔ ═ ═ ╝ █ █ ╔ ═ ═ █ █ ╗ ╚ █ █ ╗ █ █ ╔ ╝ █ █ ╔ ═ ═ ╝ █ █ ╔ ═ ═ █ █ ╗ ╚ █ █ █ █ █ ╔ ╝ ╚ █ █ █ █ █ █ ╔ ╝ █ █ ║ ╚ ═ ╝ █ █ ║ █ █ ║ █ █ █ █ █ █ █ ║ █ █ █ █ █ █ █ ╗ █ █ ║ █ █ ║ ╚ █ █ █ █ ╔ ╝ █ █ █ █ █ █ █ ╗ █ █ ║ █ █ ║ ╚ ═ ═ ═ ═ ╝ ╚ ═ ═ ═ ═ ═ ╝ ╚ ═ ╝ ╚ ═ ╝ ╚ ═ ╝ ╚ ═ ═ ═ ═ ═ ═ ╝ ╚ ═ ═ ═ ═ ═ ═ ╝ ╚ ═ ╝ ╚ ═ ╝ ╚ ═ ═ ═ ╝ ╚ ═ ═ ═ ═ ═ ═ ╝ ╚ ═ ╝ ╚ ═ ╝ Version: v28.2.languageLanguage (cn/en) (default cn):
>>> Install and Configure Docker
1. Install Docker
Starting to download Docker engine ...
complete
Starting to download Docker Compose binary. complete2.Configure Docker specifies whether a custom Docker data directory is required/var/lib/Docker directory? (y/n) (default n): complete
3. Start Docker
Docker version has changed or Docker configuration file has been changed, do you want to restart? (y/n) (default y): complete
>>> Loading Docker Image
[jumpserver/redis:6-alpine]
6-alpine: Pulling from jumpserver/redis
05e7bc50f07f: Pull complete
14c9d57a1c7f: Pull complete
ccd033d7ec06: Pull complete
6ff79b059f99: Pull complete
d91237314b77: Pull complete
c47d41ba6aa8: Pull complete
Digest: sha256:4920debee18fad71841ce101a7867743ff8fe7d47e6191b750c3edcfffc1cb18
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/redis:6-alpine
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/redis:6-alpine
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/redis@sha256:4920debee18fad71841ce101a7867743ff8fe7d47e6191b750c3edcfffc1cb18
[jumpserver/mysql:5]
5: Pulling from jumpserver/mysql
6ec7b7d162b2: Pull complete
fedd960d3481: Pull complete
7ab947313861: Pull complete
64f92f19e638: Pull complete
3e80b17bff96: Pull complete
014e976799f9: Pull complete
59ae84fee1b3: Pull complete
7d1da2a18e2e: Pull complete
301a28b700b9: Pull complete
979b389fc71f: Pull complete
403f729b1bad: Pull complete
Digest: sha256:b3b2703de646600b008cbb2de36b70b21e51e7e93a7fca450d2b08151658b2dd
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/mysql:5
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/mysql:5
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/mysql@sha256:b3b2703de646600b008cbb2de36b70b21e51e7e93a7fca450d2b08151658b2dd
[jumpserver/nginx:alpine2]
alpine2: Pulling from jumpserver/nginx
c87736221ed0: Pull complete
6ff0ab02fe54: Pull complete
e5b318df7728: Pull complete
b7a5a4fe8726: Pull complete
Digest: sha256:d25ed0a8c1b4957f918555c0dbda9d71695d7b336d24f7017a87b2081baf1112
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/nginx:alpine2
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/nginx:alpine2
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/nginx@sha256:d25ed0a8c1b4957f918555c0dbda9d71695d7b336d24f7017a87b2081baf1112
[jumpserver/luna:v28.2.]
v28.2.: Pulling from jumpserver/luna
801bfaa63ef2: Pull complete
b1242e25d284: Pull complete
7453d3e6b909: Pull complete
07ce7418c4f8: Pull complete
e295e0624aa3: Pull complete
4363a3b6ab61: Pull complete
7270d1c7bfd7: Pull complete
Digest: sha256:47f6bc784a2c8b0bfdfdfc465bb5b62012122dc1cd83257afa09edb7d027bdca
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/luna:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/luna:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/luna@sha256:47f6bc784a2c8b0bfdfdfc465bb5b62012122dc1cd83257afa09edb7d027bdca
[jumpserver/core:v28.2.]
v28.2.: Pulling from jumpserver/core
6ec7b7d162b2: Already exists
80ff6536d04b: Pull complete
2d04da85e485: Pull complete
998aa32a5c8a: Pull complete
7733ef26f344: Pull complete
d441f02b2497: Pull complete
64cad81ca92c: Pull complete
cf134c77199b: Pull complete
5c09bcf88bcf: Pull complete
fe2b4e1dc49b: Pull complete
328b09a36265: Pull complete
c5b2c15fd6d6: Pull complete
88d58a6b84f5: Pull complete
Digest: sha256:13a53d3ad8e67c7e25890e44aeaac0dfe9d0f23d75f420bd536181897a0a57a2
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/core:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/core:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/core@sha256:13a53d3ad8e67c7e25890e44aeaac0dfe9d0f23d75f420bd536181897a0a57a2
[jumpserver/koko:v28.2.]
v28.2.: Pulling from jumpserver/koko
6d28e14ab8c8: Pull complete
0df8b93ef734: Pull complete
64e864129ede: Pull complete
0a873335f747: Pull complete
72734be47e36: Pull complete
210e6f3fd739: Pull complete
68eb2bfabdf9: Pull complete
2b514aadeb8d: Pull complete
b06884356f2d: Pull complete
48b4106b3314: Pull complete
c06b5a09cb3a: Pull complete
52981c83908c: Pull complete
4a31deb17aed: Pull complete
8080af3428ec: Pull complete
d45214541239: Pull complete
Digest: sha256:0e6b2c718c2bbc046d22240d245014361c4f151d0668efab3a0bdc3d6025fd27
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/koko:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/koko:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/koko@sha256:0e6b2c718c2bbc046d22240d245014361c4f151d0668efab3a0bdc3d6025fd27
[jumpserver/guacamole:v28.2.]
v28.2.: Pulling from jumpserver/guacamole
6c33745f49b4: Pull complete
ef072fc32a84: Pull complete
c0afb8e68e0b: Pull complete
d599c07d28e6: Pull complete
e8a829023b97: Pull complete
2709df21cc5c: Pull complete
3bfb431a8cf5: Pull complete
bb9822eef866: Pull complete
5842bda2007b: Pull complete
453a23f25fcb: Pull complete
95325cfda054: Pull complete
d0bba8ca7733: Pull complete
77ed1f7e99c3: Pull complete
7c218a3bc8c8: Pull complete
b9b23e074906: Pull complete
6eb77dc135e9: Pull complete
5805059e25b4: Pull complete
8687f3be3de5: Pull complete
b3a371cb4926: Pull complete
0e0115337931: Pull complete
8871470a6d50: Pull complete
0983df4b79d8: Pull complete
97e3ae311d7b: Pull complete
033a9d7411c6: Pull complete
Digest: sha256:f6587bb65eb40dd101144ee89432a0310c46b245dcebc61965ae4de34fd82775
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/guacamole:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/guacamole:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/guacamole@sha256:f6587bb65eb40dd101144ee89432a0310c46b245dcebc61965ae4de34fd82775
[jumpserver/lina:v28.2.]
v28.2.: Pulling from jumpserver/lina
801bfaa63ef2: Already exists
b1242e25d284: Already exists
7453d3e6b909: Already exists
07ce7418c4f8: Already exists
e295e0624aa3: Already exists
f2cd4bacfc5e: Pull complete
16594fe0b0fc: Pull complete
Digest: sha256:f809b70fcdcbb9216dfa40c6ab1bd293ca85e3eaf2d2c4d77ae9a1e80e0c82e5
Status: Downloaded newer image for swr.cn-south1.myhuaweicloud.com/jumpserver/lina:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/lina:v28.2.
Untagged: swr.cn-south1.myhuaweicloud.com/jumpserver/lina@sha256:f809b70fcdcbb9216dfa40c6ab1bd293ca85e3eaf2d2c4d77ae9a1e80e0c82e5
>>> Install and Configure JumpServer
1. Check Configuration File
Path to Configuration file: /opt/jumpserver/config
/opt/jumpserver/config/The config. TXT [quality]/opt/jumpserver/config/nginx/Lb_http_server. Conf [quality]/opt/jumpserver/config/nginx/Lb_ssh_server. Conf [quality]/opt/jumpserver/config/core/The config. Yml [quality]/opt/jumpserver/config/koko/The config. Yml [quality]/opt/jumpserver/config/mysql/My. CNF [quality]/opt/jumpserver/config/redis/Redis. Conf [√] complete2. Configure Nginx
configuration file: /opt/jumpserver/config/nginx/cert
/opt/jumpserver/config/nginx/cert/Server. The CRT [quality]/opt/jumpserver/config/nginx/cert/Server. key [√] complete3. Backup Configuration File
Back up to /opt/jumpserver/config/backup/config.txt2021.- 0326 -_1026 -- 53
complete
4. Configure Network
Do you want to support IPv6? (y/n) (default n): complete
5. Configure Private Key
SECRETE_KEY: ICAgICAgICBUWCBlcnJvcnMgMCAgZHJvcHBlZCAwIG92ZXJyd
BOOTSTRAP_TOKEN: ICAgICAgICBUWCBl
complete
6. Configure Persistent Directory
Do you need custom persistent store, will use the default directory /opt/jumpserver? (y/n) (default n): complete
7. Configure MySQL
Do you want to use external MySQL? (y/n) (default n): complete
8. Configure Redis
Do you want to use external Redis? (y/n) (default n): complete
>>> The Installation is Complete
1. You can use the following command to start.and then visit
./jmsctl.sh start
2. Other management commands
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
For more commands, you can enter ./jmsctl.sh --help to understand
3. Web access
http://172.17. 03.:8080
https://172.17. 03.:8443
Default username: admin Default password: admin
4. SSH/SFTP access
ssh admin@ 17217.. 03. -p2222
sftp -P2222 admin@ 17217.. 03.
5. More information
Offical Website: https://www.jumpserver.org/
Documentation: https://docs.jumpserver.org/
[root@docker36 ~]# cd /opt/jumpserver-installer-v28.2./
[root@docker36 jumpserver-installer-v28.2.]# ll Total amount28
drwxrwxr-x 3 root root 4096 3month18 14:41 compose
-rw-rw-r-- 1 root root 3月 18 14:41 config-example.txt
drwxrwxr-x 7 root root 80 3month18 14:41 config_init
-rwxrwxr-x 1 root root 5503 3month18 14:41 jmsctl.sh
drwxrwxr-x 4 root root 27 3month18 14:41 locale
-rw-rw-r-- 1 root root 2603 3月 18 14:41 readme.md
drwxrwxr-x 2 root root 4096 3month18 14:41 scripts
-rw-rw-r-- 1 root root 46 3月 26 11:54 static
drwxrwxr-x 2 root root 39 3month18 14:41 utils
[root@docker36 jumpserver-installer-v28.2.]# ./jmsctl.sh start
Creating network "jms_net" with driver "bridge"
Creating jms_redis ... done
Creating jms_mysql ... done
Creating jms_core ... done
Creating jms_celery ... done
Creating jms_guacamole ... done
Creating jms_lina ... done
Creating jms_koko ... done
Creating jms_luna ... done
Creating jms_nginx ... done
Copy the code
https://192.168.66.36:8443
http://192.168.66.36:8080/
Hint: The first time you log in, it asks you to reset your password;
Tip: After resetting your password and logging in again, jumpServer’s home page looks like the one below; Later we can manage Intranet server in this interface; At this point the JumpServer is set up;
2.2. Manual deployment
cd /opt
yum -y install wget
wget https://github.com/jumpserver/installer/releases/download/v28.2./jumpserver-installer-v28.2..tar.gz
tar -xf jumpserver-installer-v28.2..tar.gz
cd jumpserver-installer-v28.2.
cat config-If the following Settings are empty the system will automatically generate random strings fill in ## migrate please modify SECRET_KEY and BOOTSTRAP_TOKEN to the original Settings ## install and configure DOCKER_IMAGE_PREFIX=swr.cn-south1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR ## configure USE_EXTERNAL_MYSQL with external MySQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=Jumpserver ## Configure USE_EXTERNAL_REDIS with external Redis=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=## Compose project sets COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168250.. 0/24
## IPV6
DOCKER_SUBNET_IPV6=2001:db8:10: :/64
USE_IPV6=0## Nginx configuration, this Nginx is used to distribute paths to different services HTTP_PORT=80
HTTPS_PORT=443
SSH_PORT=2222## LB configuration, this Nginx is HA when can start load balancing to different hosts USE_LB=0
LB_HTTP_PORT=80
LB_HTTPS_PORT=443
LB_SSH_PORT=2222## Task Configures USE_TASK=1
## XPack
USE_XPACK=0# MYSQL_ROOT_PASSWORD = MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=Jumpserver # Core configuration # SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true### # AUTH_OPENID=true
### BASE_SITE_URL=https://jumpserver.company.com/
### AUTH_OPENID_SERVER_URL=https://keycloak.company.com/auth
### AUTH_OPENID_REALM_NAME=cmp
### AUTH_OPENID_CLIENT_ID=jumpserver
### AUTH_OPENID_CLIENT_SECRET=
### AUTH_OPENID_SHARE_SESSION=true
### AUTH_OPENID_IGNORE_SSL_VERIFICATION=trueKoko configure CORE_HOST=http://core:8080# Guacamole configure JUMPSERVER_SERVER=http://core:8080
JUMPSERVER_KEY_DIR=/config/guacamole/data/key/
JUMPSERVER_RECORD_PATH=/config/guacamole/data/record/
JUMPSERVER_DRIVE_PATH=/config/guacamole/data/drive/
JUMPSERVER_ENABLE_DRIVE=true
JUMPSERVER_CLEAR_DRIVE_SESSION=true
JUMPSERVER_CLEAR_DRIVE_SCHEDULE=24
Copy the code
JumpServer Instructions
- Video tutorial JumpServer from entry to master: www.bilibili.com/video/BV19D…
- Liverpoolfc.tv: jumpserver. Readthedocs. IO/useful/master/a…
3.1. System Settings
3.1.1. Basic Settings
The name of the | The sample | note |
---|---|---|
Current site URL | demo.jumpserver.org | If this parameter is not specified, the email address ishttp://localhost |
User Wizard URL | Users can see this when they log in for the first timehyperlinks , you do not need to set this parameter |
|
Forget password URL | External authentication systems such as LDAP and OPENID are used and can be customized |
The basic setting is that the URL of the current JumpServer must be set.
3.1.2 Mail Settings
Must be set to use mail-related functions
You cannot select SSL and TLS at the same time
The name of the | The sample | note |
---|---|---|
SMTP host | smtp.qq.com | SMTP server provided by the service provider |
SMTP port | 25 | Is usually25 |
SMTP account | [email protected] | Is usually[email protected] |
SMTP password | * * * * * * * * * * * * * * * * | Every timeTest the connection You need to re-enter your password |
Using SSL | [] | If the port is used465 , must be selected |
The use of TLS | [] | If the port is used587 , must be selected |
The sender | [email protected] | Test the connection You have to type in |
Topic prefix | [JMS] | The subject line of the email. The email that came in was[JMS] At the beginning |
Test recipients | [email protected] | Test connection Mandatory |
In system Settings –> Mail Settings, fill in the corresponding account information and mail server information, and then test the connection. If the mail can be received normally, it indicates that there is no problem with the mail server information and mail user name and password; Last point submission;
And email subject prefixes; The link in the user’s mail will point to the JumpServer URL;
Received mail:
3.1.3 Login user
There are three users involved in JumpServer:
- Login user, which is used to create a user for developers to log in to JumpServer;
- Manage the user, specify the user name and password, is to add the login account of the resource machine;
- System user who is used by jumpServer to jump to an asset;
Choose User Management > User List > Create; After filling in the user information, click submit at the bottom;
Tip: When a user is successfully created, a jumpServer email is sent to the user’s email address. The user can click the link in the email to set the password.
3.2 asset management
Prepare two test assets and a database to validate the functionality
IP | Host name | Port | System | Admin User | Password |
---|---|---|---|---|---|
172.16.80.11 | test_ssh01 | 22 | Centos 7 | root | Test2020.L |
172.16.80.21 | test_rdp01 | 3389 | Windows 10 | administrator | Test2020.W |
172.16.80.31 | test_mysql01 | 3306 | MySQL 5 | root | Test2020.M |
For Windows assets, set Windows SSH first
The MySQL application requires remote access permissions for core and KOKo
3.2.1. Edit the Asset tree
The root node Default cannot have the same name. Right-click nodes to add, delete, and rename nodes, and perform operations related to assets
Description: \ :
Click Asset Management – Asset List on the left of the page. Right-click the root node Default to create SSH Server and RDP Server
├─ SSH Server ├─ RDP ServerCopy the code
3.2.2. Create a management user
Click Asset Management – New Admin User on the left of the page to create two Admin users. The content of the Admin User is Admin User and Password of the form above
You can select either the password or the key. Some assets cannot pass password authentication. You can use private key authentication instead
The form | Example of SSH management users | RDP management user example |
---|---|---|
The name of the | 172.16.80.11 _root | 172.16.80.21 _administrator |
The user name | root | administrator |
password | Test2020.L | Test2020.W |
SSH key | ||
note | SSH asset management user | RDP asset management user |
Asset management —-> Manage User —-> Create, enter the administrator and password of the managed terminal, and click Submit. The admin user is the root user on the asset (the controlled server) or the user with NOPASSWD: ALL sudo permission that JumpServer uses to push system users, get asset hardware information, and so on.
3.2.3. Create an asset
Click Asset Management – Asset List – Create Asset on the left of the page to import both assets
The host name must be unique
The form | SSH Asset Example | RDP asset example |
---|---|---|
The host name | test_ssh01 | test_rdp01 |
IP (domain name) | 172.16.80.11 | 172.16.80.21 |
The system platform | Linux | Windows |
Public IP | ||
domain | ||
Protocol suite | ssh 22 | rdp 3389 / ssh 22 |
Manage users | 172.16.80.11 _root | 172.16.80.21 _administrator |
node | Default / SSH Server | Default / RDP Server |
Note To create Windows assets, select SSH and RDP for the protocol group. Otherwise, you cannot obtain the status and hardware information of Windows assets.
Tip: Asset Management –> Asset List –> New, fill in the corresponding managed host information and IP address information, and manage users, click submit at the bottom;
Tip: Once the commit is complete, we can see in the asset list that we just added to the host;
3.2.4. Create a database application
Click Application Management > Database Application > Create Database Application to create the mysql database
The form | MySQL Asset example |
---|---|
The name of the | test_mysql01 |
type | MySQL |
The host | 172.16.80.31 |
port | 3306 |
The database | |
note | MySQL assets |
The database option can be left blank and, for certain users, only the specified database can be accessed, specifying the database name
3.2.5. Create a system user
IP | System | System User | Password | Group | Sudo | Sftp Root |
---|---|---|---|---|---|---|
172.16.80.11 | Centos 7 | testssh01 | random pass | ALL | / | |
172.16.80.21 | Windows 10 | testrdp01 | random pass | Users | ||
172.16.80.23 | MySQL 5 | root | Test2020.M |
Click Asset Management > System User > Create system User to create a protocol system user
The form | SSH System User |
---|---|
The name of the | Test_ssh01_ Test system user |
Login mode | Automatic landing |
The user name | testssh01 |
agreement | ssh |
Automatic push | Square root |
Sudo | ALL |
Shell | /bin/bash |
The home directory | |
User affiliate group | |
Automatic key generation | Square root |
SFTP root | / |
The form | RDP system user |
---|---|
The name of the | Test_rdp01_ Tests the system user |
Login mode | Automatic landing |
The user name | testrdp01 |
agreement | rdp |
Automatic push | Square root |
Automatic key generation | Square root |
The form | MySQL system user |
---|---|
The name of the | Test_mysql01_ Test system user |
Login mode | Automatic landing |
The user name | root |
agreement | mysql |
password | Test2020.M |
Asset Management –> System User –> New, fill in user name, check automatic push and automatic generation key, click submit at the bottom; The user specified here will be used as the user to log in to the corresponding host on jumpServer. If the managed side does not have this user, JumpServer will create a system user from the admin user we just added.
3.3. Create an authorization rule
Permission management –> Asset authorization –> Create, fill in the name, to select users and groups and assets and system users, and then click the bottom submit; At this point a resource is authorized to the test user and members of the Test group; Here need to note that a node has a lot of server, if you want to authorize a single server to a user, the following node is left blank, if you want to be authorized to the user you can select a node, the assets can be left blank, if you want to authorize a single asset and a node to the user, the choice of the corresponding assets and node; If the default node is selected, all hosts under the default node are authorized to users. Default The default node contains all hosts.
3.3.1. Allocate assets to users
IP | System | System User | User |
---|---|---|---|
172.16.80.11 | Centos 7 | testssh01 | admin |
172.16.80.21 | Windows 10 | testrdp01 | admin |
172.16.80.31 | MySQL 5 | root | admin |
Click Authorization Management – Asset Authorization – Create Authorization Rule on the left side of the page to create two authorization rules
The form | SSH Asset Authorization | RDP asset authorization |
---|---|---|
The name of the | Test_ssh01_ Test authorization | Test_rdp01_ Tests authorization |
The user | Administrator(admin) | Administrator(admin) |
User groups | ||
assets | Test_ssh01 (172.16.80.11) | Test_rdp01 (172.16.80.21) |
node | ||
Users of the system | Test_ssh01_ Test system user (testssh01) | Test_rdp01_ Test system user (testrdp01) |
permissions | Tick all | Tick all |
3.3.2. Assign database applications to users
Click Authorization Management – Database Application – Create Authorization Rule to create database authorization
The form | MySQL Asset Authorization |
---|---|
The name of the | Test_mysql01_ Test authorization |
The user | Administrator(admin) |
User groups | |
Database Application | test_mysql01 |
Users of the system | Test_mysql01_ test system user (root) |
3.4 user login
- Login JumpServer
Click Session Management on the left of the page. – Web terminal users can view only the assets authorized by the administrator. If no asset exists after login, contact the administrator for confirmation
- Connect the assets
Click the link on the right of my Asset to quickly connect the asset. You can also click the Web terminal in the left column and click the asset name to connect the asset. If connection timeout is displayed, please refer to the FAQ document to deal with it
- Disconnect the assets
Clicking the Server button at the top of the page will bring up a selection option, the first one to disconnect the selected connections, the second one to disconnect all connections can also directly click the asset widget X, SSH session can also enter exit to exit directly close the page is also available, but not recommended
- File management
Click File Management. Select assets on the left. Currently, you can use SFTP to manage assets that only support automatic login over SSH
3.5. View playback of user operations
Click Session management —-> Session Management —-> Historical session —-> Find the playback of the corresponding session to view the operations performed by the corresponding user in the past session.
About Me
● This article was originally published on personal wechat public number (DB treasure) ● QQ group number: 223161599, 618766405, wechat group private chat ● personal QQ id (646634621), wechat account (db_bao), please note the reason