-
-
Coco: 实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
-
Jumpserver 环境要求:
- 硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
- 操作系统: Linux 发行版 x86_64
- Python = 3.6.x
- Mysql Server ≥ 5.6
- Mariadb Server ≥ 5.5.56
- Redis
主机名 | IP地址 | 说明 |
tiaobanji | 172.16.1.91 | jumpserver |
关闭 selinux 和防火墙
[root@tiaobanji /]# setenforce 0 # 可以设置配置文件永久关闭 [root@tiaobanji /]# systemctl stop firewalld.service ; systemctl disable
修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
[root@tiaobanji /]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 [root@tiaobanji /]# export LC_ALL=zh_CN.UTF-8 [root@tiaobanji /]# echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf #重新连接,语言环境改变
[root@tiaobanji /]# vim /etc/yum.conf 改:keepcache=0 为:keepcache=1 [root@tiaobanji ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
2. 编译安装python3.6.1
[root@tiaobanji /]# cd /opt [root@tiaobanji /opt]# mv jumpserver-package/* /opt/ [root@tiaobanji /opt]# tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1 [root@tiaobanji /opt/Python-3.6.1]# ./configure && make -j 4 && make install #编译安装 # 这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦...
3. 建立 Python 虚拟环境
因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境
[root@tiaobanji /]# cd /opt [root@tiaobanji /]# python3 -m venv py3 [root@tiaobanji /]# source /opt/py3/bin/activate (py3) [root@tiaobanji /opt]# #切换成功的,前面有一个py3 标识
看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
[root@tiaobanji /]# cd /opt/jumpserver/
2. 安装依赖 RPM 包
[root@tiaobanji /]# cd /opt/jumpserver/requirements [root@tiaobanji /]# yum -y install $(cat rpm_requirements.txt)
3. 安装 Python 库依赖
[root@tiaobanji /]# cd /opt/jumpserver/requirements [root@tiaobanji /]# source /opt/py3/bin/activate (py3) [root@tiaobanji /opt]# pip -V pip 9.0.1 from /opt/py3/lib/python3.6/site-packages (python 3.6)
方法1:离线安装:
(py3) [root@tiaobanji /opt]# cd /opt/python-package (py3) [root@tiaobanji /opt/python-package]# pip install ./* # python-gssapi-0.6.4.tar.gz 离线安装还是在线安装会有卡顿等待5分钟
方法二:在线安装
[root@tiaobanji ~]# cd /opt/jumpserver/requirements/ [root@tiaobanji /opt/jumpserver/requirements]# pip install -r requirements.txt
pip 是一个安装和管理 Python 包的工具,相当于yum命令
4. 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke
[root@tiaobanji /]# yum -y install redis [root@tiaobanji /]# systemctl enable redis ; systemctl start redis
5. 安装 MySQL
[root@tiaobanji /]# yum install mariadb mariadb-devel mariadb-server -y [root@tiaobanji /]# systemctl enable mariadb ; systemctl start mariadb
6. 建数据库 Jumpserver 并授权
[root@tiaobanji /]# mysql MariaDB [(none)]> create database jumpserver default charset 'utf8'; MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
# delete from mysql.user where user='jumpserver' and host='jumpserver'; 删除表信息
7. 改 Jumpserver 配置文件
(py3) [root@tiaobanji /opt]# cd /opt/jumpserver (py3) [root@tiaobanji /opt/jumpserver]# cp config_example.py config.py (py3) [root@tiaobanji /opt/jumpserver]# vim config.py
修改 DevelopmentConfig 中的配置,因为默认 Jumpserver 使用该配置,它继承自 Config
注意: 配置文件是 Python 格式,不要用 TAB,而要用空格 class DevelopmentConfig(Config):
37 # MySQL or postgres setting like: 38 DB_ENGINE = 'mysql' 39 DB_HOST = '127.0.0.1' 40 DB_PORT = 3306 41 DB_USER = 'jumpserver' 42 DB_PASSWORD = '123456' 43 DB_NAME = 'jumpserver'
8. 成数据库表结构和初始化数据
(py3) [root@tiaobanji /opt]# cd /opt/jumpserver/utils (py3) [root@tiaobanji /opt/jumpserver/utils]# bash make_migrations.sh ##注,在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,不然后导入不了Django等软件包。
9. 运行jumpserver
(py3) [root@tiaobanji /opt]# cd /opt/jumpserver (py3) [root@tiaobanji /opt/jumpserver]# chmod +x jms (py3) [root@tiaobanji /opt/jumpserver]# ./jms start all -d (py3) [root@tiaobanji /opt/jumpserver]# ./jms restart all -d #重启 # 后台运行使用 -d 参数 注: ./jms start all #前台运行 如果运行失败了,重新启动一下。
最后几行结果:
gunicorn is running: 10878 celery is running: 10895 beat is running: 10896
启动服务的脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
测试:
(py3) [root@tiaobanji /opt]# cd /opt/coco #离线安装
(py3) [root@tiaobanji /opt/coco]# source /opt/py3/bin/activate
(py3) [root@tiaobanji /opt]# cd /opt/coco/requirements (py3) [root@tiaobanji /opt/coco/requirements]# yum -y install $(cat rpm_requirements.txt) (py3) [root@tiaobanji /opt/coco/requirements]# pip install -r requirements.txt #前面已经离线安装过python的包,这里就很快安装成功了,或提示已经安装成功。 注:扩展: pip download -r requirements.txt #使用download可以下载python包到本地
3. 查看配置文件并运行
(py3) [root@tiaobanji /opt]# cd /opt/coco (py3) [root@tiaobanji /opt/coco]# cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py
(py3) [root@tiaobanji /opt/coco]# chmod +x cocod (py3) [root@tiaobanji /opt/coco]# ./cocod start -d
新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数
访问(https://github.com/jumpserver/luna/releases
解压 Luna:
(py3) [root@tiaobanji /]# cd /opt (py3) [root@tiaobanji /opt]# tar xvf luna.tar.gz (py3) [root@tiaobanji /opt]# ls /opt/luna
vi /etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
(py3) [root@tiaobanji /]# yum -y install nginx
修改 /etc/nginx/conf.d/jumpserver.conf
(py3) [root@tiaobanji /]# vim /etc/nginx/nginx.conf
删除第38行到 57行中server {。。。}相关的内容,在vim命令模式,输入38gg,快速跳到38行,然后输入20dd,就可以删除。
删除后,在38行插入以一下内容:
server { listen 80; 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 /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/; } location /socket.io/ { proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器,请填写它的ip proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器,请填写它的ip } }
(py3) [root@tiaobanji /]# nginx -t # 检测配置文件
(py3) [root@tiaobanji /]# systemctl start nginx ; systemctl enable nginx
(py3) [root@tiaobanji /opt]# cd /opt/jumpserver 重启jumpserver
(py3) [root@tiaobanji /opt/jumpserver]# ./jms start all -d
注册:
刷新:
测试连接:
(py3) [root@tiaobanji /]# ssh -p2222 admin@172.16.1.91 #密码: admin 端口port:2222 #不知为何我一直登不上,直接在网页上修改密码
重新连接测试:
(py3) [root@tiaobanji /]# ssh -p2222 admin@172.16.1.91 #密码: nihao123!
开启POP3/SMTP/IMAP服务方法:
请登录163邮箱,点击页面右上角的“设置”—在“高级”下,点“POP3/SMTP/IMAP”,勾选图中两个选项,点击确定。即可开启成功。开通后即可用闪电邮Outlook
(py3) [root@tiaobanji /]# /opt/jumpserver/jms stop all -d (py3) [root@tiaobanji /]# /opt/jumpserver/jms start all -d #一定要在虚拟环境捏启动