目的:建立 LDAP server 並且將系統使用者帳號 /etc/passwd 及群組 /etc/group 匯入該 LDAP server。
1.先建立 LDAP server 的環境,再使用 migrationtools 轉換 /etc/passwd 及 /etc/group 成為 *.ldif 匯入 LDAP 系統內。
2/驗證無問題後再將 LDAP server 加上 TLS/SSL 加密傳輸的功能。
3.當以上建立完成後,由 LDAP Client 端驗證,並且經由 Client 主機執行使用這驗證經由 LDAP 驗證的機制。
4..測試完成後繼續進行 NFS 目錄分享自動掛載的功能設定,如此便可完成集中管理使用者帳號密碼的機制。
LDAP 環境設置
- 建立 ldap 帳號於 /etc/passswd 內,待會要將這些帳號轉換入 ldap server 內:
mkdir /nishome useradd -m -d /nishome/ldapuser1 ldapuser1 useradd -m -d /nishome/ldapuser2 ldapuser2 useradd -m -d /nishome/ldapuser3 ldapuser3 useradd -m -d /nishome/ldapuser4 ldapuser4 useradd -m -d /nishome/ldapuser5 ldapuser5 useradd -m -d /nishome/ldapuser6 ldapuser6 useradd -m -d /nishome/ldapuser7 ldapuser7 useradd -m -d /nishome/ldapuser8 ldapuser8 useradd -m -d /nishome/ldapuser9 ldapuser9 useradd -m -d /nishome/ldapuser10 ldapuser10 useradd -m -d /nishome/ldapuser11 ldapuser11 useradd -m -d /nishome/ldapuser12 ldapuser12 useradd -m -d /nishome/ldapuser13 ldapuser13 useradd -m -d /nishome/ldapuser14 ldapuser14 useradd -m -d /nishome/ldapuser15 ldapuser15 useradd -m -d /nishome/ldapuser16 ldapuser16 useradd -m -d /nishome/ldapuser17 ldapuser17 useradd -m -d /nishome/ldapuser18 ldapuser18 useradd -m -d /nishome/ldapuser19 ldapuser19 useradd -m -d /nishome/ldapuser20 ldapuser20 echo "ldapuser1:password" | chpasswd echo "ldapuser2:password" | chpasswd echo "ldapuser3:password" | chpasswd echo "ldapuser4:password" | chpasswd echo "ldapuser5:password" | chpasswd echo "ldapuser6:password" | chpasswd echo "ldapuser7:password" | chpasswd echo "ldapuser8:password" | chpasswd echo "ldapuser9:password" | chpasswd echo "ldapuser10:password" | chpasswd echo "ldapuser11:password" | chpasswd echo "ldapuser12:password" | chpasswd echo "ldapuser13:password" | chpasswd echo "ldapuser14:password" | chpasswd echo "ldapuser15:password" | chpasswd echo "ldapuser16:password" | chpasswd echo "ldapuser17:password" | chpasswd echo "ldapuser18:password" | chpasswd echo "ldapuser19:password" | chpasswd echo "ldapuser20:password" | chpasswd
設定 LDAP server 不含 TLS/SSL 加密
- 說明:
- 安裝 LDAP server 套件
- 安裝ldap server 及 client 端工具
yum install openldap-devel openldap-servers openldap openldap-clients
- 產生加密後的密碼,等會需要設定再 slapd.conf 當成管理員加密的密碼
[root@localhost openldap]# slappasswd New password: Re-enter new password: {SSHA}leG4f9U9TEvcmZSwiYJ9FBcLidTS4fAv
- 設定 ldap server , 系統預設沒有 slapd.conf 檔案,從系統 /usr/share/openldap-servers/ 預設值 copy 參照
[root@localhost openldap]# pwd /etc/openldap [root@localhost openldap]# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldapslapd.conf # 編輯 slapd.conf , 請修改下列 dc=example 的部份,共有三個地方 [root@localhost openldap]# vim slapd.conf # enable server status monitoring (cn=monitor) database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=Manager,dc=example,dc=com" read by * none ####################################################################### # database definitions ####################################################################### database bdb suffix "dc=example,dc=com" checkpoint 1024 15 rootdn "cn=Manager,dc=example,dc=com" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. # rootpw secret # rootpw {crypt}ijFYNcSNctBYg rootpw {SSHA}leG4f9U9TEvcmZSwiYJ9FBcLidTS4fAv
migrationtools
- 這是由 PDAL Software Pty Ltd 所開發出來的 LDAP 工具,透過這個工具就能將本機帳號移轉到 LDAP 裡。如果是使用 RedHat 或是 CentOS 的話,安裝 openldap-servers 時就會將這些工具安裝在 /usr/share/openldap/migration 底下, 這套工具是從這裡http://www.padl.com/OSS/MigrationTools.html ,他的功能有底下幾種下面列出所有檔案與功能。
- 安裝 migrationtools , 這是準備將 /etc/passwd 及 /etc/group 轉換為 ldif 的工具。可以用來第一次大量的匯入帳號、群組及相關資訊。
- migrate_base.pl 用來產生 OU
- migrate_passwd.pl 轉換 /etc/passwd
- migrate_group.pl 轉換 /etc/group
[root@localhost ~]# yum install migrationtools # migrationtools 程式放再 /usr/share/migrationtools/ [root@localhost openldap-servers]# cd /usr/share/migrationtools/ [root@localhost migrationtools]# pwd /usr/share/migrationtools # 修改一下設定值,將底下兩個地方改成 example [root@localhost migrationtools]# vim migrate_common.ph # Default DNS domain $DEFAULT_MAIL_DOMAIN = "example.com"; # Default base $DEFAULT_BASE = "dc=example,dc=com";
- migrationtools 工具 migrate_base.pl 產生的 ou 設定檔資訊,部分節錄如下:
[root@localhost ~]# /usr/share/migrationtools/migrate_base.pl # 只節錄部分有用到的部分 # LDAP 的根 --> 但是這個再這範例不適合使用 dn: dc=example,dc=com dc: example objectClass: top objectClass: domain # /etc/passwd 的容器 dn: ou=People,dc=example,dc=com ou: People objectClass: top objectClass: organizationalUnit # /etc/group 容器 dn: ou=Group,dc=example,dc=com ou: Group objectClass: top objectClass: organizationalUnit
- 轉換 /etc/passwd 及 /etc/group 為 ldif 等會要來匯入資料
/usr/share/migrationtools/migrate_passwd.pl /etc/passwd > /root/user.ldif /usr/share/migrationtools/migrate_group.pl /etc/group > /root/group.ldif
- 準備 LDAP 容器規劃檔案 ldif , 很重要連空隔及大小寫都要注意
# 給系統根路徑使用 [root@localhost ~]# vim example.ldif dn: dc=example,dc=com dc: example objectClass: dcObject objectClass: organization o: example # 給 /etc/group 使用,配合 /root/group.ldif [root@localhost ~]# vim ou_group.ldif dn: ou=Group,dc=example,dc=com ou: Groups objectClass: top objectClass: organizationalUnit # 給 /etc/passwd 使用,配合 /root/user.ldif [root@localhost ~]# vim ou_people.ldif dn: ou=People,dc=example,dc=com objectclass: organizationalUnit ou: People
- 參考:
啟動 sldap server
- 初始化 sldap server , 這幾行執行下去也會將所有的 LDAP DB 刪除, 如果做錯需要重來也只要從這一段把ldap 的 DB 及設定刪除重新開始就可以。
# 關閉 ldap server /etc/init.d/slapd stop # 刪除 ldap 的 DB 檔案,他是用檔案型 DB 當資料庫做存取的. rm -rf /var/lib/ldap/* # 刪除 ldap 設定黨 rm /etc/openldap/slapd.d/* -rf # 再 /var/lib/ldap 的設定檔需要 DB_CONFIG 的檔案,否則會產生錯誤 cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # 測試 slapd.conf 並且產生 ldap server 設定檔 slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d # 改變目錄的權限為 ldap chown -R ldap.ldap /var/lib/ldap/ chown -R ldap:ldap /etc/openldap/slapd.d # 啟動 ldap server /etc/init.d/slapd start
- clean
/etc/init.d/slapd stop rm -rf /var/lib/ldap/* rm /etc/openldap/slapd.d/* -rf cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d chown -R ldap.ldap /var/lib/ldap/ chown -R ldap:ldap /etc/openldap/slapd.d /etc/init.d/slapd start
- 驗證 ldap tcp 389 及 slapd 程式正確執行
[root@localhost ~]# netstat -anp | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 4842/slapd tcp 0 0 :::389 :::* LISTEN 4842/slapd unix 2 [ ACC ] STREAM LISTENING 43581 4842/slapd /var/run/ldapi unix 2 [ ] DGRAM 43575 4842/slapd
- 預設開機啟動 slapd
[root@localhost ~]# chkconfig slapd on
使用 ldapadd 匯入容器的 ou 設定
- 使用 ldapadd 匯入資料 , 另一種方式是使用 slapadd 匯入資料,但是這種方式需要再服務關閉的時候執行.
# 匯入 example.ldif 的容器設定檔 # man ldapadd # -D 需要設定的 ldap binddn # -x 使用 SASL 認證 # -W 提示認證 # -f 讀取修改的輸入檔案 [root@localhost ~]# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f example.ldif Enter LDAP Password: 剛剛設定在 slapd.conf 的密碼 adding new entry "dc=example,dc=com "
- 接下來匯入其他兩個 ou_group.ldif 及 ou_people.ldif , 如果沒有錯誤訊息那應該就是對的。
- 先匯入 ou_people.ldif 的容器格式,再匯入 user.ldif
[root@localhost ~]# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ou_people.ldif Enter LDAP Password: adding new entry "ou=People,dc=example,dc=com "
- 先匯入 ou_group.ldif 再匯入
[root@localhost ~]# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ou_group.ldif Enter LDAP Password: adding new entry "ou=Group,dc=example,dc=com "
- 驗證是否已經匯入成功,第一次成功是好的開始
[root@localhost ~]# ldapsearch -x -b "dc=example,dc=com" # extended LDIF # # LDAPv3 # basewith scope subtree # filter: (objectclass=*) # requesting: ALL # # example.com dn: dc=example,dc=com dc: example objectClass: dcObject objectClass: organization o: example # People, example.com dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou:: UGVvcGxlIA== # Group, example.com dn: ou=Group,dc=example,dc=com ou: Groups ou: Group objectClass: top objectClass: organizationalUnit # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3
匯入資料 group.ldif 及 user.ldif
- 匯入 group.ldif
[root@localhost ~]# cat group.ldif dn: cn=root,ou=Group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: root userPassword: {crypt}x gidNumber: 0 ... 礙於篇幅只擷取第一筆資料及最後一筆資料,其他予以省略 ... dn: cn=ldapuser20,ou=Group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: ldapuser20 userPassword: {crypt}x gidNumber: 521 [root@localhost ~]# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f group.ldif Enter LDAP Password: adding new entry "cn=root,ou=Group,dc=example,dc=com" ... 礙於篇幅只擷取第一筆資料及最後一筆資料,其他予以省略 ... adding new entry "cn=ldapuser20,ou=Group,dc=example,dc=com"
- 匯入資料 user.ldif
[root@localhost ~]# cat user.ldif dn: uid=root,ou=People,dc=example,dc=com uid: root cn: root objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}$6$ceMIGLrh$VclS.GQzI.kDCAXm1s2uW0eZnEUdcbbzzPvoUHn5mtHgLvaOVYw11mUzIKycBU/8rKHfW9aiY6krC7XG1at5T. shadowLastChange: 15570 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 0 gidNumber: 0 homeDirectory: /root gecos: root ... 礙於篇幅只擷取第一筆資料及最後一筆資料,其他予以省略 ... dn: uid=ldapuser20,ou=People,dc=example,dc=com uid: ldapuser20 cn: ldapuser20 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}!! shadowLastChange: 15570 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 521 gidNumber: 521 homeDirectory: /nishome/ldapuser20 [root@localhost ~]# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif Enter LDAP Password: adding new entry "uid=root,ou=People,dc=example,dc=com" ... 礙於篇幅只擷取第一筆資料及最後一筆資料,其他予以省略 ... adding new entry "uid=ldapuser20,ou=People,dc=example,dc=com"
設定 LDAP server 包含 TLS/SSL 加密
- 上面的 LDAP server 如果已經建立成功,要改變成為 TLS/SSL 的加密傳輸,只需要稍作改變即可變更。
TLS/SSL加密設定
- 建立 TLS/SSL 憑證
[root@localhost ~]# cd /etc/pki/tls/certs # 刪除原本的憑證 [root@localhost certs]# rm slapd.pem [root@localhost certs]# pwd /etc/pki/tls/certs # 有 Makefile 內有製作 slapd.pem 憑證的方法 [root@localhost certs]# ls -l 總計 1204 -rw-r--r--. 1 root root 571450 2010-04-07 23:42 ca-bundle.crt -rw-r--r--. 1 root root 651083 2010-04-07 23:42 ca-bundle.trust.crt -rwxr-xr-x. 1 root root 610 2012-05-30 01:20 make-dummy-cert -rw-r--r--. 1 root root 2242 2012-05-30 01:20 Makefile # 產生 slapd.pem 憑證 [root@localhost certs]# make slapd.pem umask 77 ; \ PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \ PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \ /usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \ cat $PEM1 > slapd.pem ; \ echo "" >> slapd.pem ; \ cat $PEM2 >> slapd.pem ; \ rm -f $PEM1 $PEM2 Generating a 2048 bit RSA private key ...+++ ....................................+++ writing new private key to '/tmp/openssl.rWAX9H' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:TW State or Province Name (full name) []:taiwan Locality Name (eg, city) [Default City]:kaohsiung Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []:mtchang.tw@gmail.com
- 改變憑證的權限
[root@localhost certs]# chmod 640 slapd.pem [root@localhost certs]# chown ldap:ldap slapd.pem # 將這憑證訪到 /etc/openldap/cacerts 目錄下提供憑證認證使用 [root@localhost certs]# ln -s /etc/pki/tls/certs/slapd.pem /etc/openldap/cacerts/slapd.pem
- 修改系統的啟動設定檔,開啟 LDAPS 的功能
[root@localhost cacerts]# vim /etc/sysconfig/ldap # Run slapd with -h "... ldaps:/// ..." # yes/no, default: no SLAPD_LDAPS=yes
- 修改 slapd.con 的設定檔,加入憑證路徑
[root@localhost ~]# vim /etc/openldap/slapd.conf # 把原本的底下三行註解掉 # TLSCACertificatePath /etc/openldap/certs # TLSCertificateFile "\"OpenLDAP Server\"" # TLSCertificateKeyFile /etc/openldap/certs/password # 加入底下三行 TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt # 因為 slapd.pem 存放有兩把 key 所以指到同一個檔案即可 TLSCertificateFile /etc/pki/tls/certs/slapd.pem TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
- 重新啟動 slapd ,因為有動到 slapd.conf 設定檔所需要刪除原本的設定檔案再重新啟動
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
- 驗證 slapd tcp port 636 port
[root@localhost ~]# netstat -anp | grep slapd tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 6481/slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 6481/slapd tcp 0 0 :::636 :::* LISTEN 6481/slapd tcp 0 0 :::389 :::* LISTEN 6481/slapd unix 2 [ ACC ] STREAM LISTENING 52009 6481/slapd /var/run/ldapi unix 2 [ ] DGRAM 51999 6481/slapd
建立公開的 CA 憑證提供下載
- 如要提供給認證設定前需要在 LDAP server 建立一個可以下載的憑證提供 LDAP client 端讀取
# 請複製憑證到網頁根目錄,以方便提供使用 [root@localhost ~]# cp /etc/pki/tls/certs/slapd.pem /var/www/html/ldap_ca.pem [root@localhost ~]# chmod 755 /var/www/html/ldap_ca.pem # 請將憑證處理到只剩下 # -----BEGIN CERTIFICATE----- # -----END CERTIFICATE----- # 這個區段內的內容,其於的請刪除 [root@localhost ~]# cat /var/www/html/ldap_ca.pem -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIBADANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJUVzEP MA0GA1UECAwGdGFpd2FuMRIwEAYDVQQHDAlrYW9oc2l1bmcxHDAaBgNVBAoME0Rl ZmF1bHQgQ29tcGFueSBMdGQxIzAhBgkqhkiG9w0BCQEWFG10Y2hhbmcudHdAZ21h aWwuY29tMB4XDTEyMDgxODE0NDUyMFoXDTEzMDgxODE0NDUyMFowdTELMAkGA1UE BhMCVFcxDzANBgNVBAgMBnRhaXdhbjESMBAGA1UEBwwJa2FvaHNpdW5nMRwwGgYD VQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMSMwIQYJKoZIhvcNAQkBFhRtdGNoYW5n LnR3QGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvO 7gOYSXhTNWtCsHsYLtNVQCLOs5JTSJDSfzeUMjHw1iFKwsmlxiLYUeDsZRU9YGBL tmh4vjk45JOpNSthMXXkkqhj8BmXQUihoeu6LBJZr39WVG8BJgKFKPhGEmc08Zj3 N7z30/Cb1rrDyQcHWPJRhwAzSL1SJcHHMPSqKFPbQ30NuNGktwXTHzxFYu8mkwFr xVWItAavX5UxfdzeVWxql79LEpaY5esJxF3iKPNmHmnO4gxrq3UTMynyr98Ckw+x 2eJhF6Gc7Ar5p472djGh/WI3/l1qWNs8vl+5aKZbhmY3OgKbO3ABnJ5ceagYEFbT B1katWJau4iWz7mKNSsCAwEAAaNQME4wHQYDVR0OBBYEFCiDTDjbKlkoXqyXXUdK 2pkIwka6MB8GA1UdIwQYMBaAFCiDTDjbKlkoXqyXXUdK2pkIwka6MAwGA1UdEwQF MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAIVHt7HpnzzXiLbf3LZUI3fR32q5vhv1 1lGgZj0XkRbEqrRdPuVKCXbYQ8FlOIgca2/I+NGd+k7gIec/IZBWVJPA/Sk30oej 8KamZ2rxWJM+0U+2UoEYOzPE00uWiBkXSNaoZcq5YzLhCUX8FI6p62omcazgpVap keiJ9H85c1mExggffaHBudG3j92bzkDtuyHs32gK0skZGwaAHZKDcw2fIDsWr7CM kz2mCgEcSPSZEl3R5pbL+kH/xhbpmF0zE4KX93GGB+xvQolKZ2IclXvfsGGdh+g5 iKymVaVxGpJqZG5l0thjWlXFK3X5B2gceXBYFd7LGSk7qtWiz5C9PNA= -----END CERTIFICATE-----
LDAP 客戶端本機驗證
- 修改 ldap.conf (ldap client) 加入憑證的搜尋路徑
[root@localhost ~]# vim /etc/openldap/ldap.conf URI ldap://127.0.0.1 BASE dc=example,dc=com TLS_CACERTDIR /etc/openldap/cacerts TLS_REQCERT never
- ldapsearch -x 使用SASL認證 -ZZ 參數是使用 StartTLS 擴充功能操作
[root@localhost ~]# ldapsearch -x -ZZ -h localhost .... 略過部分資料,只擷取最後一段 .... # ldapuser20, People, example.com dn: uid=ldapuser20,ou=People,dc=example,dc=com uid: ldapuser20 cn: ldapuser20 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fSEh shadowLastChange: 15570 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 521 gidNumber: 521 homeDirectory: /nishome/ldapuser20 # search result search: 3 result: 0 Success # numResponses: 141 # numEntries: 140
- ldapsearch -x 使用SASL認證 -H 是使用 URI(s) 的方式指定 ldap 資源(SSL)
[root@localhost ~]# ldapsearch -x -H ldaps://localhost .... 略過部分資料,只擷取最後一段 .... # ldapuser20, People, example.com dn: uid=ldapuser20,ou=People,dc=example,dc=com uid: ldapuser20 cn: ldapuser20 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fSEh shadowLastChange: 15570 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 521 gidNumber: 521 homeDirectory: /nishome/ldapuser20 # search result search: 2 result: 0 Success # numResponses: 141 # numEntries: 140
其他主機設定 LDAP 帳號認證
- 客戶端使用這 LDAP TLS 驗證設定
- 使用者資料庫型態:LDAP
- Server CA憑證路徑在 http://192.168.123.171/ldap_ca.pem
- LDAP Base DN: dv=example,dc=com
- LDAPS://192.168.123.171
- 認證方式:LDAP 密碼認證
- 建立client 的 user 認證設定,啟動認證設定圖型介面程式
$ system-config-authentication
- 設定的畫面
- 輸入 CA 憑證網址,建立後會自動下載為 /etc/openldap/cacerts/ 內的一個檔案
- getent 驗證是否可以查詢到資料
[mtchang@localhost ~]$ getent passwd ldapuser1 ldapuser1:*:502:502:ldapuser1:/nishome/ldapuser1:/bin/bash [mtchang@localhost ~]$ getent passwd ldapuser20 ldapuser20:*:521:521:ldapuser20:/nishome/ldapuser20:/bin/bash [mtchang@localhost ~]$ getent passwd ldapuser10 ldapuser10:*:511:511:ldapuser10:/nishome/ldapuser10:/bin/bash
設定 Server 端提供 NFS 功能
- NIS Server 端的 nfs server 設定
[root@server1 ~]# vim /etc/exports /nishome 192.168.0.0/16(rw,sync)
- nfs啟動及測試
[root@server1 ~]# service nfslock restart [root@server1 ~]# service nfs restart
- 驗證本機的 nfs 資源已分享
[root@localhost /]# showmount -e localhost Export list for localhost: /nishome 192.168.0.0/16
- 在 server 端已經有提供建立好的目錄
[root@localhost /]# ls /nishome/ ldapuser1 ldapuser12 ldapuser15 ldapuser18 ldapuser20 ldapuser5 ldapuser8 ldapuser10 ldapuser13 ldapuser16 ldapuser19 ldapuser3 ldapuser6 ldapuser9 ldapuser11 ldapuser14 ldapuser17 ldapuser2 ldapuser4 ldapuser7
設定 Client 端提供有 AUTOFS 自動掛載功能
- 使用 ssh 從第三方主機登入已經設定好使用者認證的 LDAP CLIENT 主機,會有找不到 home 目錄的問題
[root@localhost ~]# ssh ldapuser10@192.168.123.141:22 Could not chdir to home directory /nishome/ldapuser10: No such file or directory /usr/bin/xauth: error in locking authority file /nishome/ldapuser10/.Xauthority -bash-4.1$
- 從遠端得到 nfs home 目錄
[root@localhost ~]# showmount -e 192.168.123.171 Export list for 192.168.123.171: /nishome 192.168.0.0/16
- 設定 /etc/auto.master
[root@localhost ~]# vim /etc/auto.master /nishome /etc/auto.nishome
- 設定 /etc/auto.nishome
[root@localhost ~]# vim /etc/auto.nishome * -rw,soft,intr 192.168.123.171:/nishome/&
- 重新載入 autofs 注意需要先 stop 在 start 否則會有問題,不能使用 restart
[root@localhost ~]# service autofs stop 正在停止 automount: [ 確定 ] [root@localhost ~]# service autofs start 正在啟動 automount: [ 確定 ]
- 預設開機啟動
[root@localhost ~]# chkconfig autofs on
- 再次使用 ssh 從第三方主機登入已經設定好使用者認證的 LDAP CLIENT 主機,這次發現登入後就自動掛載目錄了。
[root@localhost ~]# ssh ldapuser10@192.168.123.141:22 Last login: Sun Aug 19 01:26:59 2012 from 192.168.123.191 [ldapuser10@localhost ~]$ mount /dev/mapper/vgsrv-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vgsrv-home on /home type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 192.168.123.171:/nishome/ldapuser10 on /nishome/ldapuser10 type nfs (rw,soft,intr,sloppy,vers=4,addr=192.168.123.171,clientaddr=192.168.123.141) [ldapuser10@localhost ~]$
3 則留言:
您好:
拜讀大作之後,在啟動ldap server時
輸入:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
得到:invalid config Directory
/etc/openldap/slapd.d error2
slaptest:bad configuration directory 我有按照您的步驟下去作,不知那裡有問題,可否告知,謝謝!
這錯誤訊息不夠多,不好除錯。我猜應該是該程式還沒安裝吧!
這篇對我用處很大 謝謝
有一個小疑問
# 給 /etc/group 使用,配合 /root/group.ldif
[root@localhost ~]# vim ou_group.ldif
dn: ou=Group,dc=example,dc=com
ou: Groups
objectClass: top
objectClass: organizationalUnit
ou: Groups應該是ou: Group?
張貼留言