hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

Ubuntu 16.04上でオープンLDAPのインストールと設定

OpenLDAPのインストール手順を丁寧に記載しているサイトがありました。ウィザードで設定を行うため、シンプルで分かりやすい内容です。

www.itzgeek.com

 

上記サイトの構築手順を記載します。

このサイトの管理者に、構築手順を翻訳しブログに記載することの許可は得ています。

 

このガイドは、OpenLDAPサーバーとOpenLDAPクライアントの別々のマシンに構築し、OpenLDAPクライアントから構築後の動作確認を行います。

 

 環境:

ホスト名 IPアドレス OS 目的
server.ldtest.local 192.168.0.50 Ubuntu 16.04 LDAPサーバー
client.ldtest.local 192.168.0.60 Ubuntu 16.04 LDAPクライアント

 

前提条件:

 名前解決のために、/etc/hosts にそれぞれのマシンの情報を記載します。

 sudo vi /etc/hosts

192.168.0.50 server.ldtest.local
192.168.0.60 client.ldtest.local

 

LDAPのインストール:

 server.ldtest.local上でLDAPのインストールコマンドを実行します。

 sudo apt-get update

sudo apt-get -y install slapd ldap-utils

 管理者パスワードの設定画面が表示されますので、パスワードを設定します。

f:id:hirosanote:20180127103612p:plain

 

OpenLDAPサーバーの再設定:

インストーラは、サーバーのホスト名に基づいてLDAPディレクトリを自動的に作成しますので、LDAPを再構成します。 次のコマンドを実行します。

sudo dpkg-reconfigure slapd

 再構成ツールの一連の質問に答える必要があります。

OpenLDAPサーバーの設定を省略しますか? : No

(Yesを選択すると設定がキャンセルされます。)

f:id:hirosanote:20180127173958p:plain

 

 DNSドメイン名:LDAPディレクトリのベースDNを作成します。

使用するドメイン名を入力します。

f:id:hirosanote:20180127174506p:plain

 

組織名:使用する組織名を指定します。

f:id:hirosanote:20180127174725p:plain

 

LDAP管理者アカウントのパスワードを入力します。 adminはデフォルトの管理者アカウントの名前です。

f:id:hirosanote:20180127180028p:plain

 

管理者パスワードを再度入力します。

f:id:hirosanote:20180127180209p:plain

 

LDAPの為のバックエンド形式 HDB を選択します。

f:id:hirosanote:20180127180540p:plain

 

slapdがパージされたときにデータベースを削除するかどうかを選択します。 No を選択します。

f:id:hirosanote:20180127180820p:plain

 

LDAPに古いデータがある場合は、データベースを作成する前にデータベースを移動することを検討することができます。

f:id:hirosanote:20180127181742p:plain

 

LDAPv2プロトコルを許可または禁止するオプションがあります。

f:id:hirosanote:20180127182341p:plain

 

再構成が完了すると、以下のような出力が得られます。

f:id:hirosanote:20180127182625p:plain

 

LDAPを確認します。

sudo netstat -antup | grep -i 389

f:id:hirosanote:20180127183013p:plain

 

LDAPベースDNの設定:

ドメインのbase.ldifファイルを生成します。

sudo vi base.ldif

 

dn: ou=People,dc=ldtest,dc=local
objectClass: organizationalUnit
ou: People

   <- 1行空白にします

dn: ou=Group,dc=ldtest,dc=local
objectClass: organizationalUnit
ou: Group

 

 

ディレクトリ構造を構築します。

ldapadd -x -W -D "cn=admin,dc=ldtest,dc=local" -f base.ldif

 ldapaddコマンドは、admin(LDAP rootユーザー)のパスワードを要求します。

 出力:

f:id:hirosanote:20180127194844p:plain

 

LDAPアカウントの追加:

新しいユーザー "ldapuser"のLDIF(LDAP Data Interchange Format)ファイルを作成します。

sudo vi ldapuser.ldif

 

dn: uid=ldapuser,ou=People,dc=ldtest,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldapuser
uid: ldapuser
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/ldapuser
loginShell: /bin/bash
gecos: Test LdapUser
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

 

ldapaddコマンドを使用して、OpenLDAPディレクトリに新しいユーザー "ldapuser"を作成します。

