openldapの設定と使い方
概要
- ldapと呼ばれる認証と関連するデータの管理
- ldapとactive directoryの違いはactive directoryはldap等のプロトコルをサポートしたソフトウェア
- microsoft outlookやthunderbirdなどでアドレス帳としても用いられる
インストール
debian, ubuntu
$ sudo apt install slapd ldap-utils
用語
LDIF形式
- openldapがサポートするファイル形式
- 設定のルートは
cn=config - 直接編集するのは避けたほうが良い
LDIF形式凡例
dn: 識別名
属性名: 値
属性名: 値
...
LDIF形式具体例
dn: uid=user1,ou=People,dc=willeke,dc=com
uid: user1
cn: user1
uidnumber: 199995
gidnumber: 20
gecos: Joe Smith [New York]
homedirectory: /home/user1
loginshell: /bin/csh
objectclass: top
objectclass: shadowAccount
objectclass: account
objectclass: posixAccount
objectclass: nisKeyObject
objectclass: inetOrgPerson
スキーマファイル
- 概要
- オブジェクオクラスや属性の定義を行うファイル
/etc/ldap/schema/にある
- 主なファイル
core.schema- cnやouなどの基本的な情報
cosine.schema- X.500で定義された属性
inetorgperson.schema- intOrgPersonクラスを定義
cnとsnは必ず設定sルウ
nis.schema- network information service関連のオブジェクトクラス
サーバデーモン
slapd
設定
slapd-config
ディレクティブ
olcLogLevel: <Level>- syslogに出力するログレベル
olcIncluce: <filepath>- 外部設定ファイル
olcAttributeTypesolcAttributeClasses: <object-class>- オブジェクトクラスを定義
olcBackend: <type>- typeは使用するバックエンド
bdb,config,ldap,ldif等がある
slapd.conf
directory <dir-path>- データベースファイルを格納するディレクトリ
database <type>- 使用するバックエンドデータベース
suffix <dn>- ディレクトリのトップとなるdnを指定
rootdn <dn>- データベース管理者のdn
rootpw <password>- データベース管理者のパスワード
index <attribute> <tyep>pidfile <filename>- slapdのプロセスIDを格納するファイル
logfile <filename>- デバッグログの出力先
include <filename>- 読み込む設定ファイル
timelimit <seconds>- 検索応答に使う最大秒数
属性名
dn- 識別名
objectClass- オブジェクトクラス
c- 国名
cn- common name
dc- domain component
mail- mail address
o- organization
ou- organization unit
sn- SurName
telephoneNumber- 電話番語
uid- user name
uidNumber- user id number
各ツール
slaptest
概要
slapd.conf構文確認ツール
slapcat
概要
- slapcat - SLAPD database to LDIF utility
ldapadd
概要
- ユーザの追加
引数
-h <hostname>- LDAPサーバを制定
-x- SASLを使用せず簡易設定を行う
-D cn=<user>,dc=<domain>,dc=<tdl>- 識別名を指定
-W- 対話式のパスワード
-w <password>- パスワードを指定
-f <filename.ldif>- LDIFファイルを指定
-c- エラー時も処理を継続(ファイルから設定する時)
-n <database-number>slapf.confに書かれたデータベース番号
-d <debug-level>- デバッグレベル
具体例
$ sudo ldapadd -x -D cn=admin,dc=computingforgeeks,dc=com -W -f basedn.ldif
ldapmodify
概要
- 変更ツール
ldapsearch
概要
- LDAPに登録されている情報の確認
引数
-h <hostname>- ホストを指定
-H <ldap://uri>- URIを指定
-b cn=<user>,dc=<domain>,dc=<tdl>- 識別名を指定
-L- LDIFv1で表示
-LL- コメント無しで表示
-LLL- コメント、LDAPのバージョン表記なし
slappasswd
概要
- slappasswd - OpenLDAP password utility
引数
-h <alorithm>{SHA}や{MD5}
-s <password>- ハッシュを計算したいパスワード