DRBL環境下使用LDAP

DRBL環境下使用LDAP

模式一:DRBL server with LDAP


DRBL主機兼任LDAP服務 需要安裝的套件: slapd (OpenLDAP server), ldap-utils \$ sudo apt-get install slapd ldap-utils 安裝完成後先設定admin密碼(加密模式顯示)slappasswd yourpasswd \$ slappasswd

New password: Re-enter password: {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m //複製密碼

修改設定檔 並確定有以下資訊 \$ vi /etc/ldap/slapd.conf

suffix "dc=nchc,dc=org,dc=tw" directory "/var/lib/ldap" rootdn "cn=admin,dc=nchc,dc=org,dc=tw" rootpw {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m //貼上密碼

產生初始資料庫資料(ldif 文字模式) \$ vi init.ldif

dn: dc=nchc,dc=org,dc=tw objectClass: dcObject objectClass: organizationalUnit dc: nchc ou: nchc Dot org Dot tw

dn: ou=People,dc=nchc,dc=org,dc=tw objectClass: organizationalUnit ou: People

dn: ou=Group,dc=nchc,dc=org,dc=tw objectClass: organizationalUnit ou: Group

新增一個使用者 \$ vi user.ldif

dn: uid=ldap_user,ou=People,dc=nchc,dc=org,dc=tw uid: ldap_user cn: ldap_user objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}\$1\$1q3mxaed\$wz2gSA7hcKrQWNW7FJXrN0 shadowLastChange: 13453 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 1005 gidNumber: 1005 homeDirectory: /home/ldap_user gecos: ,,,

新增一個group \$ vi group.ldif

dn: cn=ldap_group,ou=Group,dc=nchc,dc=org,dc=tw objectClass: posixGroup objectClass: top cn: ldap_group userPassword: {crypt}x gidNumber: 1005

將上述檔案依序匯入LDAP資料庫 \$ sudo /etc/init.d/slapd stop \$ sudo rm -rf /var/lib/ldap/* \$ sudo slapadd -l init.ldif \$ sudo slapadd -l user.ldif \$ sudo slapadd -l group.ldif \$ sudo /etc/init.d/slapd start \$ ldapsearch -x -b "dc=nchc,dc=org,dc=tw" 如果有以上資料表示成功 以上為LDAP部份 開始更動DRBL相關設定檔 讓DRBL的 client改變認證程序,加入LDAP認證 安裝libpam-ldap libnss-ldap nss-updatedb \$ apt-get install libpam-ldap libnss-ldap nss-updatedb 安裝時就會要求輸入LDAP的相關資訊 也可以直接修改設定檔: libnss-ldap 的設定檔 /tftpboot/node_root/etc/libnss-ldap.conf libpam-ldap 的設定檔 /tftpboot/node_root/etc/pam_ldap.conf /etc/pam_ldap.secret 到此已經俱備所有需要的套件 只差修改設定檔,有兩種方式 一、是讓server也是ldap client 操作比較簡單 但是較危險 二、是僅讓DRBL Client是ldap client 其實都是改設定檔案 只是位置不同罷了 需要改到的檔案有 /etc/nsswitch.conf /etc/libnss-ldap.conf*/etc/pam.d/common-account/etc/pam.d/common-auth*/etc/pam.d/common-password/etc/pam.d/common-session **一、是讓server也是ldap client 操作比較簡單 但是安全風險較高 (所有ldap上虛擬user都可以從外部登入) 通通是修改server上/etc的檔案再重新push 修改/etc/nsswitch.conf 改變認證順序 \$ vi /etc/nsswitch.conf** 將

passwd: files nis group: files nis shadow: files nis

取代為

passwd: files nis ldap group: files nis ldap shadow: files nis ldap

(如果不想保留NIS, 在這邊就把他拿掉吧) 修改pam部份 \$ vi /etc/libnss-ldap.conf加入****

bind_policy soft

\$ vi /etc/pam.d/common-account

account sufficient pam_ldap.so account required pam_unix.so

\$ vi /etc/pam.d/common-auth

auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass

\$ vi /etc/pam.d/common-password

password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5

\$ vi /etc/pam.d/common-session

session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ session optional pam_ldap.so session optional pam_foreground.so

重新push一次 \$ /opt/drbl/sbin/drblpush -i 二、是僅讓DRBL Client是ldap client 只修改/tftpboot/ 中nodes的檔案 先重新push一次 \$ /opt/drbl/sbin/drblpush -i 修改/tftpboot/node_root/etc/nsswitch.conf 改變認證順序 \$ vi /tftpboot/node_root/etc/nsswitch.conf

passwd: files nis group: files nis shadow: files nis

取代為

passwd: files nis ldap group: files nis ldap shadow: files nis ldap

(如果不想保留NIS, 在這邊就把他拿掉吧) 修改pam部份 \$ vi /tftpboot/node_root/etc/libnss-ldap.conf加入****

bind_policy soft

\$ vi /tftpboot/node_root/etc/pam.d/common-account

account sufficient pam_ldap.so account required pam_unix.so

\$ vi /tftpboot/node_root/etc/pam.d/common-auth

auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass

\$ vi /tftpboot/node_root/etc/pam.d/common-password

password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5

\$ vi /tftpboot/node_root/etc/pam.d/common-session

session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ session optional pam_ldap.so session optional pam_foreground.so

將以上檔案發佈到所有nodes \$ sudo /opt/drbl/sbin/drbl-cp-host /tftpboot/node_root/etc/nsswitch.conf /etc \$ sudo /opt/drbl/sbin/drbl-cp-host /tftpboot/node_root/etc/libnss-ldap.conf /etc \$ sudo /opt/drbl/sbin/drbl-cp-host /tftpboot/node_root/etc/pam.d/ /etc 不論哪種方式 完成之後就可以用ldap 上的帳號登入主機 DRBL client測試 確實做好以上步驟之後 應該可以使用LDAP的user進行登入 如果失敗 先嘗試以root登入 使用getent passwd \$user來測試是否有從LDAP找到資料 如果沒有的話使用nss_updatedb ldap更新nss資訊 或是更改相關設定直到可以登入為止 模式二:DRBL server without LDAP


此種模式大致作法需要讓Client支援ldap 查詢 就可以了 所以需要先知道ldap server ip, port and base LDAP server information example: IP: 140.110.27.181 PORT:389 BASE:dc=nchc,dc=org,dc=tw 在DRBL server 環境下大致相同 開始更動DRBL相關設定檔 讓DRBL的 client改變認證程序,加入LDAP認證 安裝libpam-ldap libnss-ldap nss-updatedb \$ apt-get install libpam-ldap libnss-ldap nss-updatedb 安裝時就會要求輸入LDAP的相關資訊 LDAP server information example: IP: 140.110.27.181 PORT:389 BASE:dc=nchc,dc=org,dc=tw 也可以直接修改設定檔: libnss-ldap 的設定檔 /tftpboot/node_root/etc/libnss-ldap.conf libpam-ldap 的設定檔 /tftpboot/node_root/etc/pam_ldap.conf /etc/pam_ldap.secret 到此已經俱備所有需要的套件 只差修改設定檔,有兩種方式 內容同模式一所述... 參考資料 https://help.ubuntu.com/community/OpenLDAPServer https://help.ubuntu.com/community/LDAPClientAuthentication

convert from Thomas blog post id 53 old convert log: ./214200/tag%3E2007%2002%20linux)

@2007 @02 @linux

Comments