jumpserver安装(centos)

jumpserver安装
#仅供参考,不具备商业使用
#有兴趣的朋友可以加下面的群入群,新手上路,请多多关照~
QQ群:1135288585




一:环境要求
1、硬件配置
2 CPU及以上
2 memory及以上
50 G硬盘及以上
操作系统centos7x86_64 及以上


2、软件配置
python 3.6及以上
mysql 5.6及以上
mariadb server 5.5.56及以上
redis
java
tomcat




二、环境准备
1、永久关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld

2、永久关闭 selinux
cat /etc/selinux/config |grep SELINUX
在这里插入图片描述

sed -i s/enforcing/disabled/g /etc/selinux/config #修改成SELINUX=disabled
在这里插入图片描述



三、准备 Python3 和 Python 虚拟环境
1、安装依赖包
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git lrzsz unzip

2、源码包安装Python3.6.1
(1)安装python3.6.1依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

(2)下载python源码
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

(3)安装python3.6.1
tar -zxvf Python-3.6.1.tgz -C /opt/
cd /opt/Python-3.6.1
./configure --prefix=/usr/local/python3 --with-ssl --enable-optimizations
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3

(4)将python加入PATH
vim ~/.bash_profile
#Python
PATH= P A T H : PATH: PATH:HOME/bin:/usr/local/python3/bin

(5)使环境变量生效
source ~/.bash_profile

(6)检查Python3与pip
python3 -V
pip3 -V
在这里插入图片描述

3、创建 Python 虚拟环境
cd /opt/Python-3.6.1
python3 -m venv py3

4、载入 Python 虚拟环境
#每次操作 JumpServer 都需要先载入 py3 虚拟环境
#注意是在解压python3目录下执行

cd /opt/Python-3.6.1 ; source /opt/Python-3.6.1/py3/bin/activate
在这里插入图片描述

5、自动载入 Python 虚拟环境配置
#此项仅为懒癌晚期的人员使用,防止运行 Jumpserver 时忘记载入 Python 虚拟环境导致程序无法运行。使用autoenv

#下载
cd /opt
git clone https://github.com/kennethreitz/autoenv.git
或者下载zip包

#解压
unzip autoenv-master.zip
find / -name activate.sh
echo ‘source /opt/autoenv-master/activate.sh’ >> ~/.bashrc
source ~/.bashrc



四、安装 Jumpserver
1、下载或 Clone 项目
cd /opt/

wget https://github.com/jumpserver/jumpserver/releases/download/v2.2.2/jumpserver-v2.2.2.tar.gz
tar xf jumpserver-v2.2.2.tar.gz
mv jumpserver-v2.2.2 jumpserver

2、进入jumpserver 目录时将自动载入 python 虚拟环境
echo “source /opt/Python-3.6.1/py3/bin/activate” > /opt/jumpserver/.env

3、首次进入 jumpserver 文件夹会有提示,按 y 即可
jumpserver安装(centos)_第1张图片

4、安装依赖 RPM 包
cd /opt/jumpserver/requirements/
yum -y install $(cat rpm_requirements.txt)

5、安装 Python 库依赖
pip install -r requirements.txt



五、安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke
1、下载redis源码
wget http://download.redis.io/releases/redis-2.8.6.tar.gz

2、解压并make安装
tar xzf redis-2.8.6.tar.gz
cd redis-2.8.6
make

3、指定安装位置,如果默认没有指定安装位置则安装在/usr/local/bin/目录下
make PREFIX=/usr/local/redis install

4、复制redis的配置文件到/usr/local/redis/etc/目录下,方便管理
mkdir /usr/local/redis/etc/
cp ./redis.conf /usr/local/redis/etc/

5、修改配置文件
vim /usr/local/redis/etc/redis.conf
daemonize no 修改为yes #后台启动

