サーバー管理の困った!を○○で解決 LDAPを使ったユーザー管理編 2/2

2015/09/08 技術系 投稿者:

CentOS7でOpenLDAPを使ってみよう!

第二回目となる今回は、OpenLDAPの導入から基本設定について詳しく説明します。

今回用いるサーバは、フリーソフトのOpenLDAPが利用できるCentOS7 です。

OpenLDAPの導入についての解説を行う前に改めてLDAPを使うことのメリット(目的)についての説明をします。

第一回目から繰り返しになりますが、LDAPを使うことでユーザ情報の一元管理が可能 になります。
例えば、A、B、C、Dという4台のサーバがある場合に、通常であればユーザ情報はそれぞれのサーバに持たせる必要があります。

そして、それぞれのサーバに重複して登録済みのあるユーザのパスワードを変更する場合、一台一台にログインしてパスワードを変更しなくてはなりません。

ここにLDAPサーバを導入することで、ユーザ情報はLDAPサーバだけに持たせて、A、B、C、Dの各サーバ側にはユーザ情報を持たせないで運用することが可能になります。
具体的には、A、B、C、Dの各サーバにログインする際のユーザ認証をLDAPサーバに問い合わせをする(任せる)ようにすることで、一元管理を実現させます。

ユーザ、パスワード情報をLDAPサーバで一元管理できれば,新規ユーザが増えた場合でも,LDAPサーバ1台にアカウントを作成するだけで全てのサーバにログインできるようになります。
また、一時的に無効にしたいユーザもLDAPサーバ側でフラグをつけてしまえば全てのサーバへログインできなくなります。

例として4台のサーバとしましたが、何十台、何百台といった大規模システムに活用することも可能ですし、また多数のアプリケーションをサポートできる豊富な機能により使い道は様々です。
今回は例としてLDAPでユーザ管理を出来るようにするところまでの説明を行います。

パッケージのインストール

CentOSにおけるLDAPサーバの機能は、openldap-serversパッケージをインストールすることで使用可能になります。
openldap-serversをインストールするにはopenldapが必要です。
そしてLDAPサーバの基本設定を行うには、LDAP関連コマンドも必要ですので、openldap-clientsもインストールする必要があります。
さらに、libtool-ltdlはopen-clientsの依存パッケージの為、yumを使って依存パッケージも含めてインストールしてください。

現状の確認
# yum list installed 'openldap*'

インストール済みパッケージ
openldap.x86_64                                             2.4.39-3.el7
OpenLDAPサーバとクライアントのインストール
# yum install 'openldap-servers' 'openldap-clients'


インストール中:
 openldap-clients                       x86_64                 2.4.39-6.el7                        base                 184 k
 openldap-servers                       x86_64                 2.4.39-6.el7                        base                 2.1 M
依存性関連でのインストールをします:
 libtool-ltdl                           x86_64                 2.4.2-20.el7                        base                  49 k
 以下、省略

インストール:
  openldap-clients.x86_64 0:2.4.39-6.el7                        openldap-servers.x86_64 0:2.4.39-6.el7

依存性関連をインストールしました:
  libtool-ltdl.x86_64 0:2.4.2-20.el7            perl.x86_64 4:5.16.3-285.el7           perl-Carp.noarch 0:1.26-244.el7
  perl-Encode.x86_64 0:2.51-7.el7               perl-Exporter.noarch 0:5.68-3.el7      perl-File-Path.noarch 0:2.09-2.el7
  perl-File-Temp.noarch 0:0.23.01-3.el7         perl-Filter.x86_64 0:1.49-3.el7        perl-Getopt-Long.noarch 0:2.40-2.el7
  perl-HTTP-Tiny.noarch 0:0.033-3.el7           perl-PathTools.x86_64 0:3.40-5.el7     perl-Pod-Escapes.noarch 1:1.04-285.el7
  perl-Pod-Perldoc.noarch 0:3.20-4.el7          perl-Pod-Simple.noarch 1:3.28-4.el7    perl-Pod-Usage.noarch 0:1.63-3.el7
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7  perl-Socket.x86_64 0:2.010-3.el7       perl-Storable.x86_64 0:2.45-3.el7
  perl-Text-ParseWords.noarch 0:3.29-4.el7      perl-Time-HiRes.x86_64 4:1.9725-3.el7  perl-Time-Local.noarch 0:1.2300-2.el7
  perl-constant.noarch 0:1.27-2.el7             perl-libs.x86_64 4:5.16.3-285.el7      perl-macros.x86_64 4:5.16.3-285.el7
  perl-parent.noarch 1:0.225-244.el7            perl-podlators.noarch 0:2.5.1-3.el7    perl-threads.x86_64 0:1.87-4.el7
  perl-threads-shared.x86_64 0:1.43-6.el7

