OpenLDAP(新形式)の導入設定¶
インストール¶
- 次のコマンドでインストールする
yum install openldap-servers openldap-clients
初期設定¶
ログ出力の設定¶
- デフォルトではログ出力しない為、rsyslogの設定ファイルを編集してログを取るようにする。
vi /etc/esyslog.conf -------------------- # OpenLDAP local4.* /var/log/slapd.log
- rsyslogをリロードする
systemctl restart rsyslog
BerkleyDBの設定ファイルコピー¶
- 次のコマンドでファイルをコピーする
cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
- 次のコマンドでオーナーを変更する
chown ldap.ldap /var/lib/ldap/DB_CONFIG
データベースの作成¶
- slapdが起動していたら一度停止する
systemctl stop slapd
- サンプルのデータベースを削除
rm /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
- 次の定義を作成
vi /etc/openldap/database.ldif -------------------- dn: olcDatabase=hdb,cn=config objectClass: olcHdbConfig olcDatabase: hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=com olcRootDN: cn=Manager,dc=example,dc=com olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none
- slapdを起動する
systemctl start slapd
- 前述のデータベース定義を書き込む
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/database.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "olcDatabase=hdb,cn=config"
管理者情報の登録¶
- パスワードを作成
slappasswd New password:(パスワードを入力) Re-enter new password:(パスワードを入力) {SSHA}*******************(この文字列をコピー)
- basednと管理者情報の定義を作成
vi /etc/openldap/manager.ldif -------------------- dn: dc=example,dc=com dc: example o: example.com objectClass: dcObject objectClass: organization dn: cn=Manager,dc=example,dc=com objectClass: organizationalRole objectClass: simpleSecurityObject cn: Manager userPassword: {SSHA}*******************(先ほどのパスワード文字列)
- basednと管理者情報を登録する
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/database.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "dc=example,dc=com" adding new entry "cn=Manager,dc=example,dc=com"
ユーザ用のスキーマ(PosixAccount)をインクルード¶
- 次のコマンドを実行
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config"
- 次のコマンドを実行
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=nis,cn=schema,cn=config"
ユーザ用スキーマ(inetOrgPerson)をインクルード¶
- 次のコマンドを実行
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=inetorgperson,cn=schema,cn=config"
ユーザ・グループの登録¶
グループの登録¶
- グループ情報の定義を作成
vi /etc/openldap/group.ldif -------------------- dn: ou=Users,dc=example,dc=com ou: Users objectClass: organizationalUnit
- 管理者情報を登録する
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/group.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "ou=Users,dc=example,dc=com"
ユーザの登録¶
- ユーザ情報の定義を作成
vi /etc/openldap/user.ldif -------------------- dn: uid=user01,ou=Users,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount uid: user01 cn: user 01 sn: test user uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/user01
- ユーザ情報を登録する
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/user.ldif (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "uid=user01,ou=Users,dc=cvtest,dc=local"
結果を検索¶
- 次のコマンドでユーザを検索
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b uid=user01,ou=Users,dc=example,dc=com (結果) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: uid=user01,ou=Users,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount uid: user01 cn: user 01 sn: test user uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/user01