堡垒机jumpserver 搭建与使用 – 21运维
通知: .-...

堡垒机jumpserver 搭建与使用

堡垒机 21运维 5083浏览 0评论

堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动 ,以便集中报警、及时处理及审计定责。

堡垒机,我们平时又叫跳板机,但跳板机功能有限,只能完成堡垒机的部分功能,主要核心功能是远程登录服务器和日志审计。 目前比较优秀的开源软件是jumpserver,认证、授权、审计、自动化、资产管理,适合中小型公司或服务器不多的情况。商业的堡垒机Citrix XenApp、齐治包括一些云机构提供的堡垒机这里不做记录。

jumpserver介绍:
官网www.jumpserver.org  Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理。

Auth 统一认证
CMDB 资产管理
统一授权
日志审计
自动化运维(集成ansible)
最新版由于对python版本有要求,这里安装低版本0.3.2。高版本如果本地条件允许,可以自行安装或采用docker安装。

本地环境:
堡垒机:内网KVM虚拟机 centos 6.5 IP:192.168.31.12
客户机:内网KVM虚拟机 centos 6.5 IP:192.168.31.11
公网IP:找电信改成公网IP并桥接,重启光猫。可以获取一个公网IP。

一,搭建简易堡垒机
搭建堡垒机所处环境:公网可以连接且与内网机器可以通信。需要公司内部或外部都可以连接使用。
安全设置:堡垒机的机器只开放使用的端口比如ssh、web,指定用户登录,如有固定IP可以只允许固定IP登录,或拨VPN允许指定IP登录。堡垒机被攻陷将是致命后果!
用户、命令权限控制:指定用户只能执行特定命令。采用第三方的jailkit实现。
机器日志审计:客户机统计。
1,安装第三方工具jailkit并配置虚拟用户21yunwei。

wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
tar jxvf jailkit-2.19.tar.bz2
cd jailkit-2.19
./configure && make && make install
 mkdir /home/jail
 jk_init -v -j /home/jail/ basicshell
 jk_init -v -j /home/jail/ editors
 jk_init -v -j /home/jail/ netutils
 jk_init -v -j /home/jail/   ssh
 mkdir /home/jail/usr/sbin
 cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh

创建虚拟用户:

 useradd 21yunwei
 passwd 21yunwei
 jk_jailuser -m -j /home/jail 21yunwei
 vim /home/jail/etc/passwd   //把21yunwei那一行的/usr/sbin/jk_lsh改为/bin/bash  这里要修改,否则无法远程。

登录测试:

2,被控制的机器设置日志审计
创建日志存放目录并设置权限,防删除

 mkdir /usr/local/records
 chmod 777 !$
 chmod +t !$

设置环境变量,vim /etc/profile将登录的用户执行的命令记录到刚才设置的日志存放目录文件中:

 if [ ! -d  /usr/local/records/${LOGNAME} ]
then
mkdir -p /usr/local/records/${LOGNAME}
chmod 300 /usr/local/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

设置完成以后,source  /etc/profile   注:上述脚本也可以用于线上生产环境用于记录每个用户执行的命令,自动化运维系统命令统计采集功能等。
客户机创建用户21yunwei 并设置密码,进行测试。本地登录以及通过堡垒机ssh  [email protected] 执行命令,查看文件记录:

[[email protected] records]# cat 21yunwei/bash_history 
2017-04-20 01:10:02 ##### 21yunwei pts/1 (192.168.31.100) #### 
2017-04-20 01:10:04 ##### 21yunwei pts/1 (192.168.31.100) #### pwd
2017-04-20 01:10:11 ##### 21yunwei pts/1 (192.168.31.100) #### who am i
2017-04-20 01:10:13 ##### 21yunwei pts/1 (192.168.31.100) #### date
2017-04-20 01:10:20 ##### 21yunwei pts/1 (192.168.31.100) #### ps aux
[[email protected] records]# cat root/bash_history 
2017-04-20 01:09:30 ##### root pts/2 (192.168.31.212) #### source  /etc/profile
2017-04-20 01:09:34 ##### root pts/2 (192.168.31.212) #### cd  /usr/local/records/
2017-04-20 01:09:34 ##### root pts/2 (192.168.31.212) #### ll
2017-04-20 01:09:41 ##### root pts/2 (192.168.31.212) #### cat  root/bash_history
2017-04-20 01:10:26 ##### root pts/2 (192.168.31.212) #### cat 21yunwei/bash_history

 