依存性を更新しました:
  openldap.x86_64 0:2.4.39-6.el7

完了しました!

ldapサービス

Unit name slapd.service
TCP Wrapper slapd
Daemon program /usr/sbin/slapd
Configuration /etc/openldap/slapd.conf,/etc/openldap/slapd.d/
Document files /usr/share/doc/openldap-servers-2.4.39/
Pid file /var/run/openldap/slapd.pid

パケットフィルタリングの設定

CentOS7で firewall-cmd を有効にしている場合には、下記のコマンドを実行して通信を許可してください。

# firewall-cmd --permanent --add-service=ldap     ldapを許可
success

# firewall-cmd --reload                設定を反映
success

アクセス制御の設定

CentOSでは、LDAPサーバでTCP Wrapperを使用したIPアドレスベースのアクセス制御を行うことができるようになっています。したがって、接続するクライアントに合わせて設定を行う必要があります。

# vi /etc/hosts.allow
slapd:192.168.0.

LDAPサーバの基本設定とサービスの起動

データベースチューニング設定

slapdがデータを保管するデータベースファイルは、/var/lib/ldapに作成されます。slapdを起動する前に、このディレクトリにデータベースチューニングのための設定ファイルを配置しておきます。
サンプルの設定ファイルが用意されていますので、そのファイルをそのままコピーします。

DB_CONFIGファイルのコピー
# cp -a /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

サービスの起動

データベースのチューニングの設定が出来たら、サービスを起動することができます。

# systemctl start slapd.service

# systemctl status slapd.service


slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled)
   Active: active (running) since 金 2015-09-04 14:45:07 JST; 3s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
  Process: 2921 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
  Process: 2893 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
 Main PID: 2923 (slapd)
   CGroup: /system.slice/slapd.service
           mq2923 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

サービスの自動起動

インストールした時点では、セキュリティを考慮して自動的に起動されるようにはなっていません。

# systemctl enable slapd.service

LDAPデータベースの設定

サービスを起動しましたが、実際にLDAPサーバを利用するには、次のような作業を行う必要があります。

LDAPサーバ利用のための準備

  • LDAPデータベースの基本設定
  • LDAPスキーマの登録
  • LDAPエントリの登録

これらの作業は、すべてldapadd、ldapmodify、ldapdeleteなどのLDAPクライアントユーティリティプログラムを使って行います。
LDAPサーバを利用して何のデータを登録・管理するかによって設定内容に若干違いがでますが、基本的な作業方法は共通の手法で行うことができます。

LDAPデータベースの基本設定

CentOSでは、openldap-serversパッケージをインストールすると、標準的なLDAPデータベースの設定がすでに行われています。
しかし、次の3つの情報は、利用者の環境に合わせて修正する必要があります。

  • LDAPディレクトリツリーのDN(olcSuffix)
  • LDAPデータベースの管理用のアクセス権である特権DN(olcRootDN)
  • 特権DNのパスワード(olcRootPW)

LDAPデータベースツリーのDNは、いわばデータベースの名前に相当するものです。ユーザデータを登録するデータベースには、自由に名前を設定することができます。
一般的にはその組織のドメイン名などを元に作成しますので、本記事ではnedia.ne.jpというドメイン名を元に作成したdc=nedia,dc=ne,dc=jpという名称にして解説します。

特権DNは、Linuxシステムのrootユーザに相当するもので、そのLDAPデータベースの全てのデータにアクセスすることのできる権限を持ちます。
本記事では、特権DNをcn=Manager,dc=nedia,dc=ne,dc=jpとして解説します。

データ用ディレクトリの基本設定の確認

まずは、データ用ディレクトリの基本設定がどうなっているかを確認します。設定の確認は、次の例のようにldapserchコマントで行います。

