free 堡垒机
环境: centos6.5 mini安装 iptables selinux已经关闭
jumpserver: 192.168.1.209
testserver: 192.168.1.210
一. 部署ldapserver
1.1 安装ldapserver
# yum install -y openldap openldap-servers openldap-clients openldap-devel
1.2 准备配置文件
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
## 该文件是slapd的配置文件
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
## 数据库的配置文件
1.3 修改配置文件# vim /etc/openldap/slapd.conf ... loglevel 1 ... suffix "dc=yolu,dc=com" rootdn "cn=admin,dc=yolu,dc=com" rootpw secret234 ... #说明: loglevel:设置日志级别 suffix:其实就是BaseDN rootdn: 超级管理员的dn rootpw: 超级管理员的密码
1.4 修改系统日志配置文件
# vim /etc/rsyslog.conf local4.* /var/log/ldap.log # local7.*下添加一行
# service rsyslog restart
1.5 启动slapd, 查看启动情况
# service slapd start
# rm -rf /etc/openldap/slapd.d/*
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap:ldap /etc/openldap/slapd.d/
# service slapd restart# netstat -tulnp | grep slapd #说明:第一次启动生会初始化ldap数据库,在/var/lib/ldap中,如果想删除ldap数据库就删除该目录,保留DB_CONFIG配置文件。新版的ldap使用的是/etc/openldap/slapd.d 下的配置文件,删除原来的配置文件,slaptest是重新生成新的配置文件
1.6 导入ldif数据库框架和测试用户,可以使用migrationtools导出框架,也可以用我导出好的. base.ldif,group.ldif,passwd.ldif 将其中的dc=yolu,dc=com替换成你的baseDN,然后导入,密码是rootpw设置的密码
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f base.ldif
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f group.ldif
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f passwd.ldif #说明:测试用户是testuser 密码是testuser123
二. testserver部署ldapclient
--- CentOS6设置 ---
2.1 安装LDAP客户端
# yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap
2.2 设置自动创建目录
# echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth
2.3 备份原来authconfig,然后设置使用LDAP认证
# authconfig --savebackup=auth.bak
# authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=192.168.1.209 --ldapbasedn="dc=yolu,dc=com" --update
--- CentOS5设置 ---
2.1 安装LDAP客户端
# yum -y install openldap openldap-clients nss_ldap
2.2 设置自动创建目录
# echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth
2.3 设置使用LDAP认证
# authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=192.168.1.209 --ldapbasedn="dc=yolu,dc=com" --update
2.4 从jumpserver连接testuser测试
# ssh testuser@192.168.1.210 # 密码是testuser123 如果连接成功则继续
三. LDAP负责sudo
3.1 拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以
# cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema
3.2 修改文件导入schema
# vim /etc/openldap/slapd.conf
include /etc/openldap/schema/sudo.schema
3.3 重新生成配置文件,重启slapd
# rm -rf /etc/openldap/slapd.d/*
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap:ldap /etc/openldap/slapd.d/*
# service slapd restart
3.4 导入sudo.ldif到ldapserver
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f sudo.ldif
#说明:将sudo.ldif中的dc=yolu,dc=com换作你的baseDN
3.5 testserver设置sudo使用ldap
说明: centos6上sudo-1.7.4p5的使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不同使用的配置文件可能也有所不同,sudo -V | grep 'ldap.conf' 查看
# sudo -V | grep 'ldap.conf'
...
ldap.conf path: /etc/sudo-ldap.conf # 已知有的版本是 /etc/nslcd.conf,下面应该做出对应改变
...
--- CentOS6 ---
# echo -e "uri ldap://192.168.1.209\nSudoers_base ou=Sudoers,dc=yolu,dc=com" > /etc/sudo-ldap.conf
# echo "Sudoers: files ldap" >> /etc/nsswitch.conf
--- CentOS5 ---
# echo "Sudoers_base ou=Sudoers,dc=yolu,dc=com" >> /etc/ldap.conf
# echo "Sudoers: files ldap" >> /etc/nsswitch.conf
3.6 测试sudo
# ssh testuser@192.168.1.210
# sudo su #说明:密码是testuser123,sudo su如果不提示输入密码,则成功
四. 部署jumpserver
4.1 安装mysql数据库,创建库
# yum -y install mysql mysql-server mysql-devel
# service mysqld start
# mysql
mysql> create database jumpserver charset='utf8';
mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql234';
mysql> grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'mysql234';
4.2 下载最新Jumpserver项目
# yum -y install git# cd /opt
# git clone https://github.com/ibuler/jumpserver.git
# cd jumpserver
4.3 安装Python2.7.6
# yum -y install xz gcc automake autoconf ncurses-devel patch
# tar xvf Python-2.7.6.tar.xz && cd Python-2.7.6
# ./configure && make && make install
# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/local/bin/python /usr/bin/python
# vim /usr/bin/yum #!/usr/bin/python2.6 #说明:yum使用python2.6,否则报错
4.4 安装setuptools 和 pip
# tar xvf pypa-setuptools-8e8c50925f18.tar.gz && cd pypa-setuptools-8e8c50925f18 && python setup.py install
# tar xvf pip-1.5.6.tar.gz && cd pip-1.5.6 && python setup.py install
4.5 安装依赖库
# cd /opt/jumpserver/scripts
# pip2.7 install -r requirements.txt -i http://pypi.douban.com/simple
#说明:如果报错请手动安装每个模块
4.6 修改Jumpserver配置文件 # cd ..
# vim jumpserver.conf [db] host = 127.0.0.1 port = 3306 user = jumpserver password = mysql234 db = jumpserver [jumpserver] key = 88aaaf7ffe3c6c04 ldap_host = ldap://127.0.0.1:389 ldap_base_dn = dc=yolu,dc=com admin_cn = cn=admin,dc=yolu,dc=com admin_pass = secret234 web_socket_host = 192.168.1.209:3000 # 说明: # db里是数据库的设置,相信你看一眼就知道了 # jumpserver中 # key是加密时需要的字符,可以更改但需要是16位 # ldap_host,ldap_base_dn,admin_cn,admin_pass都是与上面ldapserver设置的一致
# admin_cn 对应ldap中的rootdn,必须一致
# admin_pass是ldap的密码,对应ldap.conf中的 rootpw ,必须使用明文
# web_socket_host是websocket的url,把ip改为jumpserver的IP地址,需要修改,3000是默认端口
4.7 修改logs目录权限
# chmod 777 logs
4.8 django sync db 到数据库
# cd /opt/jumpserver/webroot/AutoSa
# python manage.py syncdb Would you like to create one now? (yes/no): no
4.9 测试运行
# python manage.py runserver 0.0.0.0:80
# python log_handler.py #说明:两个窗口分别打开
4.10 初始化jumpserver浏览器打开
http://192.168.1.209/install
显示安装成功测继续
博客地址:http://laoguang.blog.51cto.com/
五. 安装node.js为了实现实时监控,使用了node.js来完成websocket
5.1 下载node.js 官方地址:http://www.nodejs.org/download/ 或 使用我提供的源码 或 使用我编译好的rpm,适用于centos6 x86_64,跳过编译安装和设置path
5.2 编译安装
# ./configure --prefix=/opt/node/ && make && make install
5.3 设置path
# vim /etc/profile.d/node.sh export PATH=$PATH:/opt/node/bin
# source /etc/profile.d/node.sh
5.4 安装项目依赖module,或使用下载好的
# cd /opt/jumpserver/webroot/AutoSa/websocket
# npm install # 可能下载需要几分钟,可以更省时 #说明:使用已经下载好的,将node_modules.tar.bz2 移动到/opt/jumpserver/webroot/AutoSa/websocket # tar xvf node_modules.tar.bz2
5.5 测试启动websocket
# node index.js #说明:新窗口运行,如果开启了iptables确保放行3000端口
------------------------------编译nodejs报错-----------------------------
/src/node-v0.10.33/out/Release/openssl-cli] error 69
make[1]: Leaving directory `/home/wenba/software/src/node-v0.10.33/out'
make: *** [node] error 2
解决方案:
在安装Python2.7之前:
yum install gcc-c++
yum install bzip2*
编译安装python
编译安装后编译安装 zlib模块
cd Python-2.7.3/Modules/zlib
./configure ;
make;
make install
------------------------------------------------------------------------
六. 测试jumpserver
截图见:http://laoguang.blog.51cto.com/6013350/1576502
6.1 登录
账号密码都是admin
6.2 添加属组
6.3 添加用户
6.4 添加IDC
6.5 添加主机
6.6 添加权限
6.7 查看权限
6.8 测试登录
6.9 下载key
6.10 导入key并登录xshell导入 Tools --> User Key Manager --> import --> 输入密码
6.11 登录
6.12 测试登录测试主机
# python /opt/jumpserver/jumpserver.py
#说明:p/P显示有权限主机ip E/e多主机执行命令 Q/q退出 输入ip或部分ip登录
6.13 显示有权限主机
6.14 多主机执行命令,逗号分隔 # 这里就一台主机
6.15 登录
6.16 查看sudo
6.17 修改sudo
6.18 测试sudo
6.19 测试监控
刷新,
6.20 结束session
6.21 查看统计日志
刷新,
6.22 用户测试上传下载
6.23 修改登录密码
七. 收尾 如果一切没问题后,开始收尾
7.1 修改sshd配置,禁止密码登录# vim /etc/sshd/sshd_config
...
PasswordAuthentication no
...
# service sshd restart
7.2 让用户登录jumpserver自动运行系统
# cd /opt/jumpserver/scripts
# vim jumpserver.sh
...
if [ $USER == 'guanghongwei' ];then # 修改特殊用户,结束后不退出
...
# cp jumpserver.sh /etc/profile.d/
7.3 正常运行jumpserver系统
# cd /opt/jumpserver/
# ./runserver#说明:如果想结束系统# ./stopserver
free 堡垒机的更多相关文章
- Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- Python之路:堡垒机实例
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 ...
- python远程连接paramiko 模块和堡垒机实现
paramiko使用 paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接.命令执行.文件传输.中间SSH代理功能 安装 pip install pa ...
- python学习笔记-(十三)堡垒机
1.课前准备: 本次学习堡垒机相关知识:之前,需要安装Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. 前提: python3.5程序安装到默认路径下并已添加pa ...
- Python开发【第九章】:堡垒机实例
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作 模块安装 C:\Program Files\Python 3.5\Scri ...
- 利用paramiko模块实现堡垒机+审计功能
paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+ ...
- Python之路-python(堡垒机)
运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的 ...
- python之实现基于paramiko和mysql数据库的堡垒机
一.堡垒机结构 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表 用户选择服务器,并自动登陆 ...
- Python成长笔记 - 基础篇 (十三)--堡垒机
堡垒机架构 堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且 ...
- Python之路【第九篇】堡垒机基础&数据库操作
复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...
随机推荐
- DD-WRT相关资源
版本网站下载:Other Downloads,进入betas->2014 FTP下载:如ftp://ftp.dd-wrt.com/betas/2014/06-23-2014-r24461/ Re ...
- 手把手教你学习DSP_硬件设计
<<手把手教你学习DSP>>顾卫刚,感觉写的不错,将感兴趣的部分摘录下俩. 1.A/D保护及矫正电路 TMS320X2812 AD输入为0-3V,用上述电路可以起到钳位作用.当 ...
- VS2010 快速写入注释小技巧
/************************************************************************//* *//******************* ...
- [JIT_APP]Java基础知识总结
一.Java语言的基础知识 1. 开发Java语言的公司 美国Sun(Sum Microsystems)公司开发. 2.Java的3个版本 J2SE(Java2 Standard Edition) ...
- [git] git 的基本认知
版本管理 ( Version Control ) 版本管理系统是一个记录文件变更的系统,让你在一段时间后可以恢复指定版本的文件.版本管理系统大致可分为三类:独立的本地版本管理系统.中心化版本管理系统. ...
- win7限制登录时间的设置方法
win7使用Net User命令行语句限制登录时间的方法: 1.单击“开始”,然后单击“运行”. 2.在“打开”框中,键入cmd,然后单击“确定”. 3..键入 net user username / ...
- 关于用jQuery知识来实现优酷首页轮播图!
▓▓▓▓▓▓ 大致介绍 看到了一个轮播图的思路,就想的自己动手实践一下,总体来说用jQuery实现起来简单多了 如果对代码中使用的方法有疑问,可以参考我的jQuery学习之路(持续更新),里面有讲解: ...
- uva10622 Perfect P-th Powers
留坑(p.343) 完全不知道哪里有问题qwq 从31向下开始枚举p,二分找存在性,或者数学函数什么的也兹辞啊 #include<cstdio> #include<cstring&g ...
- eclipse运行项目特别慢,出现Java heap space溢出
在eclipse中可用为JVM设置参数:Window-->Preferences-->Java-->Installed JREs然后选中你安装的jre-->Edit--> ...
- 检查Oracle 中死事务的语句
SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ...