タグ「LDAP」の一覧

OpenLDAP@Solarisの設定

以前のエントリで、SolarisにOpenLDAPを導入する方法を紹介しました。今回は、そのOpenLDAPにユーザ情報を持たせて認証できるようにするところまでを紹介します。

[blog] SolarisにOpenLDAPを導入する


まず、設定ファイルで用いる管理者のパスワードを、slappasswdで暗号化します。slappasswdは、多くの場合/usr/local/sbinの下にあります。slappasswdで生成された暗号化パスワードはどこかにコピーしておきましょう。ちなみに下のコードで書かれている「xxx...xxx」てのは、もっとランダムな文字列になります。



# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxx

その後、/usr/local/etc/openldap/slapd.conf で、次のように設定します。



database bdb
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxx

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

この設定の中で、「dc=XXX」という部分がありますが、これはそれぞれの組織にあったものをつけるといいと思います。他のWebページで紹介されているものは、大部分はURLのドメインの部分を指定しているようです。

ここまで来たら、とりあえずLDAPサーバが立ち上がるかテストしてみましょう。起動スクリプトは、別のエントリで紹介しているので、そちらを参照してください。

[blog] OpenLDAPの自動起動用スクリプト


これで実行してみて、立ち上がるようならユーザ情報の追加を行います。立ち上がらないようなら、設定ファイルでのスペルミスやパスの設定に問題がないかを確認してみましょう。

ユーザ情報の追加を行う前に、ユーザ情報のスキーマ(属性の構造の定義ファイル)を作成します。幸いなことに、特に複雑なことをしないなら、以下のソースをちょっと変更するだけで大丈夫です。仮に、このソースのファイル名を「base.ldif」とします。



dn: dc=example,dc=com
objectClass: dcObject
objectclass: organization
dc: example
o: Example Corporation

dn: cn=Manager, dc=example,dc=com
objectClass: organizationalRole
cn:Manager

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

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

ソースを改造できたら、これをldapに食わせます。ldapにこのソースを追加するには、ldapaddコマンドを使います。



# ldapadd -f base.ldif -x -D "cn=Manager,dc=example,dc=com" -W

これでldapの中にソースで設定したオブジェクトを追加することができました。さて、ここからはこれまでマシン上で管理されてきたアカウント情報をLDAPサーバにコピーする作業です。移転する作業を行う前に、MigrationToolsがマシン上にあるかどうかを確認しましょう。MigrationToolsとは、NISや普通のユーザ管理ファイルからLDAPに自動的にコピーさせるためのPerlスクリプト群です。

/usr/share/openldap/migrationの下にファイルがあることが多いですが、もしない場合はWeb上からダウンロードしてきましょう。公式ページの下の方に、ファイルのリンクがあります。

[web] Migration Tools


MigrationToolsが手に入ったら、そのファイルの中の「migrate_common.ph」のパラメータを環境に合わせて設定します。



$DEFAULT_MAIL_DOMAIN = "example.com";
$DEFAULT_BASE = "dc=example,dc=com";

それから、/etc/passwdと/etc/groupをそれぞれ適当なファイルとしてコピーします。コピーされたファイルで、移転したくないユーザやグループの情報を削除します。以下の説明では、ユーザ情報ファイルをuserlist、グループ情報ファイルをgrouplistというファイルにしたものとします。



# ./migrate_passwd.pl userlist > userlist.ldif
# ./migrate_group.pl grouplist > grouplist.ldif
# ldapadd -f userlist.ldif -x -D "cn=Manager,dc=example,dc=com" -W
# ldapadd -f grouplist.ldif -x -D "cn=Manager,dc=example,dc=com" -W

migrate_passwd.plやmigrate_group.plの実行権限がついていないことがあるので、chmodコマンドで実行できるようにしてください。ldapaddコマンドを入力後は、slapd.confで設定した(暗号化前の)パスワードを入力すればよいです。


参考にしたWebページは次のとおりです。
[web] 既存のユーザアカウントをLDAPサーバに追加するには - @IT
[web] LinuxでLDAPサーバを構築するには - @IT

SolarisにOpenLDAPを導入する

研究室のSolarisサーバにOpenLDAPを導入してみました。かなり長い紆余曲折の末、なんとか導入できて今は一安心です。今後不具合が出ないことを祈ります。

今回、OpenLDAPを導入したサーバの環境は次のとおりです。
OS:Solaris10
DB:BerkeleyDB.4.5.20
LDAP:OpenLDAP-2.3.34

まず、OpenLDAPをインストールする前に、BerkeleyDBをインストールします。無事にインストールが完了すると、デフォルトで/usr/localの下にファイルが置かれます。以降の説明では、プログラムソースは/usr/local/src直下にあるものとします。



$ cd /usr/local/src
$ gunzip -c db-4.5.20.tar.gz | tar xvf -
$ cd db-4.5.20/build_unix
$ CC=gcc ../dist/configure
$ make
# make install

次に、OpenLDAPのインストールを行います。makeはSolaris標準のmake(/usr/ccs/bin/make)を利用します。



$ cd /usr/local/src
$ gunzip -c openldap-2.3.34.tgz | tar xvf -
$ cd openldap-2.3.34
# export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.5/lib:/usr/local/lib
# export CPPFLAGS=-I/usr/local/BerkeleyDB.4.5/include
# export LDFLAGS="-L/usr/local/BerkeleyDB.4.5/lib -R/usr/local/BerkeleyDB.4.5/lib"
# export CFLAGS=-D_AVL_H
# ./configure
# make depend
# make
# make install

makeを実行すると、途中いろいろと警告が出てくるのですが、今のところは気にしない方向で。あとは、ユーザを追加していって、名前解決の際にldapを参照するようにすれば利用できるようになるはずです。

以下に、参照したWebページを示します。

[web] OpenLDAPの利用
[blog] OpenLDAPでconfigure: error: Berkeley DB version mismatch - UNIXしま専科
[blog] OpenLDAP Solaris10上 makeでエラー - UNIXしま専科
[bbs] openldapのインストール- @IT
[web] Solaris 10 に OpenLDAP をインストールする時の注意点
[web] Solaris10 BerkeleyDB.4.4.20

続きを読む

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • snow.jpg
  • リアディレーラ

月別アーカイブ

最近のコメント