jumpserver 堡垒机环境搭建(详解)
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
特点:
- 完全开源,GPL授权
- Python编写,容易再次开发
- 实现了跳板机基本功能,认证、授权、审计
- 集成了Ansible,批量命令等
- 支持WebTerminal
- Bootstrap编写,界面美观
- 自动收集硬件信息
- 录像回放
- 命令搜索
- 实时监控
- 批量上传下载
jumpserver 3.0 安装
相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机!
- 环境:
- Centos 6.5 x86_64
- 关闭 iptables,关闭 selinux
- jumpserver:192.168.1.200
- clients:192.168.1.210
- ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。
一、安装依赖包
安装epel源
yum -y install epel-release
清理yum源缓存并重建缓存
yum clean all && yum makecache
升级软件包
yum -y update
安装依赖环境软件包
yum -y install git python-pip gcc gcc-c++ automake autoconf python-devel vim sshpass lrzsz readline-devel mysql* mariadb mariadb-server
二、初始化 mairadb Ubuntu 安装mysql
安装完成MariaDB,首先启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
接下来进行MariaDB的相关简单配置
mysql_secure_installation
首先是设置密码,会提示先输入密码
Enter current password for root (enter for none): <-初次运行直接回车 设置密码 Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车 New password: <– 设置root用户的密码 Re-enter new password: <– 再输入一次你设置的密码 其他配置 Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车 Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车, Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车 Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,接下来测试登录
mysql -uroot -p
2、配置MariaDB的字符集
文件/etc/my.cnf
vi /etc/my.cnf
在[mysqld]标签下添加init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake
文件/etc/my.cnf.d/client.cnf
vi /etc/my.cnf.d/client.cnf
在[client]中添加
default-character-set=utf8
文件/etc/my.cnf.d/mysql-clients.cnf
vi /etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加
default-character-set=utf8
全部配置完成,重启mariadb
systemctl restart mariadb
三、下载 jumpserver
cd /opt git clone https://github.com/ibuler/jumpserver.git
注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可
四、执行快速安装脚本
cd /opt/jumpserver/install pip install -r requirement.txt python install.py
注:在执行‘python install.py’ 前需要创建数据库,库名随意。
create database jumpserver;
输入smtp信息之后发现报错了,是python的pycrypto模块问题,需要卸载重装:
pip uninstall pycrypto easy_install pycrypto
安装之后继续 python install.py 进行安装,并且输入 web管理员用户名和管理员密码,ok
运行 crontab,定期处理失效连接,定期更新资产信息cd /opt/jumpserver python manage.py crontab add
注:
- 根据提示输入相关信息,完成安装,安装完成后,请访问web,继续查看后续文档
- 如果启动失败,请返回上层目录,手动运行 ./service.sh start 启动
- 如果 ./service.sh start 启动失败
cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py
- 如果启动失败,可能是由于80端口和3000端口已经被占用,或者数据库账号密码不对,请检查
五、Web登录
注意:
在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件:
- 后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能
- 后端服务器如果开启了selinux,请安装libselinux-python
jumpserver4.0启动docker后需设置firewalld实现iptables的nat转发否则创建的jumpserver无法与外部服务器通讯
iptables nat 设置 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE firewalld nat 设置 firewall-cmd --permanent --zone=public --add-masquerade firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 \ source address=10.8.0.0/24 masquerade'
网友评论