ldapadd -x -W -D "cn=admin,dc=ldtest,dc=local" -f ldapuser.ldif

出力:

f:id:hirosanote:20180127195627p:plain

 

ユーザーにパスワードを設定します。

ldappasswd -s password123 -W -D "cn=admin,dc=ldtest,dc=local" -x "uid=ldapuser,ou=People,dc=ldtest,dc=local"

-s ユーザーのパスワードを指定する

-x パスワードが変更されたユーザ名

-D LDAPサーバーを認証するための識別名

 

LDAPエントリを確認します。

ldapsearch -x cn=ldapuser -b dc=ldtest,dc=local

出力:

f:id:hirosanote:20180127200429p:plain

 

オプション

LDAPからエントリーを削除する場合は、以下を実行します。

ldapdelete -W -D "cn=admin,dc=ldtest,dc=local" "uid=ldapuser,ou=People,dc=ldtest,dc=local"

 

LDAPロギングの有効化:

LDAPイベントをログファイル/var/log/ldap.logに送信します。

sudo vi /etc/rsyslog.d/50-default.conf

以下をファイルに追加します。

local4.* /var/log/ldap.log

 

syslogサービスを再起動します。

sudo service rsyslog restart

 

 

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

www.itzgeek.com

 

LDAP clientをUbuntu16.04に構築します。LDAP Serverを構築したマシンとは別のマシン(client.ldtest.local / 192.168.0.60)にインストールします。

 

LDAPクライアントに必要なパッケージをインストールします。

sudo apt-get update

sudo apt-get -y install libnss-ldap libpam-ldap ldap-utils nscd

インストール中に、インストーラパッケージはさまざまな質問をします。 環境に応じて値を入力します。

 

最初の画面で、LDAPサーバーの詳細を入力します。 このガイドでは、LDAPサーバーのIPアドレスを192.168.0.50としましたので、ldapi:///を削除し、ldap://192.168.0.50を設定します。

f:id:hirosanote:20180127205822p:plain

 

LDAP検索ベースのDN(ドメイン名)を入力します。 このガイドでは、dc=ldtest,dc=localです。

f:id:hirosanote:20180127210141p:plain

 

使用するLDAPバージョンを選択します。 LDAPサーバーがこのバージョンをサポートする必要があります。 このガイドでは、LDAPサーバーはv3プロトコルを使用します。

f:id:hirosanote:20180127210348p:plain

 

LDAP管理アカウントをローカルルートとして機能させるかどうがを選択します。このガイドでは、LDAP管理者をローカルマシンのルートにします。

f:id:hirosanote:20180127210714p:plain

 

以下は、Noを選択します。

f:id:hirosanote:20180127210952p:plain

 

LDAP管理アカウントの詳細を入力します。

cn=admin,dc=ldtest,dc=local 

f:id:hirosanote:20180127211235p:plain

 

LDAP管理アカウントのパスワードを入力します。

f:id:hirosanote:20180127211350p:plain

 

 認証の設定:

インストーラは、前のセクションで与えられた入力に基づいて、ほとんどの設定を行います。 しかし、LDAP認証が機能するためにはまだいくつかの変更が必要です。

 

LDAPで動作するようにnsswitch.confを設定します。

sudo vi /etc/nsswitch.conf

以下のように、以下の行を更新します。

passwd: compat ldap
group: compat ldap
shadow: compat ldap

f:id:hirosanote:20180127215339p:plain

 

 オプション:ユーザーのホームディレクトリを自動的に作成する場合は、次のようにします。

sudo vi /etc/pam.d/common-session

 以下を追加します。

session required pam_mkhomedir.so skel=/etc/skel umask=077

 

 nscdサービスを再起動します。

 sudo service nscd restart

 

LDAPログインの確認:

getentコマンドを使用して、LDAPサーバーからLDAPエントリを取得します。

getent passwd ldapuser

出力:

f:id:hirosanote:20180127220015p:plain

 

LDAPを確認するには、クライアントマシンのLDAPユーザー "ldapuser"を使用してログインします。

f:id:hirosanote:20180127220215p:plain

f:id:hirosanote:20180127220304p:plain

f:id:hirosanote:20180127220414p:plain

 

以上で、終了です。