CentOS 7.7中如何部署JumpServer?
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇文章主要探讨CentOS 7.7中部署JumpServer的方法。有一定的参考价值,有需要的朋友可以参考一下,跟随小编一起来看解决方法吧。系统: CentOS 7IP: 172.16.75.1目录
千家信息网最后更新 2024年11月23日CentOS 7.7中如何部署JumpServer?
本篇文章主要探讨CentOS 7.7中部署JumpServer的方法。有一定的参考价值,有需要的朋友可以参考一下,跟随小编一起来看解决方法吧。
- 系统: CentOS 7
- IP: 172.16.75.1
- 目录: /opt
- 数据库: mariadb
- 代理: nginx
1.开始安装
防火墙 与 selinux 设置说明, 如果已经关闭了 防火墙 和 Selinux 的用户请跳过设置
systemctl stop firewalldsetenfore 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/configyum update -y#安装依赖包yum -y install wget gcc epel-release git
安装 Redis, JumpServer 使用 Redis 做 cache 和 celery broke
yum -y install redissystemctl enable redissystemctl start redis
安装mysql5.7
wget -nc http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmrpm -ivh mysql-community-release-el6-5.noarch.rpmyum -y install mysql-community-server mysql-community-develsystemctl enable mysqld#调整mysql的配置[root@192 conf.d]# cat /etc/my.cnf[mysqld]character_set_server = utf8mb4collation_server=utf8mb4_unicode_cidatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlmax_connections=3000# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#log-bin=mysql-binskip-name-resolvekey_buffer_size = 32M#默认2G,可根据内存大小调整,可以为总内存的70%innodb_buffer_pool_size = 2048M#innodb_log_file_size = 512M#在高写入负载尤其是大数据集的情况下很重要。这个值越大则性能相对越高,但是要注意到可能会增加恢复时间。我经常设置为64-512MB,根据服务器大小而异。# 用来缓冲日志数据的缓冲区的大小.# 当此值快满时, InnoDB将必须刷新数据到磁盘上.innodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 2#是否为Innodb比MyISAM慢1000倍而头大?看来也许你忘了修改这个参数了。默认值是 1,这意味着每次提交的更新事务(或者每个事务之外的语句)都会刷新到磁盘中,而这相当耗费资源,尤其是没有电池备用缓存时。很多应用程序,尤其是从 MyISAM转变过来的那些,把它的值设置为 2 就可以了,也就是不把日志刷新到磁盘上,而只刷新到操作系统的缓存上。日志仍然会每秒刷新到磁盘中去,因此通常不会丢失每秒1-2次更新的消耗。如果设置为0就快很多了,不过也相对不安全了 - MySQL服务器崩溃时就会丢失一些事务。设置为2指挥丢失刷新到操作系统缓存的那部分事务。sort_buffer_size = 6M#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8Mquery_cache_size = 64M#指定MySQL查询缓冲区的大小# 内部(内存中)临时表的最大大小tmp_table_size = 128M[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
启动mysql
systemctl start mysqld# 创建数据库 JumpServer 并授权DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24` # 生成随机数据库密码echo -e "\033[31m 你的数据库密码是 $DB_PASSWORD \033[0m"mysql -uroot -e "create database jumpserver default charset 'utf8'; grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '$DB_PASSWORD'; flush privileges;"# 通过epel安装 Nginx, 用作代理服务器整合 JumpServer 与各个组件yum -y install nginxsystemctl enable nginx# 安装 Python3.6yum -y install python3 python3-devel# 配置并载入 Python3 虚拟环境cd /optpython3.6 -m venv py3 # py3 为虚拟环境名称, 可自定义source /opt/py3/bin/activate # 退出虚拟环境可以使用 deactivate 命令# 看到下面的提示符代表成功, 以后运行 JumpServer 都要先运行以上 source 命令, 载入环境后默认以下所有命令均在该虚拟环境中运行(py3) [root@localhost py3]# 下载 JumpServercd /opt/git clone --depth=1 https://github.com/jumpserver/jumpserver.git# 安装依赖 RPM 包yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)# 安装 Python 库依赖pip install wheelpip install --upgrade pip setuptoolssed -i s/MarkupSafe==1.0/MarkupSafe==1.1.0/g /opt/jumpserver/requirements/requirements.txtpip install -r /opt/jumpserver/requirements/requirements.txt
新开一个xshell
# 修改 JumpServer 配置文件cd /opt/jumpservercp config_example.yml config.ymlSECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50` # 生成随机SECRET_KEYecho "SECRET_KEY=$SECRET_KEY" >> ~/.bashrcBOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16` # 生成随机BOOTSTRAP_TOKENecho "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrcsed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.ymlsed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.ymlsed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.ymlsed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.ymlsed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.ymlsed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.ymlecho -e "\033[31m 你的SECRET_KEY是 $SECRET_KEY \033[0m"echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m"vi config.yml # 确认内容有没有错误
配置文件示例
# SECURITY WARNING: keep the secret key used in production secret!# 加密秘钥 生产环境中请修改为随机字符串, 请勿外泄, PS: 纯数字不可以SECRET_KEY:# SECURITY WARNING: keep the bootstrap token used in production secret!# 预共享Token koko和guacamole用来注册服务账号, 不在使用原来的注册接受机制BOOTSTRAP_TOKEN:# Development env open this, when error occur display the full process track, Production disable it# DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志DEBUG: false# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/# 日志级别LOG_LEVEL: ERROR# LOG_DIR:# Session expiration setting, Default 24 hour, Also set expired on on browser close# 浏览器Session过期时间, 默认24小时, 也可以设置浏览器关闭则过期# SESSION_COOKIE_AGE: 86400SESSION_EXPIRE_AT_BROWSER_CLOSE: true# Database setting, Support sqlite3, mysql, postgres ....# 数据库设置# See https://docs.djangoproject.com/en/1.10/ref/settings/#databases# SQLite setting:# 使用单文件sqlite数据库# DB_ENGINE: sqlite3# DB_NAME:# MySQL or postgres setting like:# 使用Mysql作为数据库DB_ENGINE: mysqlDB_HOST: 127.0.0.1DB_PORT: 3306DB_USER: jumpserverDB_PASSWORD:DB_NAME: jumpserver# When Django start it will bind this host and port# ./manage.py runserver 127.0.0.1:8080# 运行时绑定端口HTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080# Use Redis as broker for celery and web socket# Redis配置REDIS_HOST: 127.0.0.1REDIS_PORT: 6379# REDIS_PASSWORD:# REDIS_DB_CELERY: 3# REDIS_DB_CACHE: 4# Use OpenID authorization# 使用OpenID 来进行认证设置# BASE_SITE_URL: http://localhost:8080# AUTH_OPENID: false # True or False# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/# AUTH_OPENID_REALM_NAME: realm-name# AUTH_OPENID_CLIENT_ID: client-id# AUTH_OPENID_CLIENT_SECRET: client-secret# OTP settings# OTP/MFA 配置# OTP_VALID_WINDOW: 0# OTP_ISSUER_NAME: Jumpserver
配置jms程序启动和开机自启(在第一个shell下执行 )
(py3) [root@localhost py3]cd /opt/jumpserver./jms start -d # 后台运行使用 -d 参数./jms start -d# 新版本更新了运行脚本, 使用方式./jms start|stop|status all 后台运行请添加 -d 参数wget -O /usr/lib/systemd/system/jms.service https://demo.jumpserver.org/download/shell/centos/jms.servicechmod 755 /usr/lib/systemd/system/jms.servicesystemctl enable jms # 配置自启
安装docker部署koko和guacamole
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum makecache fastrpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpgyum -y install docker-cesystemctl enable dockermkdir /etc/dockerwget -O /etc/docker/daemon.json http://demo.jumpserver.org/download/docker/daemon.jsonsystemctl restart docker# 允许 容器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# 获取当前服务器 IPServer_IP=`ip addr | grep 'state UP' -A2 | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1`echo -e "\033[31m 你的服务器IP是 $Server_IP \033[0m"# http:// 指向 jumpserver 的服务端口, 如 http://172.16.75.5:8080# BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKENdocker run --name jms_koko -d -p 2222:2222 -p 127.0.0.1:5000:5000 -e CORE_HOST=http://$Server_IP:8080 -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN --restart=always wojiushixiaobai/jms_koko:1.5.6docker run --name jms_guacamole -d -p 127.0.0.1:8081:8080 -e JUMPSERVER_SERVER=http://$Server_IP:8080 -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN --restart=always wojiushixiaobai/jms_guacamole:1.5.6
安装luna
# 安装 Web Terminal 前端: Luna 需要 Nginx 来运行访问 访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压, 不需要编译cd /optwget https://github.com/jumpserver/luna/releases/download/1.5.6/luna.tar.gz# 如果网络有问题导致下载无法完成可以使用下面地址wget https://demo.jumpserver.org/download/luna/1.5.6/luna.tar.gztar xf luna.tar.gzchown -R root:root luna
配置nginx
vi /etc/nginx/conf.d/jumpserver.confserver { listen 80; # server_name _; client_max_body_size 100m; # 录像及文件上传大小限制 location /luna/ { try_files $uri / /index.html; alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改 } location /media/ { add_header Content-Encoding gzip; root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改 } location /static/ { root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改 } location /koko/ { proxy_pass http://localhost:5000; proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log off; } location /guacamole/ { proxy_pass http://localhost:8081/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log off; } location /ws/ { proxy_pass http://localhost:8070; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log off; } location / { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log off; }}
运行nginx
# 运行 Nginxnginx -t # 确保配置没有问题, 有问题请先解决systemctl start nginx# 访问 http://172.16.75.5 (注意 没有 :8080 通过 nginx 代理端口进行访问)# 默认账号: admin 密码: admin 到会话管理-终端管理 接受 koko Guacamole 等应用的注册# 测试连接ssh -p2222 admin@172.16.75.5sftp -P2222 admin@172.16.75.5 密码: admin# 如果是用在 Windows 下, Xshell Terminal 登录语法如下ssh admin@172.16.75.5 2222sftp admin@172.16.75.5 2222 密码: admin 如果能登陆代表部署成功# sftp默认上传的位置在资产的 /tmp 目录下# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下
示例
[C:\~]ssh admin@172.16.75.5 2222Connecting to 172.16.75.5:2222...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.WARNING! The remote SSH server rejected X11 forwarding request. Administrator, 欢迎使用Jumpserver开源堡垒机系统 1) 输入 部分IP、主机名、备注 进行搜索登录(如果唯一). 2) 输入 / + IP,主机名 or 备注 进行搜索,如:/192.168. 3) 输入 p 进行显示您有权限的主机. 4) 输入 g 进行显示您有权限的节点. 5) 输入 d 进行显示您有权限的数据库. 6) 输入 r 进行刷新最新的机器和节点信息. 7) 输入 h 进行显示帮助. 8) 输入 q 进行退出.
看完上述内容,你们掌握CentOS 7.7中部署JumpServer的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
数据
运行
配置
大小
数据库
服务
输入
服务器
环境
目录
内存
密码
日志
缓冲
事务
参数
容器
文件
磁盘
端口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术挑战赛的含金量
免费永久个人云服务器
数据库自增长用什么关键字
应对网络安全的法律
it网络安全工程师待遇
1天学会数据库原理
什么牌子服务器好用
株洲it软件开发中专学校
网络安全是国家最高职称吗
美国网络安全框架构成
2021年网络安全周主题演讲
北京系统软件开发费用是多少
江苏三轴点胶软件开发
从sql文件导入数据库
软件开发与程序设计
校园网连接DNS服务器未响应
数据库如何查询以字母开头的
信息网络安全打油诗
分布式数据库厂商
2021十大网络安全案例
蛋白甲基化酶数据库
软件开发系统验收报告
mac 用什么软件开发
冷小小软件开发
思维互动课堂登录服务器异常
api服务器 token
长寿区技术软件开发服务公司
荣耀v30pro 数据库
数据库机器名
软件开发过程监控pmo