Linux

openladap

参考 †

Server †

Install (以下 su - 権限) †

yum install openldap openldap-servers openldap-clients

パスワードの準備 †

  • slappasswd
    • New password:[パスワード入力]
    • Re-enter new password:[パスワード入力]
    • {SSHA}3pVTGxVxrS7tFJXrp+sAA6EdSgO8y1NE
  • vi /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif
    • 下記を変更
      olcRootPW: {SSHA}3pVTGxVxrS7tFJXrp+sAA6EdSgO8y1NE

DB 環境構築 †

  • バークレーDB、設定ファイルのコピー
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Service の起動 †

/etc/init.d/slapd start

loglevel の設定 †

  • 参考
    vi /etc/sysconfig/ldap
    
    # Options of slapd (see man slapd)
    SLAPD_OPTIONS="-l local4 -s 512"

LDAP の基本設定 †

  • ldapsearch -x -LLL -b 'olcDatabase={2}bdb,cn=config' -D cn=config -W
    • Enter LDAP Password: [上記で設定したディレクトリパスワードを入力]
    • dn: olcDatabase={2}bdb,cn=config
    • objectClass: olcDatabaseConfig
    • objectClass: olcBdbConfig
    • olcDatabase: {2}bdb
    • olcDbDirectory: /var/lib/ldap
    • olcSuffix: dc=my-domain,dc=com
    • olcAddContentAcl: FALSE
    • olcLastMod: TRUE
    • olcMaxDerefDepth: 15
    • olcReadOnly: FALSE
    • olcRootDN: cn=Manager,dc=my-domain,dc=net

データ用ディレクトリの管理情報の変更 †

  • LDIF ファイルを準備し適用する方法
    • vi bdb-init.ldif -W
      • # 設定を行うDNを指定
      • dn: olcDatabase={2}bdb,cn=config
      • # このLDIFファイルで修正を行うことを宣言します
      • changetype: modify
      • # olcRootDNを書き換えることを指定し値を指定する
      • replace: olcRootDN
      • olcRootDN: cn=Manager,dc=unix-power,dc=net
      • -
      • # olcSuffixを書き換えることを指定し値を指定する
      • replace: olcSuffix
      • olcSuffix: dc=unix-power,dc=net
      • -
      • # olcRootPWを追加することを指定し値を指定する
      • add: olcRootPW
      • olcRootPW: {SSHA}en/K3sLikQDCWk/lMmWLNh8svNQ+ggf0
  • GUI ツール、Apache Directory Studio

初期データの登録(以下は CUI) †

  • vi init.ldif
    dn: dc=unix-power,dc=net
    objectclass: dcObject
    objectclass: organization
    o: VIRTUAL CORPORATION
    dc: unix-power
    
    dn: cn=Manager,dc=unix-power,dc=net
    objectclass: organizationalRole
    cn: Manager
  • 登録は ldapadd コマンド
    ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f init.ldif
  • vi add.ldif
    dn: ou=Users,dc=unix-power,dc=net
    objectclass: organizationalUnit
    ou: Users
    
    dn: ou=Groups,dc=unix-power,dc=net
    objectclass: organizationalUnit
    ou: Groups
    
    dn: ou=Computers,dc=unix-power,dc=net
    objectclass: organizationalUnit
    ou: Computers
    
    # ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f add.ldif
    Enter LDAP Password:
    adding new entry "ou=Users,dc=unix-power,dc=net"
    
    adding new entry "ou=Groups,dc=unix-power,dc=net"
    
    adding new entry "ou=Computers,dc=unix-power,dc=net
  • vi groupadd.ldif
    dn: cn=develop,ou=Groups,dc=unix-power,dc=net
    objectClass: posixGroup
    cn: develop
    gidNumber: 1000
    
    dn: cn=sales,ou=Groups,dc=unix-power,dc=net
    objectClass: posixGroup
    cn: sales
    gidNumber: 1001
    
    dn: cn=market,ou=Groups,dc=unix-power,dc=net
    objectClass: posixGroup
    cn: market
    gidNumber: 1002
    
    # ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f groupadd.ldif
    Enter LDAP Password:
    adding new entry "cn=develop,ou=Groups,dc=unix-power,dc=net"
    
    adding new entry "cn=sales,ou=Groups,dc=unix-power,dc=net"
    
    adding new entry "cn=market,ou=Groups,dc=unix-power,dc=net"
  • vi useradd.ldif
    dn: uid=takeda,ou=Users,dc=unix-power,dc=net
    objectclass: posixAccount
    objectclass: inetOrgPerson
    sn: takeda
    cn: kazuma
    displayName: Takeda Kazuma
    uid: takeda
    uidNumber: 1000
    gidNumber: 1000
    homeDirectory: /home/takeda
    loginShell: /bin/bash
    userPassword: {CRYPT}B5fKzlwfatuy2
    mail: takeda@unix-power.net
    
    dn: uid=suzuki,ou=Users,dc=unix-power,dc=net
    objectclass: posixAccount
    objectclass: inetOrgPerson
    sn: suzuki
    cn: hajime
    displayName: Suzuki Hajime
    uid: suzuki
    uidNumber: 1001
    gidNumber: 1000
    homeDirectory: /home/suzuki
    loginShell: /bin/bash
    userPassword: {CRYPT}B5fKzlwfatuy2
    mail: suzuki@unix-power.net
    
    dn: uid=tanaka,ou=Users,dc=unix-power,dc=net
    objectclass: posixAccount
    objectclass: inetOrgPerson
    sn: tanaka
    cn: takuya
    displayName: Tanaka Takuya
    uid: tanaka
    uidNumber: 1002
    gidNumber: 1000
    homeDirectory: /home/tanaka
    loginShell: /bin/bash
    userPassword: {CRYPT}B5fKzlwfatuy2
    mail: tanaka@unix-power.net
    
    # ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f useradd.ldif
    Enter LDAP Password:
    adding new entry "uid=takeda,ou=Users,dc=unix-power,dc=net"
    
    adding new entry "uid=suzuki,ou=Users,dc=unix-power,dc=net"
    
    adding new entry "uid=tanaka,ou=Users,dc=unix-power,dc=net"

