设为首页 收藏本站
查看: 2127|回复: 0

[经验分享] CentOS7 开源跳板机(堡垒机) Jumpserver

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-20 08:58:02 | 显示全部楼层 |阅读模式
                      开源跳板机(堡垒机)Jumpserver

环境 CentOS 7   x64       关闭 selinux  firewalld

jumpserver: 172.24.0.14
testserver: 172.24.0.15

一. 部署ldapserver

1.1 安装ldapserver
yum install -y openldap openldap-servers openldap-clients openldap-devel

1.2 准备配置文件      (centos7 slapd.conf.obsolete 并不存在,所以我从centos6 里拷贝了一个过来)
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=jicki,dc=com"
  rootdn          "cn=admin,dc=jicki,dc=com"
  rootpw          jicki123
  ...


#说明:
loglevel:设置日志级别  
suffix:其实就是BaseDN
rootdn: 超级管理员的dn
rootpw: 超级管理员的密码


1.4 修改系统日志配置文件
vim /etc/rsyslog.conf

搜索  local7.*          在下面添加一行


local4.*                                                /var/log/ldap.log

保存以后重启服务
systemctl restart  rsyslog.service


1.5 启动slapd, 查看启动情况
systemctl start  slapd.service

删除ladp 原来配置
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/

重启服务
systemctl restart  slapd.service


1.6 导入ldif数据库框架和测试用户,base.ldif,group.ldif,passwd.ldif 修改文件其中的dc=yolu,dc=com替换成你的baseDN,然后导入,密码是rootpw设置的密码
上传  base.ldif,group.ldif,passwd.ldif 文件至/tmp 目录下

cd /tmp
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f base.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f group.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f passwd.ldif



#说明:测试用户是testuser 密码是testuser123




二. testserver部署ldapclient

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 CentOS7 系统 必须注释掉这里才能从 ladp 验证通过.  ( 否则 提示  登录失败: password refused )
vi /etc/pam.d/password-auth-ac
#auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success


2.4 备份原来authconfig,然后设置使用LDAP认证
authconfig --savebackup=auth.bak
authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=172.24.0.14 --ldapbasedn="dc=jicki,dc=com" --update


2.5 从jumpserver连接testuser测试
ssh testuser@172.24.0.15

密码是testuser123 如果连接成功则继续 ( Creating directory '/home/testuser'. )




三. 在jumpserver 中配置 LDAP负责sudo   
3.1 拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以
cp /usr/share/doc/sudo-1.8.6p7/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/*

systemctl restart  slapd.service


3.4 导入sudo.ldif到ldapserver
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f sudo.ldif

#说明:将sudo.ldif中的dc=jicki,dc=com换作你的baseDN



四 testserver设置sudo使用ldap
说明: centos7上sudo使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不同使用的配置文件可能也有所不同,sudo -V | grep 'ldap.conf' 查看
sudo -V | grep 'ldap.conf'


echo -e "uri ldap://172.24.0.14\nSudoers_base ou=Sudoers,dc=jicki,dc=com" > /etc/sudo-ldap.conf

echo "Sudoers: files ldap" >>  /etc/nsswitch.conf


4.1 测试sudo

ssh testuser@172.24.0.15
sudo su

whoami

#说明:密码是testuser123,sudo su如果不提示输入密码,则成功




五. 部署jumpserver
5.1 安装mysql数据库,创建库  ( yum 安装 只用于存储信息  CentOS7 mysql 已替换为 mariadb)

yum -y install mariadb mariadb-server mariadb-devel

service mariadb start

mysqladmin -u root password '12345678'

mysql -uroot -p

运行如下命令
create database jumpserver charset='utf8';

grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql123';

grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'mysql234';



5.2 下载最新Jumpserver项目
yum -y install git
cd /opt
git clone https://github.com/ibuler/jumpserver.git


5.3 安装setuptools 和 pip
yum -y install python-setuptools python-pip gcc python-devel ncurses ncurses-devel


5.4 安装依赖库
cd /opt/jumpserver/scripts

pip install -r requirements.txt -i http://pypi.douban.com/simple

-----------------------------------------------------------------------------
Successfully installed readline
Cleaning up...
-----------------------------------------------------------------------------
表示安装完成


5.5 修改Jumpserver配置文件

cd /opt/jumpserver
vim jumpserver.conf

    [db]
    host = 127.0.0.1
    port = 3306
    user = jumpserver
    password = rldb123
    db = jumpserver

    [jumpserver]
    key = 5z0h2u0z7h1i2h1u
    ldap_host = ldap://127.0.0.1:389
    ldap_base_dn = dc=jicki,dc=com
    admin_cn = cn=admin,dc=jicki,dc=com
    admin_pass = jicki123
    web_socket_host = 172.24.0.14: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是默认端口


5.6 修改logs目录权限
chmod 777 logs

5.7 django sync db 到数据库
cd /opt/jumpserver/webroot/AutoSa

python manage.py syncdb
Would you like to create one now? (yes/no): no

5.8 测试运行
python manage.py runserver 0.0.0.0:80

python log_handler.py

#说明:两个窗口分别打开

5.9 初始化jumpserver浏览器打开
http://172.24.0.14/install

-------------------------------------
成功:安装成功
-------------------------------------




六. 安装node.js为了实现实时监控,使用了node.js来完成websocket

6.1 下载node.js

官方地址:http://www.nodejs.org/download/

wget http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz


6.2 编译安装
yum -y install gcc-c++ bzip2*

tar zxvf node-v0.12.0.tar.gz
cd node-v0.12.0
./configure --prefix=/opt/node/
make && make install


6.3 设置path
vim /etc/profile.d/node.sh
export PATH=$PATH:/opt/node/bin
source /etc/profile.d/node.sh


6.4 安装项目依赖module,或使用下载好的
cd /opt/jumpserver/webroot/AutoSa/websocket

npm install        # 可能下载需要几分钟,可以更省时

6.5 测试启动websocket
node index.js

说明:新窗口运行


6.6 访问页面
http://172.24.0.14

测试所有功能



七. 收尾工作

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 == 'jicki' ];then        # 修改特殊用户,结束后不退出
  ...

cp jumpserver.sh /etc/profile.d/


7.3 正常运行jumpserver系统

cd /opt/jumpserver/

./runserver                        #启动

./stopserver                       #关闭

                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-48624-1-1.html 上篇帖子: 开源跳板机(堡垒机)Jumpserver v1.1版更新 下篇帖子: 开源跳板机(堡垒机)Jumpserver v2.0.0Beta版发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表