環境
なお、LDAPサーバとLDAPクライアントは同一環境に構築する
LDAPサーバの構築
OpenLDAPのインストールと設定する
$ sudo apt install slapd ldap-utils 管理者パスワードを設定:ubuntu # 自動設定の確認 $ sudo slapcat dn: dc=nodomain objectClass: top objectClass: dcObject objectClass: organization o: nodomain dc: nodomain structuralObjectClass: organization entryUUID: 727fc124-17e6-103e-801d-472c4fc6fea5 creatorsName: cn=admin,dc=nodomain createTimestamp: 20231115093816Z entryCSN: 20231115093816.195194Z#000000#000#000000 modifiersName: cn=admin,dc=nodomain modifyTimestamp: 20231115093816Z # 初期設定 $ sudo dpkg-reconfigure slapd # DNSドメイン名、組織名、LDAPサーバーの管理者パスワード、slapdを削除する時にLDAPデータベースもあわせて削除するか、今ある古いデータベースを移動するか等、ダイアログが表示されるので適当に入力 # 設定内容の確認 $ sudo slapcat dn: dc=6GI-DNS objectClass: top objectClass: dcObject objectClass: organization o: 6GI-org dc: 6GI-DNS structuralObjectClass: organization entryUUID: 6253fc7e-17e7-103e-8f88-831c89cecf2e creatorsName: cn=admin,dc=6GI-DNS createTimestamp: 20231115094458Z entryCSN: 20231115094458.561534Z#000000#000#000000 modifiersName: cn=admin,dc=6GI-DNS modifyTimestamp: 20231115094458Z
組織単位の追加する
以下のファイルを作成する
$ vim add_ou.ldif (以下を追記) dn: ou=people,dc=6GI-DNS objectClass: organizationalUnit ou: people dn: ou=groups,dc=6GI-DNS objectClass: organizationalUnit ou: groups
ldapadd コマンドを実行して、エントリ追加する
$ ldapadd -x -D cn=admin,dc=6GI-DNS -W -f add_ou.ldif Enter LDAP Password: (前述で設定した管理者パスワードを入力) adding new entry "ou=people,dc=6GI-DNS" adding new entry "ou=groups,dc=6GI-DNS"
ユーザーとグループの追加する
まず、ユーザーの初期パスワード生成する。パスワードはtestとする
$ slappasswd New password: (「test」と入力) Re-enter new password: (同上) {SSHA}rVEU9SRvCBlVCDJx+FTPdauUeStELs2r
このハッシュ値を使って次のようなLDIFファイルを作る
$ vim add_u11000.ldif (以下を追記) dn: cn=u11000,ou=groups,dc=6GI-DNS objectClass: posixGroup cn: u11000 gidNumber: 11000 dn: uid=u11000,ou=people,dc=6GI-DNS objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Test Name sn: Test displayName: Test Name givenName: Name title: staff uid: u11000 userPassword: {SSHA}rVEU9SRvCBlVCDJx+FTPdauUeStELs2r gidNumber: 11000 homeDirectory: /home/u11000 uidNumber: 11000 gecos: Uchida Ryo loginShell: /bin/bash shadowExpire: -1 shadowInactive: 99999 shadowMax: 99999 shadowMin: 0 shadowWarning: 14
作成したLDIFファイルを活用して、エントリを追加する
$ ldapadd -x -D cn=admin,dc=6GI-DNS -W -f add_u11000.ldif Enter LDAP Password: (前述で設定した管理者パスワードを入力) adding new entry "cn=u11000,ou=groups,dc=6GI-DNS" adding new entry "uid=u11000,ou=people,dc=example,dc=com" ldap_add: Server is unwilling to perform (53) additional info: no global superior knowledge
エントリを確認する
$ ldapsearch -x -LLL -D cn=admin,dc=6GI-DNS -b dc=6GI-DNS -W Enter LDAP Password: (前述で設定した管理者パスワードを入力) dn: dc=6GI-DNS objectClass: top objectClass: dcObject objectClass: organization o: 6GI-org dc: 6GI-DNS dn: ou=people,dc=6GI-DNS objectClass: organizationalUnit ou: people dn: ou=groups,dc=6GI-DNS objectClass: organizationalUnit ou: groups dn: cn=u11000,ou=groups,dc=6GI-DNS objectClass: posixGroup cn: u11000 gidNumber: 11000
LDAPクライアントの構築
必要なパッケージのインストールする
$ sudo apt install libnss-ldapd libpam-ldapd
インストール中に表示されたダイアログの設定は以下とした。
項目 | 設定内容 |
---|---|
LDAPサーバーのURI | ldap://localhost |
LDAPサーバーの検索ベース | dc=6GI-DNS |
nslocdの設定 | none |
TLSの使用 | No |
設定する名前サービス | passwd, group, shadow |
もし、設定にミスした場合は以下のコマンドで再度に設定が可能である
# libpam-ldapdを再設定する場合 $ sudo dpkg-reconfigure nslcd # libnss-ldapdを再設定する場合 $ sudo dpkg-reconfigure libnss-ldapd
ホームディレクトリの自動生成の設定を行う。
$ sudo vim /etc/pam.d/common-session (末尾に追加) +session optional pam_mkhomedir.so skel=/etc/skel umask=0002 # サービス再起動 $ sudo systemctl restart nscd.service nslcd.service
作成したユーザIDでLDAPクライアントからLDAPサーバにログインする
$ ssh u11000@localhost u11000@localhost's password: (「test」と入力) # loginユーザ確認 $ whoami u11001
これでLDAPサーバで作成したIDで、LDAPクライアントからログインできたことを確認した。
参考