一、基本环境 Jumpserver : Master1 192.168.20.128 Mysql 主 FQDN:Master1.jumpserver.org Centos6.5 x86 Master2 192.168.20.129 Mysql 从 FQDN:Master2.jumpserver.org Centos6.5 x86 注:Master1和Master2 相关配置在 http://bbs.jumpserver.org/read/111.html Client: Ubuntu: 192.168.20.132 Client双主 FQDN:Ubuntu.jumpserver.org ubuntu15.04 64位 Ubuntu:
图片:20151125175152.jpg
二、安装
2.1 安装所需的软件包
apt-get install libpam-ldap libnss-ldap sudo-ldap nscd
2.2配置LDAP
2.2.1 输入的URI为LDAP服务器。
图片:1.jpg
2.2.1 输入你的搜索基础的DN。使用您作为基础的用户数据库相同的DN。
图片:2.png
2.2.3 您只能使用LDAPv3的,所以选择此屏幕上的默认。
图片:3.png
2.2.4 有没有必要为本地root拥有完全权限在你的LDAP服务器,所以没有在这里回答。
图片:4.png
2.2.5 如果您的LDAP服务器允许匿名绑定,你可以回答“不”也在这里...
图片:5.png
注:可通过dpkg-reconfigure ldap-auth-config重新配置
三、服务器端证书通过scp至客户端:
mkdir -p /etc/openldap/cacerts/
cd /etc/openldap/cacerts/
scp 192.168.20.128:/etc/openldap/cacerts/cacert.pem /etc/openldap/cacerts/cacert.pem
注:如果你的Jumpserver的OpenLDAP 没有使用 SSL/TLS 加密数据通信 ,也就是使用389端口,请忽略这一步。
四、修改配置文件
root@Ubuntu:~# cat /etc/pam.d/common-auth | grep -v ^# | grep -v ^$
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_ecryptfs.so unwrap
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
common-auth 追加后,登录要求输入LDAP Password ,想取消LDAP Password 就不追加。
图片:@024`_A$F2R~OUBJN1_80@U.png
root@Ubuntu:~# cat /etc/pam.d/common-account| grep -v ^# | grep -v ^$
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
account sufficient pam_ldap.so
account required pam_unix.so
root@Ubuntu:~# cat /etc/pam.d/common-password | grep -v ^# | grep -v ^$
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_ecryptfs.so
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
root@Ubuntu:~# cat /etc/pam.d/common-session | grep -v ^# | grep -v ^$
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
ssion optional pam_systemd.so
session optional pam_ecryptfs.so unwrap
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_ldap.so
注:红色部分是追加的
root@Ubuntu:~# cat /etc/nsswitch.conf | grep -v ^# | grep -v ^$
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
sudoers: files ldap
root@Ubuntu:~# cat /etc/ldap/ldap.conf | grep -v ^# | grep -v ^$
BASE dc=jumpserver,dc=org
URI ldaps://Master1.jumpserver.org/ ldaps://Master2.jumpserver.org/
TIMELIMIT 2
TLS_CACERT /etc/openldap/cacerts/cacert.pem
Sudoers_base ou=Sudoers,dc=jumpserver,dc=org
注:客户端的sudo版本会影响 ldap配置文件的位置,通过sudo -V | grep ldap查看,最后显示
ldap.conf path: /etc/ldap/ldap.conf 这个来决定
sudo内容(Sudoers_base ou=Sudoers,dc=jumpserver,dc=org ) 在哪个文件上配置的。
root@ubuntu:~# cat /etc/ldap.conf | grep -v ^# | grep -v ^$
base dc=jumpserver,dc=org
uri ldaps://Master1.jumpserver.org/ ldaps://Master2.jumpserver.org/
ssl on
TLS_CACERTDIR /etc/openldap/cacerts
ldap_version 3
pam_password md5
nss_initgroups_ignoreusers backup,bin,daemon,games,gnats,irc,landscape,list,lp,mail,man,messagebus,news,proxy,roo
t,sshd,sync,sys,syslog,systemd-bus-proxy,systemd-network,systemd-resolve,systemd-timesync,uucp,uuidd,www-
注:如果你的Jumpserver是使用389端口通信,请把uri ldaps://xxx 全部改成uri ldap://xxxx,就是把s去掉。
#重启服务使配置生效
root@Ubuntu:~# /etc/init.d/nscd restart
[ ok ] Restarting nscd (via systemctl): nscd.service.
五、测试
5.1 测试是否已启用LDAP认证
root@Ubuntu:~# getent passwd xiaowang
xiaowang:x:5034:5034:xiaowang:/home/xiaowang:/bin/bash
root@Ubuntu:~# id xiaowang
uid=5034(xiaowang) gid=5034(xiaowang) groups=5034(xiaowang)
5.2测试用户登录跳板机再登录后端Client
图片:8CQXPE3H[PB8L9$NSLM80]5.png
|