ldapseachによる基本設定の確認
# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap                           ①
olcSuffix: dc=my-domain,dc=com                          ②
olcRootDN: cn=Manager,dc=my-domain,dc=com              	③
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
  • ①は、実際のデータが格納されるディレクトリです。
  • ②のolcSuffixがLDAPデータベースツリーのDNです。
  • ③のolcRooDNがLDAP管理用のアクセス権である特権DNの設定です。
  • olcRootPWは設定されていないことがわかります。 ※

※例) 設定されている場合
   olcRootPW: xxxxxxxxxxxxx
と表示されます。

ldapseachの引数の「-Y EXTERNAL」は、認証方式の指定です。
また、-Hオプションは、接続するLDAPサーバの指定ですが、ここでは特殊な「ldapi:///」を指定しています。
これは、UNIXドメインソケットを使ってローカルなサーバーに設定を行うことを指定しています。
また、-dオプションは検索場所の指定です。ここでは、olcDatabase={2}hdb,cn=configを指定しています。
これはユーザデータを格納するための設定データが格納されているエントリです。

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

LDAPエントリのデータ修正は、ldapmodifyコマンドで行います。設定を行うためには次のようなLDIFファイルを作成します。

データ用ディレクトリの初期設定(hdb-init.ldif)
# vi hdb-init.ldif

dn: olcDatabase={2}hdb,cn=config            ①
changetype: modify                   ②
replace: olcRootDN                   ③
olcRootDN: cn=Manager,dc=nedia,dc=ne,dc=jp              ④
-
replace: olcSuffix                                      ⑤
olcSuffix: dc=nedia,dc=ne,dc=jp                         ⑥
-
add: olcRootPW                                          ⑦
olcRootPW: {SSHA}ofdjXMHz4fv+T9xaoSslDl7HYDLoQMe7       ⑧
  • ①設定を行うDNです。先ほどldapsearchの-bオプションで指定したのと同じ、データベース設定設定が格納されているDNを指定します。
  • ②このLDIFファイルでは修正(modify)を行うことを宣言しています。
  • ③olcRootDNを書き換えることを指定しています。
  • ④olcRootDNの値を指定しています。
  • ⑤olcSuffixを書き換えることを指定しています。
  • ⑥olcSuffixの値をしています。
  • ⑦olcRootPWの属性を追加することを指定しています。
  • ⑧olcRootPWの値を指定しています。

③と④、⑤と⑥、⑦と⑧は、それぞれ対になっています。
olcSuffix、olcRootDNは、すでに登録されているデータがあるため、属性値の修正となります。
olcRootPWは値が登録されていませんので、属性値の追加(add)を行います。
属性値には、次のようにslappasswdで作成したパスワードを指定します。

slappasswdコマンドによるパスワードの生成方法
# slappasswd

New password: xxxxxx 暗号化するパスワード入力
Re-enter new password: xxxxxx パスワードの再入力
{SSHA}ofdjXMHz4fv+T9xaoSslDl7HYDLoQMe7

データができたら、次のようにldapmodifyコマンドを使ってサーバへ設定を行います。

# ldapmodify -Y EXTERNAL -H ldapi:/// -f hdb-init.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

ちなみに間違った記述があった場合には、下記のようなメッセージが出て反映が行われません。
メッセージに出るヒントを元に記述内容を見直してください。

ldap_modify: Invalid DN syntax (34)
        additional info: invalid DN

ldapmodifyコマンドの引数の-fオプションでは、先ほど作成したLDIFファイルを指定します。

先ほどのldapseachによる基本設定の確認コマンドで変更されているか確認します。

# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcRootDN: cn=Manager,dc=nedia,dc=ne,dc=jp
olcSuffix: dc=nedia,dc=ne,dc=jp
olcRootPW: {SSHA}ofdjXMHz4fv+T9xaoSslDl7HYDLoQMe7

LDAPスキーマの登録

次に、このLDAPサーバで使用するスキーマを登録します。スキーマは、LDAPデータベースのエントリに登録することができるデータの種類や型を定義するものです。
LDAPでは、スキーマを柔軟に定義することができ、様々なアプリケーションのデータを格納することができます。

