OpenLDAP
この章では、OpenLDAPをインストールし、認証サーバを構築します。
ミドルウェアやOSの認証設定をOpenLDAPサーバにすることで、ユーザーの一元管理ができるようになります。
準備
rootに昇格
sudo su - 便利ツールインストール
yum -y install vim bash-completion net-toolsSELinux停止
vi /etc/selinux/configSELINUX=disabled反映
rebootLDAPサーバの構築
- OpenLDAPをインストール
インストール
yum -y install openldap-servers openldap-clientsDB設定ファイルをセット
- exampleから初期値を設定
cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG自動起動設定
systemctl start slapd
systemctl enable slapd管理者アカウントパスワード設定
- のちに追加するManagerとは別
ハッシュ化されたパスワード出力
- デフォルトでSHA-1暗号化アルゴリズムで暗号化される
- プレーンパスワードでもOK
slappasswd出力
New password:
Re-enter new password:
{SSHA}gtNovF08wCs9igii4/RBa4MSoAtiqdfrldifファイル作成
- olcRootPWにslappasswdコマンドで出力されたパスワードを埋め込む
vi chrootpw.ldifdn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}gtNovF08wCs9igii4/RBa4MSoAtiqdfr追加
- -Y EXTERNALオプションでrootパスワード入力をスキップ
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif標準スキーマの追加
# COSINEとInternet X.500スキーマ(必須)
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
# UNIXアカウント等を扱うために使用するスキーマ、posixAccountやposixGroupはこのファイルに定義されている。
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
# 組織に関連する人を表すオブジェクトクラスinetOrgPersonを定義するスキーマ
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldifManagerアカウントパスワード変更
ハッシュ化されたパスワード出力
slappasswd出力
New password:
Re-enter new password:
{SSHA}jjvqxnULFJHaCjntF7TqIbhD9+Y1aevUvi chdomain.ldif- olcRootPWに生成したディレクトリマネージャーのパスワードを指定する
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=vamdemic,dc=inc" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=vamdemic,dc=inc
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=vamdemic,dc=inc
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}jjvqxnULFJHaCjntF7TqIbhD9+Y1aevU
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=vamdemic,dc=inc" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=vamdemic,dc=inc" write by * read反映
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldifOU作成
vi basedomain.ldifdn: dc=vamdemic,dc=inc
objectClass: top
objectClass: dcObject
objectclass: organization
o: VamdemicSystem
dc: vamdemic
dn: cn=Manager,dc=vamdemic,dc=inc
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=vamdemic,dc=inc
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=vamdemic,dc=inc
objectClass: organizationalUnit
ou: Group反映
ldapadd -x -D cn=Manager,dc=vamdemic,dc=inc -W -f basedomain.ldifファイアウォール設定
firewall-cmd --add-service=ldap --permanent
firewall-cmd --reloadユーザー作成
ハッシュ化されたパスワード出力
slappasswd出力
New password:
Re-enter new password:
{SSHA}jjvqxnULFJHaCjntF7TqIbhD9+Y1aevUldifファイル作成
vi ldapuser.ldifdn: uid=yuta,ou=People,dc=vamdemic,dc=inc
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: yuta
sn: Linux
userPassword: {SSHA}GdmS2szfRwKj5KiitpFSdVG4QLA0O0a/
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/yuta
dn: cn=system,ou=Group,dc=vamdemic,dc=inc
objectClass: posixGroup
cn: system
gidNumber: 1000
memberUid: yutaldapadd -x -D cn=Manager,dc=vamdemic,dc=inc -W -f ldapuser.ldifエントリの確認
ldapsearch -x -b "ou=Group,dc=vamdemic,dc=inc" cn=systemエントリの削除
ldapdelete -x -D  "cn=Manager,dc=vamdemic,dc=inc" -w password "uid=yuta,ou=People,dc=vamdemic,dc=inc"
ldapdelete -x -D  "cn=Manager,dc=vamdemic,dc=inc" -w password "cn=system,ou=Group,dc=vamdemic,dc=inc"ユーザーのパスワード変更
ldappasswd -x -D  "cn=Manager,dc=vamdemic,dc=inc" -w password -s pass "uid=yuta,ou=People,dc=vamdemic,dc=inc"クライアント設定
パッケージインストール
yum -y install openldap-clients nss-pam-ldapdSELinux停止
vi /etc/selinux/configSELINUX=disabled反映
reboot設定投入
- authconfig-tuiでGUI風に設定も可能- authconfig --enableldap \ --enableldapauth \ --ldapserver=192.168.11.221 \ --ldapbasedn="dc=vamdemic,dc=inc" \ --enablemkhomedir \ --update
ログイン動作確認
ssh yuta@192.168.11.222Webツールインストール
- phpldapadmin
Apacheインストール
yum -y install httpdsystemctl start httpd
systemctl enable httpdfirewall-cmd --add-service=http --permanent
firewall-cmd --reloadPHPインストール
yum -y install php php-mbstring php-pearphpldapadmin
インストール
yum -y install epel-release
yum --enablerepo=epel -y install phpldapadminIPアドレス許可設定
vi /etc/httpd/conf.d/phpldapadmin.conf- Require ipにLANのCIDRblockを追記
  <IfModule mod_authz_core.c>
    Require local
    Require ip 192.168.11.0/24
  </IfModule>認証方法変更
vi /etc/phpldapadmin/config.php398行目
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');設定反映
systemctl restart httpdアクセス
http://192.168.11.221/ldapadmin/
cn=Manager,dc=vamdemic,dc=inc/password
ミドルウェアでの認証(NextCloud)
インストール
yum -y install docker
docker ps
systemctl enable docker
systemctl start dockerNextCloud起動
docker run -d -p 8080:80 nextcloudファイアウォール設定
firewall-cmd --add-port=8080 --permanent
firewall-cmd --reloadアクセス





付録
動作している仮想マシンのovaファイルです。うまくいかない場合、こちらをインポートしていただき設定値をご確認いただければと思います!
https://vamdemic.sharepoint.com/:f:/s/vamdemicsystem/Ek84RP2mCJlHuk2pb-B1iV8BOs77i6KA_t3fVTL4OlcZMA?e=rIZUdk
pass: openldap
