14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 20.04 LTS にOpenLDAPサーバーを構築したい

Last updated at Posted at 2021-07-01

ubuntuにLDAPサーバーを構築するときに情報が散乱していて手間取ったのでまとめておきます

動作環境とか

Hardware: Raspberry Pi 3 Model B
OS: Ubuntu 20.04.2 LTS

OpenLDAPのインストール

slapdとldap-utilsをインストールする

$ sudo apt install slapd ldap-utils

slapdにインストール中にLDAPサーバーの管理者パスワードを設定するように求められるので、適当に入力する

このままだとドメインがnodomainになっているので再設定を行ない適当なドメインに変更する

$ sudo dpkg-reconfigure slapd

設定画面がひらくので

Omit OpenLDAP server configuration?: No

DNS domain name?: [任意のドメイン]

Organization name?: [任意の組織名]

Administrator password?: [管理者パスワード(インストール時に設定したやつの再設定)]

このあとの質問はEnter連打で基本的にOK

一応設定の確認

$ sudo slapcat

設定したドメイン名がドットで区切られて、それぞれがカンマ区切りでdc=のあとに書いてあればOK
例:[hoge.example.com]の場合は[dc=hoge,dc=example,dc=com]

LDAPサーバーの設定

ユーザーとグループの組織単位の追加

base.ldifを作成して以下の内容を書き込む
dc=hoge,dc=example,dc=comのところはslapdの設定のところで設定したドメインに合わせて設定する

base.ldif
dn: ou=people,dc=hoge,dc=example,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=hoge,dc=example,dc=com
objectClass: organizationalUnit
ou: groups 

書き込んだら設定を追加する

$ ldapadd -x -D cn=admin,dc=hoge,dc=example,dc=com -W -f base.ldif

このとき管理者パスワードを聞かれるので先に設定したやつを入力する

adding new entry ~が2つ(peopleとgroups)が帰ってくればOK

LDAPサーバーにユーザーを追加

ユーザーのパスワードを生成する

$ slappasswd
New password:[アカウントに設定したいパスワードを入力]
Re-enter new password:[one more入力]
{SSHA}xxxxxxxxxxxxxxxxx

ここで表示された{SSHA}xxxxxxxxxxxxxxxxxのところをメモしておく

ldapuser.ldifを作成して以下の内容を書き込む
dc=hoge,dc=example,dc=comのところはslapdの設定のところで設定したドメインに合わせて設定する
{SSHA}xxxxxxxxxxxxxxxxxのところは先程メモしたやつを入力する
ここではユーザー[ubuntu]を例にしているが、ここは各々の環境でLDAPサーバーに追加したいユーザー名に変更する
また、uidNumber、gidNumberは追加したいユーザーのユーザーID、グループIDを入力する

ldapuser.ldif
dn: uid=ubuntu,ou=people,dc=hoge,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: ubuntu
sn: ubuntu
userPassword: {SSHA}xxxxxxxxxxxxxxxxx
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/ubuntu

dn: cn=ubuntu,ou=groups,dc=hoge,dc=example,dc=com
objectClass: posixGroup
cn: ubuntu
gidNumber: 2000
memberUid: ubuntu

書き込んだら設定を追加する

$ ldapadd -x -D cn=admin,dc=hoge,dc=example,dc=com -W -f ldapuser.ldif

このとき管理者パスワードを聞かれるので先に設定したやつを入力する

adding new entry ~が2つ(peopleとgroups)が帰ってくればOK

間違えて設定してしまって変更したいときは下のコマンドで既存の設定を削除してからもう一度行なう

ユーザー情報の削除

$ ldapdelete -x -W -D cn=admin,dc=hoge,dc=example,dc=com uid=ubuntu,ou=people,dc=hoge,dc=example,dc=com

グループ情報の削除

$ ldapdelete -x -W -D cn=admin,dc=hoge,dc=example,dc=com cn=ubuntu,ou=groups,dc=hoge,dc=example,dc=com

LDAPクライアントの設定

LDAPクライアントのインストール

$ sudo apt install libnss-ldapd libpam-ldapd ldap-utils

インストール時にいろいろ聞かれるので答えていく

LDAP server Uniform Resource Identifier: ldap://[構築したLDAPサーバーのIPアドレス]/

Distinguished name of the search base: [LDAPサーバーで設定したドメイン(dc=なんとかをカンマで区切ったやつ)]

Name services to configure: [passwd, group, shadowにチェックと入れる]

LDAPサーバーのIPアドレスのところはldap://[IP or Domain]にしないとログインできない場合があるのでこの形式をおすすめする

これで動く(はず)

サーバーのIPアドレスとドメインをあとから変更したいときは/etc/nslcd.conf、Name servicesの変更は/etc/nsswitch.confを編集する

動作確認

sshしてみる

$ ssh [LDAPサーバーで設定したユーザー名]@[LDAPサーバーのIPアドレス]
[LDAPサーバーで設定したユーザー名]@[LDAPサーバーのIPアドレス]’s password: [LDAPサーバーで設定したパスワード]

[ログインしたときのログ]

$

こんな感じにssh接続できたらOK
お疲れ様でした

参考文献

あとがき

  • 初Qiita記事だからこれでいいのかわからない
  • ドメインの設定に手こずって数時間悩んだ
  • いろいろいじってたら認証系の何かが死んでOS再インストールになった(ぴえん)
14
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?