日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OenLDAP 配置记录

發布時間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OenLDAP 配置记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  • Create: 2012-12-24

  • Update: 2012-12-27

  • 參考: http://blog.christophersmart.com/articles/openldap-how-to-fedora/

概述

  • 測試環境

    • CentOS 6.3

    • domain: gdu.me

    • LDAP server: ldap.gdu.me

DEVICE="eth1" BOOTPROTO="static" HWADDR="08:00:27:EF:6C:2B" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" IPADDR=192.168.56.2 NETMASK=255.255.255.0
  • 配置步驟

  • 安裝軟件包

  • 配置LDAP Server域信息

  • 配置LDAP Server加密(TLS)認證

  • 啟動LDAP Server、測試

  • 通過遷移工具導入本地用戶

  • 增加用戶和組(ldif文件)

  • 客戶端LDAP認證配置

  • OpenLDAP Server

    OpenLDAP 2.3以后版本有兩種配置方式:

  • 配置文件:舊方式,通過/etc/openldap/slapd.conf配置。

  • 非配置文件:配置存儲在LDAP server中,可動態更新。在/etc/openldap/sladp.d目錄中配置。

  • 安裝所需軟件包

    1 2 yum ? ? install ? ? openldap-servers migrationtools #openssl
    ==========================================================================================Package??????????????????????????Arch????????Version????????????????Repository??????Size ========================================================================================== Installing:migrationtools???????????????????noarch??????47-7.el6???????????????base????????????25?kopenldap-servers?????????????????i686????????2.4.23-26.el6_3.2??????updates????????2.0?M Installing?for?dependencies:openldap-clients?????????????????i686????????2.4.23-26.el6_3.2??????updates????????158?kportreserve??????????????????????i686????????0.0.4-9.el6????????????base????????????22?kTransaction?Summary ========================================================================================== Install???????4?Package(s)

    生成管理員密碼串

    #slappasswd?-s?123456 #{SSHA}IYj/KpP3SS4Ka3Qcn55hfvMb8Ionc/h8 ?

    配置文件

    • 刪除配置目錄

    如果使用配置文件,需刪除或改名配置目錄(啟動腳本優先使用目錄下的配置)。

    1 rm ? ? -rf ? ? /etc/openldap/slapd ? ? .d/
    • 創建配置文件

    1 cp ? ? -a ? ? /usr/share/openldap-servers/slapd ? ? .conf.obsolete ? ? /etc/openldap/slapd ? ? .conf
    • 修改配置

    設置domain(dc=gdu,dc=me)、admin密碼、密鑰文件路徑信息(注意:有的站點說配置項與配置內容間必須用TAB分隔,我沒測試過)。

    domain修改修改

    • 直接替換

      1 sed ? ? ? -i.bak ? ? ? 's/dc=my-domain,dc=com/dc=gdu,dc=com/g' ? ? ? /etc/openldap/slapd ? ? ? .conf ? ? ?
    • 手工修改

    suffix?"dc=gdu,dc=me" rootdn?"cn=Manager,dc=gdu,dc=me" ... #?allow?only?rootdn?to?read?the?monitor #?enable?server?status?monitoring?(cn=monitor) database?monitor access?to?*by?dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"?readby?dn.exact="cn=Manager,dc=gdu,dc=me"?readby?*?none

    設置admin密碼、密鑰文件路徑(后續生成)

    1 2 3 4 5 cat?>>?/etc/openldap/slapd.conf?<<EOF rootpw??{SSHA}IYj/KpP3SS4Ka3Qcn55hfvMb8Ionc/h8 TLSCertificateFile??/etc/openldap/ssl/slapdcert.pem TLSCertificateKeyFile???/etc/openldap/ssl/slapdkey.pem EOF ? ?

    非配置文件

    通過修改slapd.d目錄下的文件(.ldif),將配置存入LDAP server中(cn=config)。

    首先配置的兩個是基礎數據庫文件。

    bdb.ldif domain修改

    1 sed ? ? -i.bak ? ? 's/dc=my-domain,dc=com/dc=gdu,dc=me/g' ? ? /etc/openldap/slapd ? ? .d ? ? /cn ? ? \=config ? ? /olcDatabase ? ? \=\{2\}bdb.ldif

    手工修改

    olcRootDN:?dc=gdu,dc=me

    admin密碼及密鑰文件路徑

    cat?>>?/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif?<<EOF olcRootPW:?{SSHA}IYj/KpP3SS4Ka3Qcn55hfvMb8Ionc/h8 olcTLSCertificateFile:?/etc/openldap/ssl/slapdcert.pem olcTLSCertificateKeyFile:?/etc/openldap/ssl/slapdkey.pem EOF ?

    monitor.ldif

    sed?-i.bak?'s/cn=manager,dc=my-domain,dc=com/cn=Manager,dc=gdu,dc=me/g'?/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

    數據庫緩存

    現在已用配置、或非配置文件方式完成了LDAP配置。復制DB_CONFIG文件,并設置使用Berkley數據庫。

    cp?/usr/share/openldap-servers/DB_CONFIG.example?/var/lib/ldap/DB_CONFIG chown?-Rf?ldap:ldap?/var/lib/ldap/

    測試配置

    slaptest?-u? #config?file?testing?succeeded ?

    配置文件轉為目錄

    service?slapd?stop mkdir?-p?/etc/openldap/slapd.d/ rm?-rf?/etc/openldap/slapd.d/* slaptest?-f?/etc/openldap/slapd.conf?-F?/etc/openldap/slapd.d/ chown?ldap.ldap?/etc/openldap/slapd.d/?-R ?

    配置加密(LDAPS)

    為提高使用LDAP認證的安全性,配置同時運行LDAP(TLS,tcp:389)和TLS或LDAPS(TLS,tcp:636)。

    • 設置ldap啟動參數

      1 sed ? ? ? -i.bak ? ? ? 's/\(SLAPD_LDAPS=\).*$/\1yes/g' ? ? ? /etc/sysconfig/ldap ? ? ?
    • 生成SSL密鑰

    注意替換按提示輸入的ldap server信息。

    mkdir?/etc/openldap/ssl/ openssl?req?-new?-x509?-nodes?-out?/etc/openldap/ssl/slapdcert.pem?-keyout?/etc/openldap/ssl/slapdkey.pem?-days?365#?設置生成的兩個文件(公鑰、私鑰)ldap用戶可讀 chown?-Rf?root:ldap?/etc/openldap/ssl chmod?-Rf?750?/etc/openldap/ssl chmod?-Rf?640?/etc/openldap/ssl/* ? Generating?a?2048?bit?RSA?private?key....................................................+++writing?new?private?key?to?'/etc/openldap/ssl/slapdkey.pem'-----You?are?about?to?be?asked?to?enter?information?that?will?be?incorporatedinto?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?blankFor?some?fields?there?will?be?a?default?value,If?you?enter?'.',?the?field?will?be?left?blank.-----Country?Name?(2?letter?code)?[XX]:?CNState?or?Province?Name?(full?name)?[]:?SCLocality?Name?(eg,?city)?[Default?City]:?ChengduOrganization?Name?(eg,?company)?[Default?Company?Ltd]:?GDUOrganizational?Unit?Name?(eg,?section)?[]:?ITCommon?Name?(eg,?your?name?or?your?server's?hostname)?[]:?ldap.gdu.me?Email?Address?[]:?admin@gdu.me

    啟動LDAP服務

    啟動LDAP服務

    # 啟動服務 service?slapd?start#?檢查服務偵聽 netstat?-lt?|grep?ldap #tcp??0??0?*:ldap???*:*??LISTEN #tcp??0??0?*:ldaps??*:*??LISTEN#?設置自啟動 chkconfig?slapd?on#?測試配置 ldapsearch?-x?-b?''?-s?base?'(objectclass=*)'?namingContexts ? #?extended?LDIF # #?LDAPv3 #?base?<>?with?scope?baseObject #?filter:?(objectclass=*) #?requesting:?namingContexts ## dn: namingContexts:?dc=gdu,dc=me#?search?result search:?2 result:?0?Success#?numResponses:?2 #?numEntries:?1

    配置base domain

    LDAP已經運行起來,但還沒有任何用戶(People)、組(Group),我們將在后續添加,現在我們需要設置base、證書和組文件。

    這是使用遷移本地用戶的方式來完成:轉換成LDIF文件用于導入LDAP。

    我們面要建立base.ldif模板,給我們的目錄(gdu.me)定義基本結構。

    • 建立base.ldif

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 cat ? ? ? > base.ldif <<EOF ? ? ? dn: ? ? ? dc ? ? ? =gdu, ? ? ? dc ? ? ? =me ? ? ? dc ? ? ? : gdu ? ? ? objectClass: ? ? ? top ? ? ? objectClass: domain ? ? ? dn: ou=People, ? ? ? dc ? ? ? =gdu, ? ? ? dc ? ? ? =me ? ? ? ou: People ? ? ? objectClass: ? ? ? top ? ? ? objectClass: organizationalUnit ? ? ? dn: ou=Group, ? ? ? dc ? ? ? =gdu, ? ? ? dc ? ? ? =me ? ? ? ou: Group ? ? ? objectClass: ? ? ? top ? ? ? objectClass: organizationalUnit ? ? ? EOF ? ? ?

    注意:換行符差別可能造成導入失敗(從網頁復制,換行符會出錯)。與migrate_base.pl > base.ldif生成的比較,只有一些換行符差別。

    ldapadd:?attributeDescription?"dn":?(possible?missing?newline?after?line?8,?entry?"dc=gdu,dc=m????????????????e"?)
    • 導入base.ldif

      1 2 3 4 5 ldapadd -x -W -D ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -f . ? ? ? /base ? ? ? .ldif ? ? ? # Enter LDAP Password: ? ? ? # adding new entry "dc=gdu,dc=me" ? ? ? # adding new entry "ou=People,dc=gdu,dc=me" ? ? ? # adding new entry "ou=Group,dc=gdu,dc=me" ? ? ?

    If you saw the above, then it worked! If you get an error about authentication issues connecting to my-domain.com then it’s not reading your configuration properly, and is using the default. Stop the service and start again.

    遷移本地用戶和組

    下面使用遷移工具根據本地已有用戶和組創建ldif文件,用于導入LDAP。

    • 配置migrate工具

      1 vim ? ? ? /usr/share/migrationtools/migrate_common ? ? ? .ph ? ? ?

    修改以下內容:

    #?Default?DNS?domain $DEFAULT_MAIL_DOMAIN?=?"gdu.me";#?Default?base? $DEFAULT_BASE?=?"dc=gdu,dc=me";
    • Users (People)

    生成已有用戶ldif文件。

    1 /usr/share/migrationtools/migrate_passwd ? ? .pl ? ? /etc/passwd ? ? people.ldif

    編輯people.ldif文件,刪除不需要導入的用戶信息(如:mysql,nobody等等)。

    • Groups (Group)

    生成已有組ldif文件。

    1 /usr/share/migrationtools/migrate_group ? ? .pl ? ? /etc/group ? ? group.ldif

    編輯group.ldif文件,刪除不需導入的組信息(似乎保留root,wheel,users就可了)。

    • 導入ldif文件

      1 2 ldapadd -x -W -D ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -f group.ldif ? ? ? ldapadd -x -W -D ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -f people.ldif ? ? ?
    • 測試連接LDAP數據庫

      1 2 ldapsearch -xWD ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -b ? ? ? "dc=gdu,dc=me" ? ? ? "cn=root" ? ? ? ldapsearch -x -b ? ? ? 'dc=gdu,dc=me' ? ? ? 'cn=yuanxing' ? ? ?
      Enter?LDAP?Password: #?extended?LDIF # #?LDAPv3 #?base?<dc=gdu,dc=me>?with?scope?subtree #?filter:?cn=root #?requesting:?ALL ##?root,?People,?gdu.me dn:?uid=root,ou=People,dc=gdu,dc=me uid:?root cn:?root objectClass:?account objectClass:?posixAccount objectClass:?top objectClass:?shadowAccount userPassword::?e2NyeXB0fSQ2JFdjN..... shadowLastChange:?15663 shadowMin:?0 shadowMax:?99999 shadowWarning:?7 loginShell:?/bin/bash uidNumber:?0 gidNumber:?0 homeDirectory:?/root gecos:?root#?root,?Group,?gdu.me dn:?cn=root,ou=Group,dc=gdu,dc=me objectClass:?posixGroup objectClass:?top cn:?root userPassword::?e2NyeXB0fXg= gidNumber:?0#?search?result search:?2 result:?0?Success#?numResponses:?3 #?numEntries:?2

    添加用戶和組

    創建用戶、組ldif文件,導入LDAP。

    • User

    創建username.ldif文件(如yuanxing.ldif):

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cat ? ? > yuanxing.ldif <<EOF dn: uid=yuanxing,ou=People, ? ? dc ? ? =gdu, ? ? dc ? ? =me uid: yuanxing cn: YuanXing objectClass: account objectClass: posixAccount objectClass: ? ? top objectClass: shadowAccount userPassword: {CRYPT}cr7JQsCc2EcXg shadowLastChange: 14846 shadowMax: 99999 shadowWarning: 7 loginShell: ? ? /bin/bash uidNumber: 501 gidNumber: 501 homeDirectory: ? ? /home/yuanxing gecos: YuanXing EOF

    UserPassword可用下面的命令生成加密串:

    1 2 slappasswd -c crypt -s 111111 {CRYPT}cr7JQsCc2EcXg
    • Group

    創建username.ldif文件(如yuanxing-group.ldif):

    1 2 3 4 5 6 7 8 cat ? ? > yuanxing-group.ldif <<EOF dn: cn=yuanxing,ou=Group, ? ? dc ? ? =gdu, ? ? dc ? ? =me objectClass: posixGroup objectClass: ? ? top cn: yuanxing userPassword: {crypt}x gidNumber: 501 EOF
    • 導入LDAP

      1 2 3 4 5 6 7 ldapadd -x -W -D ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -f yuanxing-group.ldif ? ? ? #Enter LDAP Password: ? ? ? #adding new entry "cn=yuanxing,ou=Group,dc=gdu,dc=me" ? ? ? ldapadd -x -W -D ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -f yuanxing.ldif ? ? ? #Enter LDAP Password: ? ? ? #adding new entry "uid=yuanxing,ou=People,dc=gdu,dc=me" ? ? ?

    客戶端配置

    認證配置

    LDAP服務端運行正常,現在可以配置客戶機通過LDAP進行認證。

    • 設置DNS或host

      192.168.56.101?ldap.gdu.me
    • 安裝軟件包

      1 yum ? ? ? install ? ? ? openldap-clients nss-pam-ldapd pam_ldap ? ? ?

    CentOS/Fedora主機,使用authconfig-gtk或authconfig-tui(authconfig好像可以通過命令行參數完成?),并做如下設置:

    • 證書文件

    將slapdcert.pem文件上傳到/etc/openldap/cacerts目錄。

    • 設置認證方式

      ???┌────────────────┤?Authentication?Configuration?├─────────────────┐│?????????????????????????????????????????????????????????????????││??User?Information????????Authentication?????????????????????????││??[?]?Cache?Information???[*]?Use?MD5?Passwords??????????????????││??[*]?Use?LDAP????????????[*]?Use?Shadow?Passwords???????????????││??[?]?Use?NIS?????????????[*]?Use?LDAP?Authentication????????????││??[?]?Use?IPAv2???????????[?]?Use?Kerberos???????????????????????││??[?]?Use?Winbind?????????[?]?Use?Fingerprint?reader?????????????││??????????????????????????[?]?Use?Winbind?Authentication?????????││??????????????????????????[*]?Local?authorization?is?sufficient??│└─────────────────────────────────────────────────────────────────┘

      ?

      1 yum ? ? ? install ? ? ? nss-pam-ldapd pam_ldap ? ? ?
    • 設置LDAP Server信息

      ???┌─────────────────┤?LDAP?Settings?├─────────────────┐│???????????????????????????????????????????????????││??????????[*]?Use?TLS??????????????????????????????││??Server:?ldaps://ldap.gdu.me/____________________?││?Base?DN:?dc=gdu,dc=me____________________________?││???????????????????????????????????????????????????│└───────────────────────────────────────────────────┘

    配置完成后,會啟動nslcd服務進程(nslcd - local LDAP name service daemon)。

    • 測試ldap查詢

      1 2 3 ldapsearch -xWD ? ? ? "cn=Manager,dc=gdu,dc=me" ? ? ? -b ? ? ? "dc=gdu,dc=me" ? ? ? "cn=root" ? ? ? ldapsearch -x -b ? ? ? 'dc=gdu,dc=me' ? ? ? 'cn=yuanxing' ? ? ? getent ? ? ? passwd ? ? ? | ? ? ? grep ? ? ? yuanxing ? ? ?

    如果沒有返回信息,或返回錯誤,請檢查配置,重新進行測試。如果檢查配置沒有錯誤,可以做如下修改,重新進行測試。 將/etc/sssd/sssd.conf文件中的#enumerate=false,修改為:enumerate=true,這樣修改完后,getent就會從LDAP查找賬戶信息。 并重新執行如下命令:service sssd restart

    • 測試登錄

    成功登錄后提示無home目錄,需后續設置登錄時自動創建目錄、或通過autofs自動mountNFS目錄。

    No?directory?/home/yuanxing! Logging?in?with?home?=?"/".
    • TLS方式失敗,原因待查

    LDAP以TLS方式運行時,執行登錄后,LDAP服務端slapd進程CPU占用達90%以上,日志中無相應信息,原因待查。

    客戶快速配置

    參考: http://myhat.blog.51cto.com/391263/972870

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/bin/bash chmod ? ? 755 ? ? /var/log/audit grep ? ? "192.168.56.101" ? ? /etc/hosts ? ? || ? ? echo ? ? "192.168.56.101?? ldap.gdu.me"? ? ? >> ? ? /etc/hosts grep ? ? "192.168.56.102" ? ? /etc/hosts ? ? || ? ? echo ? ? "192.168.56.102?? ldap.gdu.me"? ? ? >> ? ? /etc/hosts grep ? ? SUDOERS ? ? /etc/openldap/ldap ? ? .conf || ? ? echo ? ? "SUDOERS_BASE ou=SUDOers,dc=gdu,dc=me"? ? ? >> ? ? /etc/openldap/ldap ? ? .conf grep ? ? sudoers ? ? /etc/nsswitch ? ? .conf || ? ? echo ? ? "sudoers:??? ldap"? ? ? >> ? ? /etc/nsswitch ? ? .conf test ? ? -e ? ? /etc/openldap/cacerts/ca ? ? .pem || wget http: ? ? //192 ? ? .168.56.101 ? ? /config/ca ? ? .pem -P ? ? /etc/openldap/cacerts/ authconfig --useshadow --usemd5 --enableldap --enableldapauth --enableldaptls --ldapserver=ldap.gdu.me \ --ldapbasedn= ? ? "dc=gdu,dc=me" ? ? --ldaploadcacert= ? ? file ? ? : ? ? ///etc/openldap/cacerts/ca ? ? .pem --enablemkhomedir --updateall grep ? ? "sbin" ? ? /etc/skel/ ? ? .bashrc || ? ? echo ? ? -e ? ? 'PATH=$PATH:/sbin:/usr/local/sbin:/usr/kerberos/sbin;\nexport PATH' ? ? >> ? ? /etc/skel/ ? ? .bashrc

    自動創建HOME

    對于ldap認證的用戶,通常需要自動創建他們的HOME目錄,好在pam模塊pam_mkhomedir.so解決了這一問題,只要把下面內容添加到/etc/pam.d/system-auth的session部分的第一行即可:

    session?required?pam_mkhomedir.so?skel=/etc/skel/?umask=0066

    但如果沒在sshd_config里啟用pam,則通過ssh登錄的用戶沒機會運行這個模塊。因此,需要如下設置sshd_config:

    UsePAM?yes

    開啟日志

    LDAP服務器需要手動添加日志功能。/etc/openldap/slapd.conf中末行添加

    loglevel?296

    local4.* /var/log/ldap.log (說明:local0-7為syslog的facilities,具體的程序應用的facility不一樣,每一個facility都有它的數字代碼,由 這些代碼加上錯誤信息的程度syslog可以判斷出信息的優先權。就上例來說,local7的代碼為23,notice的代碼為5,那么 local7.notice的信息優先權為:23*8+5=189。這是/var/adm/messages.T3是信息的優先僅。具體可以查 RFC3164。我自己認為設定local7而不用local5是由應用程序決定的。)

    這是一個比較詳細的日志級別。同時在/etc/syslog.conf中添加local4.* /var/log/ldap.log 確定LDAP服務器的日志位置。

    用如下命令使日志功能生效:

    service syslog restart



    轉載于:https://my.oschina.net/badboy2/blog/464517

    總結

    以上是生活随笔為你收集整理的OenLDAP 配置记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。