openldap インストール

2021-06-18

概要

LDAP導入の目的は、サーバが追加時にユーザー設定とかhostsファイルの編集が面倒になってきたので、ユーザー認証と hostsファイルをLDAP認証に移行する

OPEN LDAP インストール (サーバ側に設定)

(1)openldap 関連のパッケージをインストール

# yum -y install openldap openldap-servers openldap-clients openldap-devel

(2)ディレクトリマネージャのパスワードを生成する

# slappasswd -h {MD5} -s ldap1234
New password:
Re-enter new password:

{MD5}qjYRCALao3lp+bMyUtVjaQ==

(3)slapd.confの設定

slapd.conf 設定ファイルをバックアップ

# cp -p /etc/openldap/slapd.conf /etc/openldap/slapd.conf.org

slapd.conf 設定ファイルを編集

# vi /etc/openldap/slapd.conf
access to attrs=userPassword
        by self write
        by dn="cn=Manager,dc=example,dc=jp" write
        by anonymous auth
        by * none

access to *
        by self write
        by dn="cn=Manager,dc=example,dc=jp" write
        by * read

suffix		"dc=example,dc=jp"
rootdn		"cn=Manager,dc=example,dc=jp"
rootpw		{MD5}qjYRCALao3lp+bMyUtVjaQ==

変更内容を確認

# diff /etc/openldap/slapd.conf /etc/openldap/slapd.conf.org 
81,91d80
< access to attrs=userPassword
<         by self write
<         by dn="cn=Manager,dc=example,dc=jp" write
<         by anonymous auth
<         by * none
< 
< access to *
<         by self write
<         by dn="cn=Manager,dc=example,dc=jp" write
<         by * read
< 
97,98c86,87
< suffix		"dc=example,dc=jp"
< rootdn		"cn=Manager,dc=example,dc=jp"
---
> suffix		"dc=my-domain,dc=com"
> rootdn		"cn=Manager,dc=my-domain,dc=com"
104d92
< rootpw		        {MD5}qjYRCALao3lp+bMyUtVjaQ==

(4)DB_CONFIGの設定

DB_CONFIG.example を /var/lib/ldap/DB_CONFIG にコピーする

# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

所有者権限を変更

# chown ldap:ldap /var/lib/ldap/*

(5)openldap 自動起動設定・起動

ldap を自動起動に設定

# chkconfig ldap on

自動起動が有効になっているか確認

# chkconfig ldap --list
ldap            0:off   1:off   2:on    3:on    4:on    5:on    6:off

ldap サービスを起動

# /etc/init.d/ldap start

MigrationTools を利用し、LDIFファイル作成 (サーバ側に設定)

(1)MigrationTools の導入

作業用ディレクトリを作成

# mkdir /var/tmp/ldap
# cd /var/tmp/ldap

MigrationTools.tgz をダウンロード

# wget http://www.padl.com/download/MigrationTools.tgz

ダウンロードしたファイルを解凍する

# tar xzvf MigrationTools.tgz

(2)MigrationTools の導入

スクリプトがあるディレクトリに移動する

# cd MigrationTools-47/

LDAP_BASEDN="dc=example,dc=jp" を環境変数に組み込む

# export LDAP_BASEDN="dc=example,dc=jp"
ユーザー情報のLDIF を作成
# ./migrate_passwd.pl /etc/passwd passwd.ldif
グループ情報のLDIF を作成
# ./migrate_group.pl /etc/group group.ldif
hosts情報のLDIF を作成
# ./migrate_hosts.pl /etc/hosts hosts.ldif

(3)LDIFファイルを作業ディレクトリに移動する

# ls -l |grep .ldif
# mv *.ldif /var/tmp/ldap
# ls -l /var/tmp/ldap
合計 52
drwxr-xr-x 3 1002 1000  4096 11月 14 17:35 MigrationTools-47
-rw-r--r-- 1 root root 21284  1月 25  2006 MigrationTools.tgz
-rw-r--r-- 1 root root  6346 11月 14 17:30 group.ldif
-rw-r--r-- 1 root root   862 11月 14 17:29 hosts.ldif
-rw-r--r-- 1 root root 11381 11月 14 17:29 passwd.ldif

(4)base.ldif 作成

# vi /var/tmp/ldap/base.ldif
dn: dc=example,dc=jp
objectClass: dcObject
objectClass: organization
dc: example
o: example