openldapパッケージをインストールすると、標準スキーマの登録に必要なldifファイルが/etc/openldap/schma/に用意されます。
CentOS標準では、coreスキーマだけが利用できるように設定されています。それ以外のスキーマを使いたい場合にいは、必要に応じて設定を追加する必要があります。

なお、定義されていないオブジェクトクラスは利用出来ません。今回の目的であるユーザ管理を行う上で必要となる オブジェクトクラス「account」 と 「posixAccount」は、 それぞれ、cosineスキーマ と nisスキーマ
で定義されていますので、この二つのスキーマを登録して利用出来るようにします。

スキーマの登録は、/etc/openldap/schema/に用意されているldifファイルを使い、ldapaddコマンドで行います。
下記は、スキーマ登録の例です。

cosine、nisスキーマの登録
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"

LDAPエントリの登録

LDAPサーバの設定ができたら、次にLDAPサーバで管理するデータを登録します。ここではLinuxアカウントの管理を行うのに最低限必要な、LDAPデータの登録方法について解説します。
Linuxアカウントの管理を行うためにLDAPサーバを利用する場合、一般的に最初に登録すべきデータは次のようなものです。

  • 基本となる組織、ユーザアカウントを管理する組織、グループを管理する組織の登録
  • 初期グループアカウントの登録
  • 初期ユーザアカウントの登録

基本となる組織・ユーザアカウントを管理する組織・グループを管理する組織の登録

ユーザやグループの情報を登録する前に、その受け皿となる基本の組織、ユーザアカウントを管理するための組織、グループを管理するための組織を登録する必要があります。
登録するためには、次のようなLDIFファイル(init.ldif)を用意します。

LDAP初期エントリLDIFファイル(init.ldif)
# vi init.ldif

dn: dc=nedia,dc=ne,dc=jp                      ①
objectClass: dcObject
objectClass: organization
o: myorganization
dc: nedia

dn: cn=Manager,dc=nedia,dc=ne,dc=jp           ②
objectClass: organizationalRole
cn: Manager

dn: ou=People,dc=nedia,dc=ne,dc=jp            ③
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=nedia,dc=ne,dc=jp             ④
objectClass: organizationalUnit
ou: Group
  • ①最も基本となるnedia組織のエントリです。このエントリの下位にすべてのエントリを作成します。
  • ②特権DN(cn=Manager,dc=nedia,dc=ne,dc=jp)のエントリです。特権DNのobjectClassには、必ずorganizationalRoleを指定します。
  • ③ユーザを管理するための組織単位(ou=People,dc=nedia,dc=ne,dc=jp)です。/etc/passwdに相当するものです。
  • ④グループを管理するための組織単位(ou=Group,dc=nedia,dc=ne,dc=jp)です。/etc/gruopに相当するものです。

このファイルを、次のようにldapaddコマンドで登録します。

LDAP初期エントリ登録
# ldapadd -x -D "cn=Manager,dc=nedia,dc=ne,dc=jp" -W -f init.ldif
特権DNのパスワード

Enter LDAP Password:
adding new entry "dc=nedia,dc=ne,dc=jp"

adding new entry "cn=Manager,dc=nedia,dc=ne,dc=jp"

adding new entry "ou=People,dc=nedia,dc=ne,dc=jp"

adding new entry "ou=Group,dc=nedia,dc=ne,dc=jp"

ldapaddの-Dオプションで指定しているのは、先ほどolcRootDNに登録したデータベース特権DNです。-fオプションで、先ほど作成したファイルを指定しています。

LDAP初期エントリ登録内容の確認

# ldapsearch -x -LLL -b "dc=nedia,dc=ne,dc=jp" "(objectClass=*)"

dn: dc=nedia,dc=ne,dc=jp
objectClass: dcObject
objectClass: organization
o: myorganization
dc: nedia

dn: cn=Manager,dc=nedia,dc=ne,dc=jp
objectClass: organizationalRole
cn: Manager

dn: ou=People,dc=nedia,dc=ne,dc=jp
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=nedia,dc=ne,dc=jp
objectClass: organizationalUnit
ou: Group

グループアカウントの登録