二,搭建堡垒机
1,安装jumpserver

到github上选择低版本0.3.2,下载地址https://github.com/jumpserver/jumpserver/archive/0.3.2.zip后解压。具体安装可以参考https://github.com/jumpserver/jumpserver/wiki/%E5%AE%89%E8%A3%85%E5%9B%BE%E8%A7%A3  安装说明。

 cd /home/jumpserver-0.3.2/install
 python install.py 

安装这里根据提示一步一步的安装就可以了。
说明:数据库这里我们跳过,采用另外一台虚拟机的mysql节省安装时间,直接到mysql机器上创建库以及用户,后边安装的时候直接连接:

create  database  jumpserver  default  charset  utf8;
grant  all  on jumpserver.*  to [email protected]"%"  identified  by  '123456';
flush  privileges;

2,登录测试

访问地址http://192.168.31.12:8000/login/ :

登录用户名admin和随意设置的密码admin:

 

三,堡垒机使用

1,创建jumpserver普通用户 

jumpserver用户作用:用来登录jumpserver(web界面登录、ssh登录),适合不同部门不同角色的人来使用,比如运维、开发、测试等,权限和授权规则相关,跟系统用户映射到一起

左侧用户管理。 进去先添加用户组,比如我们设置“运维”,然后到用户那里添加用户,比如:


设置普通用户权限,另外填写这个用户的邮箱,添加成功以后会发送邮件到这个邮箱。这用户既可以web登录jumpserver,又可以ssh登录,其中ssh登录的key以及密码都在邮件里边了。

    

登录测试:

 

2,创建管理用户
登录堡垒机后台,设置-进去可以添加管理员用户。这里我们创建jump用户,注意这个用户的权限。其中密码可以留空,这里我们先从堡垒机创建密钥对。作用:管理用户用来自动创建客户机上的系统用户、批量执行命令、资产获取等。
跳板机设置:

ssh-keygen  -f  jump
cat jump  将这个私钥内容添加到管理员用户的密钥框。
cat jump.pub 将这个公钥添加到客户机jump用户的.ssh/authoirzed_keys

客户机设置:

useradd  jump
su - jump
mkdir  .ssh
touch .ssh/authorized_keys
chmod   700   .ssh/
chmod   600   .ssh/authorized_keys
vim .ssh/authorized_keys #将跳板机的jump公钥写入

 

堡垒机登录客户机测试:

[[email protected] .ssh]# ssh  -i jump  [email protected]
[[email protected] ~]$ ^C

登录成功。

3,添加资产

比如我们这里添加资产组 kvm,查看资产那里添加资产,比如kvm-web1,添加IP地址,根据实际情况填写后激活提交。 提交后查看资产可以看到新添加的主机,但是不能获取配置信息。需要选中对应的资产,点击“更新” 可以获取具体配置,且能证明管理用户添加的没问题(这里如果无法获取,那么设置里边的管理用户设置的有问题,需检查)。

 

4,添加系统用户并授权。

添加到 授权管理–系统用户,进去可以添加。说明:客户机上的系统用户,用来通过jumpserver去登录每一台客户机的用户 ,添加以后可以推送这个用户到指定资产。
(1)这里我们添加一个测试用户dev,从堡垒机通过ssh-keygen  -f  dev 生成密钥对,将私钥到系统用户添加这里添加,保存。
(2)返回到系统用户,推动dev到指定资产。该推送过程是由管理用户完成,比如之前设置的jump。
推送成功以后,到资产主机查看刚才推送的系统用户:

[[email protected] /]# cat   /etc/passwd | tail  -1
dev:x:502:502::/home/dev:/bin/bash

 

查看系统用户:

授权规则:指定哪个jumpserver用户,对应资产,哪个系统用户,保存。 这个授权要注意,后期的jumpserver用户的权限和这个系统用户、授权规则是映射到一起的。

 

ssh登录使用:


按照提示严格按照操作即可实现系统登录、命令记录。

 

 

 

转载请注明:21运维 » 堡垒机jumpserver 搭建与使用

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址