dn: ou=People,dc=example,dc=jp
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=jp
objectClass: organizationalUnit
ou: Group

dn: ou=Hosts,dc=example,dc=jp
objectClass: organizationalUnit
ou: Hosts

# ls -l /var/tmp/ldap
合計 56
drwxr-xr-x 3 1002 1000  4096 11月 14 17:35 MigrationTools-47
-rw-r--r-- 1 root root 21284  1月 25  2006 MigrationTools.tgz
-rw-r--r-- 1 root root   313 11月 14 17:35 base.ldif
-rw-r--r-- 1 root root  6346 11月 14 17:30 group.ldif
-rw-r--r-- 1 root root   862 11月 14 17:29 hosts.ldif
-rw-r--r-- 1 root root 11381 11月 14 17:29 passwd.ldif

(5)作成した LDIFファイルをインポート

# cd /var/tmp/mkdir
# ldapadd -x -c -D "cn=manager,dc=example,dc=jp" -w ldap1234 -f base.ldif
# ldapadd -x -c -D "cn=manager,dc=example,dc=jp" -w ldap1234 -f passwd.ldif
# ldapadd -x -c -D "cn=manager,dc=example,dc=jp" -w ldap1234 -f group.ldif
# ldapadd -x -c -D "cn=manager,dc=example,dc=jp" -w ldap1234 -f hosts.ldif

ログの設定

初期設定では、LDAPのログが出力されないので、出力されるようにする
openLDAPサーバのログは、syslogのLOCAL4ファシリティにログを送付している。
そのため、syslog.confファイルの設定を変更する

(1)syslog.conf の編集

syslogの設定ファイルをバックアップ

# cp -p /etc/syslog.conf /etc/syslog.conf.org

syslogの設定ファイルを編集

# vi /etc/syslog.conf
local4.*   /var/log/slapd.log

変更内容を確認

# diff /etc/syslog.conf /etc/syslog.conf.org
27,29d26
<
< # LDAP LOG
< local4.*   /var/log/slapd.log

(2)logrote に slapd.log も追加する

logrotate の設定ファイルをバックアップ

# cp -p /etc/logrotate.d/syslog /etc/logrotate.d/syslog.yyyymmdd

logrotate の設定ファイルを編集

# vi /etc/logrotate.d/syslog

変更内容を確認

# diff /etc/logrotate.d/syslog /etc/logrotate.d/syslog.yyyymmdd
1c1
< /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/slapd.log {
---
> /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {

(3)slapd.log を作成

slapd.log を作成し、ファイルの所有権など設定する

# touch /var/log/slapd.log
# chown ldap:ldap /var/log/slapd.log
# chmod 600 /var/log/slapd.log

(4)syslogの再起動

# /etc/init.d/syslog restart
カーネルロガーを停止中: [ OK ]
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]
カーネルロガーを起動中: [ OK ]

クライアントにLDAP認証を導入する

ユーザー認証・hosts の参照先をLDAPに向けます。サーバもクライアントとなるので設定は必要

(1)関連パッケージのインストール

$ yum -y install nss_ldap nscd

(2)nscd(ネームサービス)の起動と自動起動の設定

# /etc/init.d/nscd start
# chkconfig nscd on

(3)認証をLDAPに向ける

以下の項目をチェックをつける

# authconfig-tui

│  ユーザー情報         認証                         │
│  [*] キャッシュ情報  [*] MD5 パスワードを使用      │
│  [ ] Hesiod を使用   [*] シャドウパスワードを使用  │
│  [*] キャッシュ情報  [*] LDAP 認証を使用           │
│  [ ] NIS を使用      [ ] Kerberos 5 を使用         │
│  [ ] Winbind を使用  [ ] SMB 認証を使用            │
│                      [ ] Winbind 認証を使用        │
│                      [ ] ローカル認証は十分です    │
│           [ ] TLS を使用                           │
│サーバー : ldap://192.168.24.110___________________ │
│ベース DN: dc=example1,dc=jp_______________________ │

...OK...

(5)初回ログインで自動的にホームディレクトリをスケルトンから作るようにする

# vi /etc/pam.d/system-auth-ac
以下を最終行に追加
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022

# hosts もLDAPを検索するように変更する
# vi /etc/nsswitch.conf
hosts:          files dns ldap

(6)nscd のキャッシュをクリアーするため nscd を再起動

# /etc/init.d/nscd restart

LinuxCentOS 6,Linux,openldap

Posted by admin