Carpe Diem

備忘録。https://github.com/jun06t

LDAPの構築 その1(インストール、初期設定)

ディレクトリサーバであるLDAPサーバの構築についてです。まず今回はインストールや初期設定を行います。 LDAPを導入すると大規模なユーザ管理が非常に楽になります。逆に言うと個人サーバではあまりメリットは無いです。今回は勉強のため導入してみました。 より詳しく知りたい方は LDAP OpenLdap入門 インストールと設定 を参考にしてください。非常にわかりやすく書いてあります。ではインストールから ◆インストール $ sudo aptitude install slapd ldap-utils インストール時にLDAP用パスワードの作成を求められるので適当に決めて入力します。 ◆設定の確認 # slapcat dn: dc=nodomain objectClass: top objectClass: dcObject objectClass: organization o: nodomain dc: nodomain structuralObjectClass: organization entryUUID: 8f17426c-2851-1031-81d4-a3891b52ec58 creatorsName: cn=admin,dc=nodomain createTimestamp: 20120502032049Z entryCSN: 20120502032049.195022Z#000000#000#000000 modifiersName: cn=admin,dc=nodomain modifyTimestamp: 20120502032049Z dn: cn=admin,dc=nodomain objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e1NTSEF9WllLQWRSa2h1SUxDSFJvNFVkT3Z1TzNQaGprOTErNkI= structuralObjectClass: organizationalRole entryUUID: 8f2df386-2851-1031-81d5-a3891b52ec58 creatorsName: cn=admin,dc=nodomain createTimestamp: 20120502032049Z entryCSN: 20120502032049.343735Z#000000#000#000000 modifiersName: cn=admin,dc=nodomain modifyTimestamp: 20120502032049Z ここで重要なのはピンク文字の部分です。ベースDNといいます。後にディレクトリやユーザを追加する時に必要な情報であり、これが間違っているとエラーになります。 ◆ディレクトリの新規登録 設定ファイルとを新規作成します。一時的なものなので情報を登録したら削除して構いません。base.ldifとします。新しいディレクトリ名を"people"、"groups"とします。 # emacs -nw base.ldif dn: ou=people,dc=nodomain objectClass: organizationalUnit ou: people dn: ou=groups,dc=nodomain objectClass: organizationalUnit ou: groups # ldapadd -x -D cn=admin,dc=nodomain -W -f base.ldif Enter LDAP Password: ここで重要なのが dc の部分です。ここは自身のsuffixにする必要があり、FQDNDNSなどの設定をしていないと先ほどの設定の確認であったようにnodomainとする必要があります。もし設定していている場合は、例えば dn: dc=dyndns,dc=org objectClass: top objectClass: dcObject objectClass: organization o: dyndns.org dc: dyndns とあったら dn: ou=people dc=dyndns,dc=org といった感じにします。 これがあっていないと下記のように解説サイト丸コピで実行するとエラーになります。 # ldapadd -x -D cn=admin,dc=example,dc=com -W -f base.ldif Enter LDAP Password: ldap_bind: Invalid credentials (49) ◆グループ・ユーザの新規作成 グループとユーザを作成します。 # emacs -nw newuser.ldif dn: cn=ldapuser,ou=groups,dc=nodomain objectClass: posixGroup cn: ldapuser gidNumber: 2000 dn: uid=ldapuser,ou=people,dc=nodomain objectClass: account objectClass: posixAccount uid: ldapuser cn: ldapuser userPassword: ldapuser loginShell: /bin/bash uidNumber: 2000 gidNumber: 2000 homeDirectory: /home/ldapuser # ldapadd -x -D cn=admin,dc=nodomain -W -f newuser.ldif Enter LDAP Password: adding new entry "cn=ldapuser,ou=groups,dc=nodomain" adding new entry "uid=ldapuser,ou=people,dc=nodomain" ◆確認 ちゃんと追加されているか確認します。ログインできない時にサーバ側の問題か、クライアント側の問題か切り分けるときに重要ですのできちんとやりましょう。作成したエントリのパスワードで表示されたらOKです。 # ldapsearch -x -LLL -b "ou=people,dc=nodomain" -D "uid=ldapuser,ou=people,dc=nodomain" -W uid=ldapuser Enter LDAP Password: ldapuser dn: uid=ldapuser,ou=people,dc=nodomain objectClass: account objectClass: posixAccount uid: ldapuser cn: ldapuser userPassword:: bGRhcHVzZXI= loginShell: /bin/bash uidNumber: 2000 gidNumber: 2000 homeDirectory: /home/ldapuser とりあえずユーザの追加まで。 ソース: LDAPサーバー構築 LDAP OpenLdap入門 インストールと設定 Ubuntu 10.04で、LDAPでログインできるようにする[追記あり] そろそろLDAPにしてみないか?第1回 まずは使ってみよう openLDAP 構築(38) - エラーメッセージ集