Linux-admin-install-and-configure-open-ldap
Open LDAPのインストールと構成
*Lightweight Directory Access Protocol* と呼ばれるLDAPは、ディレクトリから認識されるエンタープライズ内のX.500サービスコンテナーにアクセスするために使用されるプロトコルです。 Windows Server Administrationに精通している人は、LDAPが本質的にActive Directoryに非常に似ていると考えることができます。 これは、WindowsワークステーションをOpenLDAP CentOSエンタープライズに絡めるという広く使用されている概念です。 もう1つのスペクトルでは、CentOS Linuxワークステーションはリソースを共有し、Windowsドメインの基本機能に参加できます。
LDAPをCentOSにDirectory Server Agent、Directory System Agent、またはDSA(これらの頭字語はすべて同一)として展開することは、NDSでディレクトリツリー構造を使用する古いNovell Netwareインストールに似ています。
LDAPの簡単な歴史
LDAPは基本的に、エンタープライズリソースを使用してX.500ディレクトリにアクセスする効率的な方法として作成されました。 X.500とLDAPは両方とも同じ特性を共有しているため、LDAPクライアントはいくつかのヘルパーでX.500ディレクトリにアクセスできます。 LDAPには、 slapd という独自のディレクトリサーバーもあります。 _LDAP_と_DAP_の主な違いは、軽量バージョンはTCP上で動作するように設計されていることです。
_DAP_は完全なOSIモデルを使用します。 今日のネットワークにおけるインターネット、TCP/IP、およびイーサネットの出現により、特定のレガシーコンピューティングモデル以外のDAPとネイティブX.500エンタープライズディレクトリの両方を使用したディレクトリサービスの移植に遭遇することはほとんどありません。
CentOS Linuxのopenldapで使用される主なコンポーネントは次のとおりです-
| openldap | LDAP support libraries |
|---|---|
| openldap-server | LDAP server |
| openldap-clients | LDAP client utlities |
| openldap-devel | Development libraries for OpenLDAP |
| compay-openldap | OpenLDAP shared libraries |
| slapd | Directory server daemon of OpenLDAP |
| slurpd | Used for LDAP replication across an enterprise domain |
注-エンタープライズに名前を付けるときは、 。local TLDを使用することをお勧めします。 .net_または.com_を使用すると、オンラインドメインインフラストラクチャと内部ドメインインフラストラクチャを分離するときに問題が発生する可能性があります。 外部操作と内部操作の両方に_acme.com_を使用している企業の追加作業を想像してください。 したがって、_acme.com_または_acme.net_と呼ばれるインターネットリソースを用意するのが賢明です。 次に、ローカルネットワーキングエンタープライズリソースは_acme.local_として示されます。 これにはDNSレコードの構成が必要になりますが、単純さ、雄弁さ、セキュリティが犠牲になります。
CentOSにOpen LDAPをインストールする
_YUM_からopenldap、openldap-servers、openldap-clients、migrationstoolsをインストールします。
[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
Loaded plugins: fastestmirror, langpacks
updates
| 3.4 kB 00:00:00
updates/7/x86_64/primary_db
| 2.2 MB 00:00:05
Determining fastest mirrors
(1/2): extras/7/x86_64/primary_db
| 121 kB 00:00:01
(2/2): base/7/x86_64/primary_db
| 5.6 MB 00:00:16
Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
--> Finished Dependency Resolution
base/7/x86_64/group_gz
| 155 kB 00:00:00
Dependencies Resolved
===============================================================================
===============================================================================
Package Arch
Version Repository Size
===============================================================================
===============================================================================
Installing:
openldap-clients x86_64
2.4.40-13.el7 base 188 k
openldap-servers x86_64
2.4.40-13.el7 base 2.1 M
Transaction Summary
===============================================================================
===============================================================================
Install 2 Packages
Total download size: 2.3 M
Installed size: 5.3 M
Downloading packages:
Installed:
openldap-clients.x86_64 0:2.4.40-13.el7
openldap-servers.x86_64 0:2.4.40-13.el7
Complete!
[root@localhost]#
さて、_slapd_サービスを開始して有効にしましょう-
[root@centos]# systemctl start slapd
[root@centos]# systemctl enable slapd
この時点で、openldap_構造が/etc/openldap_にあることを確認しましょう。
root@localhost]# ls/etc/openldap/
certs check_password.conf ldap.conf schema slapd.d
[root@localhost]#
次に、slapdサービスが実行されていることを確認します。
root@centos]# netstat -antup | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd
tcp6 0 0 :::389 :::* LISTEN 1641/slapd
[root@centos]#
次に、_Open LDAP_インストールを設定しましょう。
システム_ldap_ユーザーが作成されていることを確認してください。
[root@localhost]# id ldap
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#
LDAP資格情報を生成します。
[root@localhost]# slappasswd
New password:
Re-enter new password:
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10
[root@localhost]#
slappasswdからの出力を保存する必要があります
Open LDAPを構成する
- ステップ1 *-ドメインのLDAPを構成し、管理ユーザーを追加します。
最初に、openLDAP環境をセットアップします。 以下は、_ldapmodify_コマンドで使用するテンプレートです。
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <output from slap
ldapmodifyコマンドを使用して、/etc/openldap/slapd.d/cn = config/olcDatabase = \ {1} monitor.ldifを変更します。
[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:///-f/home/rdc/Documents/db.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"
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
[root@localhost cn=config]#
変更されたLDAP構成を確認しましょう。
root@linux1 ~]# vi/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
[root@centos]# cat/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory:/var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k =
entryCSN: 20170215204423.726622Z#000000#000#000000
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z
[root@centos]#
ご覧のとおり、LDAPエンタープライズの変更は成功しました。
次に、OpenLDAPの自己署名SSL証明書を作成します。 これにより、エンタープライズサーバーとクライアント間の通信が保護されます。
- ステップ2 *-OpenLDAPの自己署名証明書を作成します。
_openssl_を使用して、自己署名SSL証明書を作成します。 OpenLDAPとの通信を保護する手順については、次の章「opensslでLDAP SSL証明書を作成する」に進んでください。 その後、SSL証明書が設定されると、OpenLDAPエンタープライズ設定が完了します。
- ステップ3 *-証明書で安全な通信を使用するようにOpenLDAPを設定します。
次の情報を使用して_vim_で_certs.ldif_ファイルを作成します-
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile:/etc/openldap/certs/yourGeneratedCertFile.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile:/etc/openldap/certs/youGeneratedKeyFile.pem
次に、再度_ldapmodify_コマンドを使用して、変更をOpenLDAP構成にマージします。
[root@centos rdc]# ldapmodify -Y EXTERNAL -H ldapi:///-f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@centos]#
最後に、OpenLADP構成をテストしましょう。
[root@centos]# slaptest -u
config file testing succeeded
[root@centos]#
- ステップ4 *-slapdデータベースをセットアップします。
cp/usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG &&
chown ldap:ldap/var/lib/ldap/*
OpenLDAPスキーマを更新します。
cosineおよびnis LDAPスキーマを追加します。
ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/inetorgperson.ldif
最後に、エンタープライズスキーマを作成し、現在のOpenLDAP設定に追加します。
以下は、vmnet._local_と呼ばれるドメインと_ldapadm_と呼ばれるLDAP管理者に対するものです。
dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People
dn: ou = Group,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: Group
最後に、これを現在のOpenLDAPスキーマにインポートします。
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"
adding new entry "cn=ldapadm ,dc=vmnet,dc=local"
adding new entry "ou=People,dc=vmnet,dc=local"
adding new entry "ou=Group,dc=vmnet,dc=local"
[root@centos]#
- ステップ5 *-OpenLDAPエンタープライズユーザーを設定します。
_vim_またはお好みのテキストエディターを開き、次の形式をコピーします。 これは、「vmnet.local」LDAPドメインの「entacct」という名前のユーザーのセットアップです。
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory:/home/enyacct
loginShell:/bin/bash
gecos: Enterprise User Account 001
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
保存された上記のファイルをOpenLdapスキーマにインポートします。
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif
Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local"
[root@centos]#
ユーザーがLDAP Enterpriseにアクセスする前に、次のようにパスワードを割り当てる必要があります-
ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct
,ou=People,dc=vmnet,dc=local"
*-s* は、ユーザーのパスワードを指定します
*-x* は、更新されたパスワードが適用されるユーザー名です
*-D* は、LDAPスキーマに対して認証するための「識別名」です。
最後に、エンタープライズアカウントにログインする前に、_OpenLDAP_エントリを確認しましょう。
[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
# extended LDIF
#
# LDAPv3
# base <dc=vmnet,dc=local> with scope subtree
# filter: cn=entacct
# requesting: ALL
#
# entacct, People, vmnet.local
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory:/home/enyacct
loginShell:/bin/bash
gecos: Enterprise User Account 001
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
/etc/passwd_や/etc/groups_などをOpenLDAP認証に変換するには、移行ツールを使用する必要があります。 これらは_migrationtools_パッケージに含まれています。 次に、_/usr/share/migrationtools_にインストールします。
[root@centos openldap-servers]# ls -l/usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root 2652 Jun 9 2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root 2950 Jun 9 2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root 2946 Jun 9 2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root 3011 Jun 9 2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root 3006 Jun 9 2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root 3164 Jun 9 2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root 3146 Jun 9 2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root 5267 Jun 9 2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root 7468 Jun 9 2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root 3278 Jun 9 2014 migrate_automount.pl
-rwxr-xr-x. 1 root root 2608 Jun 9 2014 migrate_base.pl
- ステップ6 *-最後に、リクエストを処理できるように、slapdサービスへのアクセスを許可する必要があります。
firewall-cmd --permanent --add-service=ldap
firewall-cmd --reload
LDAPクライアントアクセスを構成する
LDAPクライアントアクセスを設定するには、クライアントにopenldap、open-ldapクライアント、およびnss_ldapのパッケージが必要です。
クライアントシステムのLDAP認証の構成は少し簡単です。
- ステップ1 *-依存パッケージのインストール-
# yum install -y openldap-clients nss-pam-ldapd
- ステップ2 *-_authconfig_を使用してLDAP認証を設定します。
authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update
- ステップ3 *-nslcdサービスを再起動します。
systemctl restart nslcd