/etc/groupに設定されているグループアカウントと同等のエントリを登録します。
グループアカウントはposixGroupオブジェクトクラスを用いて設定します。
posixGroupオブジェクトクラスは、先ほど登録したnisスキーマで定義されているオブジェクトクラスです。

posiGroupオブジェクトクラス(nisスキーマ)

属性タイプ 説明
cn 一般名称 [Organization Unit]
gidNubber グループ番号(必須項目)
memberUid 所属メンバーのユーザ番号
description 説明

以下にsystem01,system02というグループを登録する場合の例を示しますので、この例にならって、必要なグループを指定してください。

グループアカウントLDIFファイル(group.ldif)
# vi group.ldif
dn: cn=system01,ou=Group,dc=nedia,dc=ne,dc=jp
objectClass: posixGroup
objectClass: top
cn: system01
gidNumber: 1001

dn: cn=system02,ou=Group,dc=nedia,dc=ne,dc=jp
objectClass: posixGroup
objectClass: top
cn: system02
gidNumber: 1002

このファイルを使って、次の例のようにエントリを登録します。

グループアカウントのエントリ登録
# ldapadd -x -D "cn=Manager,dc=nedia,dc=ne,dc=jp" -W -f group.ldif

ユーザアカウントの登録

/etc/passwdに設定されているユーザアカウントと、同等のエントリを登録します。
ユーザアカウントはposixAccountオブジェクトクラスを用いて設定します。

posixAccountオブジェクトクラス

属性タイプ 説明
cn 一般名称 [Common Name](必須項目)
uid ユーザ名(必須項目)
uidNumber ユーザ番号(必須項目)
homeDirectory ホームディレクトリ(必須項目)
userPassword パスワード
loginShell ログインシェル
gecos フルネームなど
description 説明

以下に、user01、user02というユーザを登録する場合の例を示しますので、この例にならって、必要なユーザをしてください。

ユーザアカウントLDIFファイル(user.ldif)
# vi user.ldif

dn: uid=user01,ou=People,dc=nedia,dc=ne,dc=jp
uid: user01
cn: User Tarou
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: {SSHA}id/UScQEgD0mm7ECT872kAr4W7amY3RK
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/user01

dn: uid=user02,ou=People,dc=nedia,dc=ne,dc=jp
uid: user02
cn: User Jirou
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: {SSHA}XItL0eeCd1EnMI+tuDaL3N3H0zbd0WrN
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 1002
homeDirectory: /home/user02

オブジェクトクラスtopは基本となるオブジェクトクラスで、objectClass属性が必須項目となっています。
オブジェクトクラスaccountはコンピュータアカウントを表すもので、uidが必須項目となっています。

パスワードはslappasswdコマンドで作成します。
slappasswd
user01
{SSHA}id/UScQEgD0mm7ECT872kAr4W7amY3RK

user02
{SSHA}XItL0eeCd1EnMI+tuDaL3N3H0zbd0WrN

このファイルを使って、次の例のようにエントリを登録します。

ユーザアカウントのエントリ登録
# ldapadd -x -D "cn=Manager,dc=nedia,dc=ne,dc=jp" -W -f user.ldif

adding new entry "uid=user01,ou=People,dc=nedia,dc=ne,dc=jp"

adding new entry "uid=user02,ou=People,dc=nedia,dc=ne,dc=jp"

以上の作業でLDAPへのユーザ登録作業は完了です。

LDAPに登録したユーザを利用可能にする

LDAPユーザでログインできるよう認証方法の設定を変更します。
はじめにLDAP認証させるためのモジュールがインストールされていなければそれをインストールする必要があります。

# yum install nscd nss-pam-ldapd

# cp -a /etc/nslcd.conf /etc/nslcd.conf_org
# vi /etc/nslcd.conf

base dc=example,dc=com
→base dc=dc=nedia,dc=ne,dc=jp

Linuxアカウントのパスワード、グループ情報の参照にLDAPディレクトリサービスを使用するようにネームサービススイッチの設定変更を行います。
設定ファイルは/etc/nsswitch.confで以下のように編集を行います。

# cp -a /etc/nsswitch.conf /etc/nsswitch.conf_org
# vi /etc/nsswitch.conf

passwd:    files sss ldap
shadow:    files sss ldap
group:     files sss ldap

