Ubuntu10.10 に OpenLDAPサーバのインストール&設定
今回はUbuntu10.10にOpenLDAPのインストールしたときのメモ。
このLDAP(エルダップって読むっけ?)に認証情報を一元管理できるので便利。
個人使用ではいらないって言われそうだけど、便利なものは使えるようにしてしまおう!
ヒント つ Ubuntu公式ドキュメント
サーバー設定
無事インストールが終わったので設定変更。
/etc/openldap/slapd.conf のファイルを編集っと……ってないぞ!?
おぉ、/etc/ldap/ディレクトリなのか……
ってクライアント用設定ファイル「ldap.conf」やスキーマはあるけどサーバ設定ファイル「slapd.conf」が無いではないか!
どうやら、「サービスを止めないでも設定変更できるようにしようぜ」的な感じで、設定自体もLDAPの中に書くらしい。
まずはschemaの設定
最初にschemaが必要になるので読み込むようにするには以下のコマンドを実行。
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
slapd.conf の代わりの ldif ファイル生成
config内容をLDAPに書くので、LDAP作成ファイルにslapd.confに相当する内容を新しく作成する。
ファイル自体は適当に好きな場所でおk。作業用ディレクトリに作ればいいんじゃない?
vi backend.example.com.ldif
ファイルの中身はこんな感じ。
# Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: back_hdb # Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcSuffix: dc=example,dc=com # ドメインは環境に合わせて変更 olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=example,dc=com # ドメインは環境に合わせて変更 olcRootPW: secret # ここはパスワードなので別にしたほうがよい olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 olcDbIndex: objectClass eq olcLastMod: TRUE olcDbCheckpoint: 512 30 olcAccess: to attrs=userPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none #ドメインは環境に合わせて変更 olcAccess: to attrs=shadowLastChange by self write by * read olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read # ドメインは環境に合わせて変更
ldifファイルが作成できたらLDAPに登録だ!
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
データベース構築
これで環境設定ができたので、最低限必要な情報をLDAPに反映させましょう。
vi frontend.example.com.ldif
# Create top-level object in domain dn: dc=example,dc=com # ドメインは環境に応じて変更 objectClass: top objectClass: dcObject objectclass: organization o: Example Organization dc: Example description: LDAP Example # Admin user. dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: secret # 前の処理でやった管理者用パスワード dn: ou=people,dc=example,dc=com objectClass: organizationalUnit ou: people dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups
LDIFファイルができたらそれをldapaddコマンドで。
sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f frontend.example.com.ldif
slapcatコマンドで登録した内容が表示されれば無事完了。
後はgroupやユーザアカウントを登録していけばいい。