jumpserver简介
跳板机概述:
跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。
跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;
jumpserver概述
Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发限制。
为互联网企业提供了认证,授权,审计,自动化运维等功能。
官方网站
http://www.jumpserver.org
部署Jumpserver
配置本地jumpserver yum源
vim /etc/yum.repos.d/jumpserver.repo
[jumpserver]
name=CentOS7
baseurl=file:///root/jumpserver-packs
enable=1
gpgcheck=0
上传压缩包,解压
tar -zxvf jumpserver-packs.tar.gz
tar -zxvf pip-packs.tar.gz
tar -zxvf Python-3.6.8.tgz -C /usr/local/src/
安装依赖包
yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
编译安装Python
cd /usr/local/src/Python-3.6.8/
./configure --prefix=/usr/local/python
make -j 4 && make install
给Python做软链接
ln -s /usr/local/python/bin/* /usr/local/bin/
查看版本号
python3 -V
pip3 -V
配置Python虚拟环境
Cd
python3.6 -m venv /opt/py3
source /opt/py3/bin/activate
后面有个py3就算好了
把Python虚拟环境设为开机自启
echo "source /opt/py3/bin/activate" >> /root/.bashrc
安装jumpserver
解压
unzip jumpserver-master.zip -d /opt/
cd /opt/
mv jumpserver-master/ jumpserver
cd /opt/jumpserver/requirements/
安装rpm依赖
yum -y install $(cat rpm_requirements.txt)
安装Python库依赖
pip install --no-index --find-links=/root/pip-packs/ pyasn1 six cffi pytest-runner
cd /opt/jumpserver/requirements/
pip install --no-index --find-links=/root/pip-packs/ -r requirements.txt
拓展知识(可以不用做)
pip list #查看安装的包
pip freeze > requirements.txt #将已经通过pip安装的包的名称记录到 requirements.txt文件中
pip download -d /root/pip-packs/ -r
requirements.txt 缓存pip下载包
安装redis
yum -y install redis
systemctl start redis
systemctl enable redis
安装mysql
yum -y install mariadb mariadb-devel mariadb-server
systemctl start mariadb
systemctl enable mariadb
创建jumpserver数据库授权
Mysql
create database jumpserver default charset 'utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver';
生成秘钥
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
iAPQpPIiAM6TLlZi0DA0Lktqt5WMjFhS6PhsqM4Ky4LvS7cHd
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16
kSFIIMm634zOc2Y2
配置jumpserver配置文件
写好生成的秘钥和mysql授权的名
生成数据库表结构和初始化数据
cd /opt/jumpserver/utils/
sh make_migrations.sh
运行jumpserver
cd /opt/jumpserver/
./jms start all
设置service脚本
vim /usr/lib/systemd/system/jms.service
[Unit]
Description=jms
After=network.target mariadb.service redis.service docker.service
Wants=mariadb.service redis.service docker.service
[Service]
Type=forking
Environment="PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
ExecStart=/opt/jumpserver/jms start all -d
ExecRestart=/opt/jumpserver/jms restart all -d
ExecStop=/opt/jumpserver/jms stop
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart jms
systemctl enable jms `设置开机自启`
登录
192.168.100.10:8080
输入管理员账号和密码
访问Web Terminal(web linux终端)会报错。
要安装koko组件
tar -zxvf koko-master-6d4e69b-linux-amd64.tar.gz -C /opt/
chown -R root:root /opt/kokodir/
cd /opt/kokodir/
cp config_example.yml config.yml
vim config.yml `秘钥和jumpserver一样`
BOOTSTRAP_TOKEN: h8X7RRmkczrV3Dts
SECRET_KEY: cUBbafUeVjpsO9txGxKbYQhagezAzYaPfVNGQnI2AGYZIaNFL
./koko & ##启动koko
netstat -antup | grep 2222 ##查看一下端口
把koko加入开机自启
echo " cd /opt/kokodir && ./koko & " >> /etc/rc.local
chmod +x /etc/rc.local
在web后台查看终端
使用ssh测试
ssh admin@192.168.100.10 -p 2222
有了Web Terminal以后,我们可以远程堡垒机,然后通过堡垒机进行登录管理服务器。
部署Luna组件
解压
tar -zxvf luna.tar.gz -C /opt/
chown -R root:root /opt/luna/
设置nginx整合各各组件
安装nginx
yum install -y nginx
修改配置文件
vim /etc/nginx/nginx.conf #把80端口修改为808
server {
listen 808 default_server;
listen [::]:808 default_server;
创建jumpserver配置文件
所有的jumpserver的服务都使用nginx来进行反向代理,开启nginx缓存
vim /etc/nginx/conf.d/jumpserver.conf
server {
listen 80;
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 /socket.io/ {
proxy_pass http://localhost:5000/socket.io/;
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 /coco/ {
proxy_pass http://localhost:5000/coco/;
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 / {
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;
}
}
测试配置文件
Nginx -t
启动nginx
systemctl start nginx
systemctl enable nginx
登录jumpserver
192.168.100.10
Luna可以打开了
配置Jumpserver
改成自己本机ip
设置jumpserver邮箱(虚拟机需要联网)
提交完新浪邮箱会发邮件
创建用户
编写画圈部分
提交完会发送邮件
点击重制密码
登录到创建的用户
创建组
添加资产
开启新的一台虚拟机
创建管理用户
添加资产
创建命令过滤器
系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行,如果规则的动作是禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
写上rm -rf / 以免哪个沙雕删库跑路*
创建命令过滤器规则
提交就可以啦
创建系统用户(创建第一次可能输入密码的行没有,在编辑一次就可以啦)
创建资产授权
测试
会话管理打开web终端
安装个nginx(没有不安了),和httpd
使用xshell测试
登录我自己的“嘿嘿嘿”账号测试连接
ssh 嘿嘿嘿@192.168.100.10 -p 2222
登录asd主机
启动以下刚刚安装的httpd
测试网页
查看asd主机历史命令记录
测试完成(在历史会话也可以看到回放视频)
实验做到这里就结束了,做的不好请谅解,如果有什么问题请小伙伴们留言~~
转载:https://blog.csdn.net/weixin_46381668/article/details/105410716