Linux上に登録されていないアカウントでLDAP上に登録されているアカウントは認証は可能ですがホームディレクトリが存在しない状態です。
ログインできなくはないですがWarningが出るので、これを回避するためログインすると自動的にホームディレクトリが作成されるよう設定を変更します。

# authconfig --enablemkhomedir --update
nslcd を起動中:                                            [  OK  ]
nscd を起動中:                                             [  OK  ]

この設定後、LDAPに登録されているアカウントでSSHログインなどをすると自動的にホームディレクトリが作成されます。

LDAPユーザにログインが出来るか確認します。
# su - user01
最終ログイン: 2015/09/04 (金) 16:57:28 JST日時 pts/0

$ pwd
/home/user01

最後に、idコマンドを使ってLDAPに登録したユーザのユーザIDやグループIDを確認してみます。

# id user01
uid=1001(user01) gid=1001(system01) groups=1001(system01)


# id user02
uid=1002(user02) gid=1002(system02) groups=1002(system02)

ここまで出来れば作成したユーザでFTP接続なども出来るようになっているはずです。

クライアントサーバの設定

LDAPサーバ側の設定は完了しましたので、最後にクライアントサーバ側の設定方法について説明します。本記事の冒頭でA、B、C、Dの各サーバと表現した方のサーバとなります。

OpenLDAP クライアントをインストールしす。

# yum -y install openldap-clients nss-pam-ldapd

Linuxアカウントのパスワード、グループ情報の参照にLDAPディレクトリサービスを使用するようにネームサービススイッチの設定変更を行います。
設定ファイルは/etc/nsswitch.confで以下のように編集を行います。

# cp -a /etc/nsswitch.conf /etc/nsswitch.conf_org
# vi /etc/nsswitch.conf

passwd:    files sss ldap
shadow:    files sss ldap
group:     files sss ldap

LDAP有効化、LDAP認証有効化、LDAPサーバ設定、LDAPベースDN設定、ホームディレクトリ自動生成設定を行います。

# authconfig --enableldap --enableldapauth --ldapserver=192.168.0.100 --ldapbasedn="dc=nedia,dc=ne,dc=jp" --enablemkhomedir --update

 ※--ldapserver=192.168.0.100 には、LDAPサーバのIPアドレスもしくは、URL(例:--ldapserver="ldap://192.168.0.100/")を入れてください。

nslcd を起動中:                                            [  OK  ]
nscd を起動中:                                             [  OK  ]

LDAPに登録したユーザが利用できるか確認します。

# su - user01

$ pwd
/home/user01

最後に、idコマンドを使ってLDAPに登録したユーザのユーザIDやグループIDを確認してみます。

# id user01
uid=1001(user01) gid=1001(system01) groups=1001(system01)


# id user02
uid=1002(user02) gid=1002(system02) groups=1002(system02)

LDAPで行うユーザ管理の説明は以上となります。
いかがでしたでしょうか?

私が実際にLDAPサーバを構築してみてわかりにくいと感じた部分は、一番最初のサーバ管理者パスワードを設定するところと、スキーマの追加の部分です。逆に言うとこれさえできてしまえば他の部分は特に難しいと感じた場所はありませんでした。

ユーザ管理の一元管理は企業のセキュリティ事故を防ぐ意味でもとても重要です。
削除したと思っていたユーザアカウントが実は残っていて、外部から重要機密を持ち出させてしまった。
ということのないようにユーザ管理はLDAPで一元管理するのがオススメです。

それでは。

カレンダー

    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
   1234
567891011
12131415161718
19202122232425
26272829   
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
1234567
891011121314
15161718192021
22232425262728
       
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
     12
3456789
10111213141516
17181920212223
24252627282930
31      
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
     12
3456789
10111213141516
17181920212223
242526272829 
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
    123
45678910
11121314151617
18192021222324
25262728   
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
   1234
567891011
12131415161718
19202122232425
262728    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
1234567
891011121314
15161718192021
22232425262728
29      
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
U・Iターン転職しませんか?
群馬データセンター
群馬の法人ITサポートサービス Wide Net[ワイドネット]
Wide Netのクラウドバックアップ
クラウド型ファイル共有サービスRushDrive
ワイドオフィス
ネディアのSDGsへの取り組み
健康経営優良法人
IT-commons(ITコモンズ)