この記事は CentOS 6 を前提にした古いサーバー構築・保守手順の記録です。CentOS 6 は既にサポートが終了しているため、新規構築では現行の Linux ディストリビューションを利用してください。ここでは、当時の環境を保守・確認するための資料として整理しています。
LDAP / OpenLDAP の設定、管理、連携を確認したい場合の参考書籍です。古い書籍のため、価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
概要
CentOS 6 における LDAP サーバー (OpenLDAP) の構築手順です。この LDAP サーバーは、Samba, FreeRadius と連携します。
インストール
OpenLDAP をインストールします。
yum -y install openldap-servers openldap-clients pam_ldap nss-pam-ldapdSamba をインストールします。Samba スキーマの入手のみが目的であるため、このホストで Samba は稼働させません。
yum -y install samba samba-swat samba-clientSamba と同じ目的で、FreeRadius をインストールします。
yum -y install freeradius freeradius-utils freeradius-ldap freeradius-perl管理者パスワードの生成
slappasswd を使用し、SSHA (Secure Salted Hash Algorithm) でハッシュされた管理者パスワードを生成します。生成したパスワードは、後述の設定ファイルに記述します。
slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxスキーマを配置
Samba スキーマは Samba のインストール時点で適切に配置されていますが、FreeRadius スキーマは手動で配置する必要があります。
cp -a /usr/share/doc/freeradius-2.1.12/examples/openldap.schema /etc/openldap/schema/radius.schemaslapd.conf.obsolete
OpenLDAP 2.3 以降、設定方法がファイル形式から DB 形式に変更されました。DB 形式になることで、設定変更がオンラインで可能になるなどのメリットがありますが、現状では参考とする情報量が少なく、今回は完全な DB 形式での設定は断念します。回避策として、一時的に従来のファイル形式での設定し、それを DB 形式に変換する方法をとります。
設定ファイルのテンプレート (slapd.conf.obsolete) を配置します。obsolete というファイル名の通り、当時でも旧来の設定方式であることが分かります。この手順は、CentOS 6 当時の slapd.conf ベースの構築記録として残しています。
cp -a /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/etc/openldap/slapd.conf.obsolete を編集します。以下は追記箇所のみを記載しています。
# Append
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/radius.schema
database monitor
access to *
by self write
by dn="cn=admin,dc=si1230,dc=com" write
by * read
access to attrs=userPassword
by self write
by dn="cn=admin,dc=si1230,dc=com" write
by anonymous auth
by * none
# Modification
suffix "dc=si1230,dc=com"
rootdn "cn=admin,dc=si1230,dc=com"
rootpw {SSHA}xxxxxxxxinclude /etc/openldap/schema/samba.schema
samba.schema スキーマファイルをインクルードしています。これは Samba 用の LDAP スキーマを追加するためのものです。
include /etc/openldap/schema/radius.schema
radius.schema スキーマファイルをインクルードしています。これは Radius (Remote Authentication Dial-In User Service) 用の LDAP スキーマを追加するためのものです。
database monitor
モニタリングデータベースを使用することを指定しています。これにより、LDAP サーバーの状態や動作を監視することができます。
access to *
by self write: ユーザーは自分のエントリーに対して書き込み権限を持ちます。by dn="cn=admin,dc=si1230,dc=com" write:cn=admin,dc=si1230,dc=comは全てのエントリーに対して書き込み権限を持ちます。by * read: その他のユーザーは読み取り権限のみを持ちます。
access to attrs=userPassword
by self write: ユーザーは自分の userPassword 属性に対して書き込み権限を持ちます。by dn="cn=admin,dc=si1230,dc=com" write: 管理者は userPassword 属性に対して書き込み権限を持ちます。by anonymous auth: userPassword 属性への認証(ログイン)操作を匿名ユーザーに許可します。by * none: その他のユーザーには userPassword 属性へのアクセスを完全に拒否します。
suffix "dc=si1230,dc=com"
この設定で定義されているデータベースのサフィックス(データベースのルートとなる DN)を dc=si1230,dc=com と指定しています。
rootdn "cn=admin,dc=si1230,dc=com"
管理者 (root) の DN を cn=admin,dc=si1230,dc=com と指定しています。
rootpw {SSHA}xxxxxxxx
管理者のパスワードを SSHAでハッシュ化した値で設定しています。xxxxxxxx は実際のハッシュ値に置き換えて下さい。
[ ACL 設定について ]
この設定により、管理者は全ての情報と userPassword 属性を書き換えることができ、一般ユーザーは自分自身のエントリーと userPassword 属性のみを書き換えることができます。また、匿名ユーザーは userPassword 属性の認証操作のみを行うことができます。
設定ファイルを DB 形式に変換
設定ファイルを DB 形式に変換します。
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf.obsolete -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.dサービス起動設定
slapd サービスを起動し、システムの起動時に有効になるように設定します。
service slapd start && chkconfig slapd
chkconfig slapd --list初期データ登録
初期データを登録します。以下のように LDIF を作成します。
dn: dc=si1230,dc=com
objectClass: dcObject
objectclass: organization
o: si1230
dc: si1230
dn: cn=admin,dc=si1230,dc=com
objectclass: organizationalRole
cn: admin
dn: ou=users,dc=si1230,dc=com
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=si1230,dc=com
objectClass: organizationalUnit
ou: groupsldapadd で LDIF を登録します。ここまで、OpenLDAP 自体の設定は一通り完了となります。後はユーザー登録、各アプリケーションの LDAP 参照設定となります。
ldapadd -x -D "cn=admin,dc=si1230,dc=com" -W -f /root/init.ldif関連記事
- CentOS 6 BIND 内部 DNS サーバー構築 – named.conf とゾーン設定
- CentOS 6 BIND 9.8.2 名前解決の失敗 – DNS トラブルの記録
- CentOS 6 ISC DHCP サーバー構築 – dhcpd.conf と配布設定
- CentOS 6 Linux 認証に LDAP を使う – NSS / PAM 連携の基本
- CentOS 6 Samba ファイルサーバー構築 – Windows 共有と認証設定


