开源跳板机(堡垒机)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 #关闭 |