Client †

common †

  • ldap に loginshell を設定

Redhat系 †

  1. sudo yum install openldap-clients nss-pam-ldapd
  2. sudo authconfig-tui
    • ユーザー情報
      ユーザー情報         認証                          │ 
      [ ] キャッシュ情報   [ ] MD5 パスワードを使用      │ 
      [*] LDAP を使用      [*] シャドウパスワードを使用  │ 
      [ ] NIS を使用       [*] LDAP 認証を使用           │ 
      [ ] IPAv2 の使用     [ ] Kerberos 5 を使用         │ 
      [ ] Winbind を使用   [ ] 指紋読み取りを使用        │ 
                           [ ] Winbind 認証を使用        │ 
                           [*] ローカル認証は十分です   
    • [ ] TLS を使用
      • サーバー: ldap://123.456.789.012/
      • ベース DN: dc=tar3,dc=net
  • sudo vi /etc/pam.d/system-auth (もし中身にsssがあれば)
    #auth        sufficient    pam_sss.so use_first_pass
    auth        sufficient    pam_ldap.so use_first_pass
    
    #account     [default=bad success=ok user_unknown=ignore] pam_sss.so
    account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
    
    #password    sufficient    pam_sss.so use_authtok
    password    sufficient    pam_ldap.so use_authtok
    
    #session     optional      pam_sss.so
    session     optional      pam_ldap.so
  • sudo vi /etc/pam.d/password-auth (もし中身にsssがあれば)
    #auth        sufficient    pam_sss.so use_first_pass
    auth        sufficient    pam_ldap.so use_first_pass
    
    #account     [default=bad success=ok user_unknown=ignore] pam_sss.so
    account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
    
    #password    sufficient    pam_sss.so use_authtok
    password    sufficient    pam_ldap.so use_authtok
    
    #session     optional      pam_sss.so
    session     optional      pam_ldap.so
  • sudo vi /etc/nsswitch.conf
    #passwd:     files sss
    passwd:     files ldap
    #shadow:     files sss
    shadow:     files ldap
    #group:      files sss
    group:      files ldap
    
    #services:   files sss
    services:   files ldap
    
    #netgroup:   files sss
    netgroup:   files ldap
    
    #automount:  files sss
    automount:  files ldap
  • sudo vi /etc/pam.d/sshd
    session required pam_mkhomedir.so skel=/etc/skel/ umask=0007
  • service の restart
    sudo service nslcd restart
  • 確認
    getent passwd

Debian系 †

  1. sudo apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db
    • 失敗した時の再設定
      sudo dpkg-reconfigure ldap-auth-config
    1. Should debconf manage LDAP configuration?
      <はい>
    2. LDAP server Uniform Resource Identifier:
      ldap://123.456.789.012/
    3. Distinguished name of the search base:
      dc=tar3,dc=net
    4. LDAP version to use:
      3
    5. Make local root Database admin:
      <はい>
    6. Does the LDAP database require login?
      <いいえ>
    7. LDAP account for root:
      cn=Manager,dc=tar3,dc=net
    8. LDAP root account password:
      [LDAP root account password]
    9. The meanings for selections are:
      <了解>
    10. Local crypt to use when changing passwords:
      exop
  2. sudo vi /etc/pam.d/sshd
    # Create home directory automatically.
    session required pam_mkhomedir.so skel=/etc/skel/ umask=0007
  3. sudo vi /etc/nsswitch.conf
    passwd: files ldap
    group: files ldap
    shadow: files ldap
     
    netgroup: ldap
  4. 確認
    getent passwd
  5. sudo 時、password を2回聞かれる問題
    sudo vi /etc/pam.d/common-auth
    1. before
      auth    [success=1 default=ignore]      pam_ldap.so use_first_pass
    2. after
      auth    [success=1 default=ignore]      pam_ldap.so try_first_pass
  6. x ログイン時にユーザー名が表示されない
    • ctrl + alt + F1 を押してコンソールへ。一度、ldap ユーザーでログインする。

ApacheDirectoryStudio &dagger;

setButton(GtkWidget*): アサーション `!_button._widget' に失敗しました。 &dagger;


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-25 (金) 20:35:05 (116d)