6、启动redis服务.
ln -s /usr/local/redis/bin/* /usr/local/bin/
redis-server /usr/local/redis/etc/redis.conf



六、安装 MySQL

1、查询mariadb和mysql,如果有就卸载
rpm -qa |grep mariadb
rpm -qa |grep mysql

#卸载方式
rpm -e --nodeps …

2、使用yum安装MariaDB
yum -y install mariadb mariadb-server mariadb-devel -y

3、设置开启自动mariadb
systemctl start mariadb
systemctl enable mariadb

4、配置MariaDB
在命令行执行mysql_secure_installation进行相关配置
首先会设置密码,会提示先输入密码
(1)Enter current password for root //初次运行直接回车
(2)Set root password // 是否设置root用户密码,输入y并回车或直接回车
(3)New password: //设置root用户的密码
(4)Re-enter new password //再输入一次你设置的密码
(5)Remove anonymous users //是否删除匿名用户,回车
(6)Disallow root login remotely //是否禁止root远程登录,回车,
(7)Remove test database and access to it //是否删除test数据库,回车
(8)Reload privilege tables now //是否重新加载权限表,回车

5、登录MariaDB
mysql -uroot -proot123

6、创建数据库 Jumpserver 并授权
(1)数据库数据库与字符集要求
create database jumpserver default charset ‘utf8’ collate ‘utf8_bin’;

grant all privileges on . to ‘jumpserver’@‘localhost’ identified by ‘root123’;

flush privileges;

7、修改 Jumpserver 配置文件
cd /opt/jumpserver
cp config_example.yml config.yml

vi config.yml

#SECURITY WARNING: keep the secret key used in production secret!
#加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成
#cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
SECRET_KEY: W5Ic3fMXNZ0p5RIy5DhJYJllppTfcfkW8Yuf94VBMfpcssbfu

#SECURITY WARNING: keep the bootstrap token used in production secret!
#预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN: zxffNymGjP79j6BN

#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: 86400
SESSION_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: mysql
DB_HOST: localhost
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: root123
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.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070

#Use Redis as broker for celery and web socket
#Redis配置
REDIS_HOST: localhost
REDIS_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
#AUTH_OPENID_IGNORE_SSL_VERIFICATION: True
#AUTH_OPENID_SHARE_SESSION: True

#Use Radius authorization
#使用Radius来认证
#AUTH_RADIUS: false
#RADIUS_SERVER: localhost
#RADIUS_PORT: 1812
#RADIUS_SECRET:

#CAS 配置
#AUTH_CAS’: False,
#CAS_SERVER_URL’: “http://host/cas/”,
#CAS_ROOT_PROXIED_AS’: ‘http://jumpserver-host:port’,
#CAS_LOGOUT_COMPLETELY’: True,
#CAS_VERSION’: 3,

#LDAP/AD settings
#LDAP 搜索分页数量
#AUTH_LDAP_SEARCH_PAGED_SIZE: 1000

#定时同步用户
#启用 / 禁用
#AUTH_LDAP_SYNC_IS_PERIODIC: True
#同步间隔 (单位: 时) (优先)
#AUTH_LDAP_SYNC_INTERVAL: 12
#Crontab 表达式
#AUTH_LDAP_SYNC_CRONTAB: * 6 * * *

#LDAP 用户登录时仅允许在用户列表中的用户执行 LDAP Server 认证
#AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS: False

#LDAP 认证时如果日志中出现以下信息将参数设置为 0 (详情参见:https://www.python-ldap.org/en/latest/faq.html)
#In order to perform this operation a successful bind must be completed on the connection
#AUTH_LDAP_OPTIONS_OPT_REFERRALS: -1

#OTP settings
#OTP/MFA 配置
#OTP_VALID_WINDOW: 0
#OTP_ISSUER_NAME: Jumpserver

#Perm show single asset to ungrouped node
#是否把未授权节点资产放入到 未分组 节点中
#PERM_SINGLE_ASSET_TO_UNGROUP_NODE: false

#启用定时任务
#PERIOD_TASK_ENABLE: True

#启用二次复合认证配置
#LOGIN_CONFIRM_ENABLE: False

#Windows 登录跳过手动输入密码
WINDOWS_SKIP_ALL_MANUAL_PASSWORD: True



#生成数据库表结构和初始化数据(这块做报错可以忽略)
cd /opt/jumpserver/utils
bash make_migrations.sh

pip install psutil
pip install passlib



8、运行 Jumpserver
cd /opt/jumpserver
#后台运行使用 -d 参数
./jms start all
./jms start -d
./jms start all -d


9、浏览器访问
http://203.195.160.104:8080/
默认账号: admin
密码: admin
#页面显示不正常先不用处理,继续往下操作,后面搭建 nginx 代理后即可正常访问,原因是因为 django 无法在非 debug 模式下加载静态资源





七、安装 SSH Server 和 WebSocket Server: Coco
1、下载coco组件
wget https://github.com/jumpserver/koko/releases/download/v2.2.2/koko-v2.2.2-linux-amd64.tar.gz

tar -xf koko-v2.2.2-linux-amd64.tar.gz ; mv koko-v2.2.2-linux-amd64 koko
chown -R root:root koko ;cd koko ; cp -r kubectl /usr/local/bin

wget https://download.jumpserver.org/public/kubectl.tar.gz
tar -xf kubectl.tar.gz ; chmod 755 kubectl
mv kubectl /usr/local/bin/rawkubectl

2、进入 coco 目录时将自动载入 python 虚拟环境
echo “source /opt/Python-3.6.1/py3/bin/activate” > /opt/koko/.env

#首次进入 coco 文件夹会有提示,按 y 即可
jumpserver安装(centos)_第2张图片

3、修改配置文件并运行
cd /opt/koko ; cp config_example.yml config.yml
vi config.yml

#项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
#NAME: { { Hostname }}

#Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080

#Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
#请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: zxffNymGjP79j6BN

#启动时绑定的ip, 默认 0.0.0.0
#BIND_HOST: 0.0.0.0

#监听的SSH端口号, 默认2222
#SSHD_PORT: 2222

#监听的HTTP/WS端口号,默认5000
#HTTPD_PORT: 5000

#项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,
#如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
#ACCESS_KEY: null

#ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
#ACCESS_KEY_FILE: data/keys/.access_key

#设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: ERROR

#SSH连接超时时间 (default 15 seconds)
#SSH_TIMEOUT: 15

#语言 [en,zh]
#LANG: zh

#SFTP的根目录, 可选 /tmp, Home其他自定义目录
#SFTP_ROOT: /tmp

#SFTP是否显示隐藏文件
#SFTP_SHOW_HIDDEN_FILE: false

#是否复用和用户后端资产已建立的连接(用户不会复用其他用户的连接)
#REUSE_CONNECTION: true

#资产加载策略, 可根据资产规模自行调整. 默认异步加载资产, 异步搜索分页; 如果为all, 则资产全部加载, 本地搜索分页.
#ASSET_LOAD_POLICY:

#zip压缩的最大额度 (单位: M)
#ZIP_MAX_SIZE: 1024M

#zip压缩存放的临时目录 /tmp
#ZIP_TMP_PATH: /tmp

#向 SSH Client 连接发送心跳的时间间隔 (单位: 秒),默认为30, 0则表示不发送
#CLIENT_ALIVE_INTERVAL: 30

#向资产发送心跳包的重试次数,默认为3
#RETRY_ALIVE_COUNT_MAX: 3

#会话共享使用的类型 [local, redis], 默认local
SHARE_ROOM_TYPE: redis

#Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD:
#REDIS_CLUSTERS:
REDIS_DB_ROOM: 6

4、启动koko
#后台运行使用 -d 参数
./koko -d




八、 部署Guacamole组件
#guacamole是一种HTML5 Web应用程序,可使用远程桌面协议(例如VNC或RDP)提供对桌面环境的访问

1、部署guacamole
cd /opt &&
wget -O docker-guacamole-v2.2.2.tar.gz https://github.com/jumpserver/docker-guacamole/archive/master.tar.gz

mkdir /opt/docker-guacamole &&
tar -xf docker-guacamole-v2.2.2.tar.gz -C /opt/docker-guacamole --strip-components 1 &&
rm -rf /opt/docker-guacamole-v2.2.2.tar.gz &&
cd /opt/docker-guacamole &&
wget http://download.jumpserver.org/public/guacamole-server-1.2.0.tar.gz &&
tar -xf guacamole-server-1.2.0.tar.gz &&
wget http://download.jumpserver.org/public/ssh-forward.tar.gz &&
tar -xf ssh-forward.tar.gz -C /bin/ &&
chmod +x /bin/ssh-forward

cd /opt/docker-guacamole/guacamole-server-1.2.0



#安装依赖
#安装依赖参考:http://guacamole.apache.org/doc/gug/installing-guacamole.html
yum install cairo-devel uuid-devel



./configure --with-init-dir=/etc/init.d &&
make &&
make install


2、配置java环境
(1)在服务器安装指定版本JDK,执行命令
yum install java-1.8.0-openjdk* -y


(2)等待安装完成,检测是否成功
java -version


(3)配置JDK环境变量,编辑配置文件,增加以下几行然后保存退出
vim /etc/profile
#java环境变量
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar: J A V A H O M E / j r e / l i b / r t . j a r e x p o r t P A T H = JAVA_HOME/jre/lib/rt.jar export PATH= JAVAHOME/jre/lib/rt.jarexportPATH=PATH:$JAVA_HOME/bin


(4)刷新生效
source /etc/profile

(5)需要先在当前环境配置好 Java
mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record /config/guacamole/drive &&
chown daemon:daemon /config/guacamole/record /config/guacamole/drive &&
cd /config



3、访问 此处 下载最新的 Tomcat9
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz

tar -xf apache-tomcat-9.0.36.tar.gz
mv apache-tomcat-9.0.36 tomcat9
rm -rf /config/tomcat9/webapps/*
sed -i ‘s/Connector port=“8080”/Connector port=“8081”/g’ /config/tomcat9/conf/server.xml
echo “java.util.logging.ConsoleHandler.encoding = UTF-8” >> /config/tomcat9/conf/logging.properties
wget http://download.jumpserver.org/release/v2.2.2/guacamole-client-v2.2.2.tar.gz
tar -xf guacamole-client-v2.2.2.tar.gz
rm -rf guacamole-client-v2.2.2.tar.gz
cp guacamole-client-v2.2.2/guacamole-.war /config/tomcat9/webapps/ROOT.war
cp guacamole-client-v2.2.2/guacamole-
.jar /config/guacamole/extensions/
mv /opt/docker-guacamole/guacamole.properties /config/guacamole/
rm -rf /opt/docker-guacamole



4、设置 Guacamole 环境
export JUMPSERVER_SERVER=http://127.0.0.1:8080
echo “export JUMPSERVER_SERVER=http://127.0.0.1:8080” >> ~/.bashrc
export BOOTSTRAP_TOKEN=zxffNymGjP79j6BN
echo “export BOOTSTRAP_TOKEN=zxffNymGjP79j6BN” >> ~/.bashrc
export JUMPSERVER_KEY_DIR=/config/guacamole/keys
echo “export JUMPSERVER_KEY_DIR=/config/guacamole/keys” >> ~/.bashrc
export GUACAMOLE_HOME=/config/guacamole
echo “export GUACAMOLE_HOME=/config/guacamole” >> ~/.bashrc
export GUACAMOLE_LOG_LEVEL=ERROR
echo “export GUACAMOLE_LOG_LEVEL=ERROR” >> ~/.bashrc
export JUMPSERVER_ENABLE_DRIVE=true
echo “export JUMPSERVER_ENABLE_DRIVE=true” >> ~/.bashrc


#环境变量说明
JUMPSERVER_SERVER 指 core 访问地址
BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN 值
JUMPSERVER_KEY_DIR 认证成功后 key 存放目录
GUACAMOLE_HOME 为 guacamole.properties 配置文件所在目录
GUACAMOLE_LOG_LEVEL 为生成日志的等级
JUMPSERVER_ENABLE_DRIVE 为 rdp 协议挂载共享盘

5、启动Guacamole
/etc/init.d/guacd start
sh /config/tomcat9/bin/startup.sh



九、安装Lina与LUNA
1、Lina组件部署
cd /opt ; wget https://github.com/jumpserver/lina/releases/download/v2.2.2/lina-v2.2.2.tar.gz
tar -xf lina-v2.1.1.tar.gz
mv lina-v2.1.1 lina
useradd nginx
chown -R nginx:nginx lina


2、Luna组件部署
cd /opt
#下载请自行百度
tar -xf luna-v2.2.2.tar.gz
mv luna-v2.2.2 luna
chown -R nginx:nginx luna

十、配置 Nginx 整合各组件
1、yum安装nginx
yum install nginx

2、nginx创建一个新的配置文件
vim /etc/nginx/nginx.conf
#最后一行手动添加如下
include /etc/nginx/conf/vhost/*.conf;

mkdir /etc/nginx/conf/vhost -p


3、nginx配置jumpserver
vim /etc/nginx/conf/vhost/jumpserver.conf

server {
#监听端口
listen 1314;
#默认即可
server_name localhost;
#录像及文件上传大小限制
client_max_body_size 100m;

location /ui/ {
    try_files $uri / /index.html;
    alias /opt/lina/;
}

#luna 路径,如果修改安装目录,此处需要修改
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}

#录像位置,如果修改安装目录,此处需要修改
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}

#静态资源,如果修改安装目录,此处需要修改
location /static/ {
root /opt/jumpserver/data/;
}

#如果coco安装在别的服务器,请填写它的ip
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;
}

#如果guacamole安装在别的服务器,请填写它的ip
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_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:8070;
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /api/ {
    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;
}

location /core/ {
    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;
}

location / {
    rewrite ^/(.*)$ /ui/$1 last;
}

}



4、检查nginx配置文件并重启nginx
nginx -t
nginx -s reload

#如果没有netstat命令,请安装
yum install net-tools

#查看nginx服务状态
netstat -lntp
ps -ef |grep nginx



5、访问jupserver服务器
#IP是nginx服务的IP
http://203.195.160.104:1314

#默认的用户名:admin,密码:admin



6、第一次登陆会显示修改默认密码
jumpserver安装(centos)_第3张图片



7、到此为止jumpserver已安装完毕,接下来,我们去学作为运维,我们应该怎么使用,有菜鸟一起学习的,下方留言呦~

你可能感兴趣的:(jumpserver,linux,服务器)