openldap インストール
概要
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
ディスカッション
コメント一覧
まだ、コメントがありません