User Tools

Site Tools


自作クラスタ計算機:openldapを使ったldapサーバの基本設定

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
自作クラスタ計算機:openldapを使ったldapサーバの基本設定 [2026/05/08 18:21] – created koudai自作クラスタ計算機:openldapを使ったldapサーバの基本設定 [2026/05/13 19:46] (current) – [ユーザーの削除] koudai
Line 1: Line 1:
 ====== 管理ノード ====== ====== 管理ノード ======
  
-OpenLDAPインストール+===== OpenLDAPインストールと初期設定 =====
  
 <code> <code>
Line 16: Line 16:
 </code> </code>
  
 +  * Omit OpenLDAP server Configuration?: No
   * DNS domain name: cluster.home.arpa   * DNS domain name: cluster.home.arpa
-    * プライベートLAN内のドメイン名は home.arpa が推奨されている、らしい +    * プライベートLAN内のドメイン名は hogehoge.home.arpa が推奨されている、らしい 
-    * クラスタ計算機のドメインなので、ここでは cluster をつけておく+    * クラスタ計算機のドメインなので、ここでは cluster.home.arpha としておく
   * Organization name: Computer cluster   * Organization name: Computer cluster
-    * 好きな名前にしてよろしい +    * このドメインが何を表すかの覚書。好きな名前にしてよろしい 
-  * Administration password: 任意+  * Administration password: インストール時に入力したもの 
 +  * Do you want the database to be removed when slapd is purged?: No 
 +    * slapdをアンインストールしたときにデータベースを残すかどうか。  
 +  * Move old database?: Yes 
 +    * 古いデータベースを別名にして残すかどうか。
  
-Yes/Noで聞かれるやつは適当に答える。 +ちゃんと設定されたか確認
- +
- +
-設定されたか確認+
  
 <code> <code>
-ldapsearch -x -LLL -H ldap:/// -b dc=cluster,dc=home,dc=arpa+sudo slapcat
 dn: dc=cluster,dc=home,dc=arpa dn: dc=cluster,dc=home,dc=arpa
 objectClass: top objectClass: top
 objectClass: dcObject objectClass: dcObject
 objectClass: organization objectClass: organization
-o: Computer cluster+o: Computer Cluster
 dc: cluster dc: cluster
 +structuralObjectClass: organization
 +entryUUID: d1780672-e166-1040-9b15-8729bd3fc447
 +creatorsName: cn=admin,dc=cluster,dc=home,dc=arpa
 +createTimestamp: 20260511092330Z
 +entryCSN: 20260511092330.169937Z#000000#000#000000
 +modifiersName: cn=admin,dc=cluster,dc=home,dc=arpa
 +modifyTimestamp: 20260511092330Z
 </code> </code>
  
  
-基本構造作成+ 
 +===== 基本構造作成 ===== 
 + 
 +組織単位を作成し、LDAPに追加する。
  
 <code> <code>
-vim base.ldif+nano base.ldif
 </code> </code>
 +
 <file - base.ldif> <file - base.ldif>
-dn: ou=People,dc=cluster,dc=home,dc=arpa+dn: ou=people,dc=cluster,dc=home,dc=arpa
 objectClass: organizationalUnit objectClass: organizationalUnit
-ou: People+ou: people
  
-dn: ou=Groups,dc=cluster,dc=home,dc=arpa+dn: ou=groups,dc=cluster,dc=home,dc=arpa
 objectClass: organizationalUnit objectClass: organizationalUnit
-ou: Groups+ou: groups
 </file> </file>
 +
 <code> <code>
-ldapadd -x -D cn=admin,dc=cluster,dc=home,dc=arpa -W -f base.ldif+ldapadd -x -D cn=admin,dc=cluster,dc=home,dc=arpa -W -f base.ldif
 </code> </code>
  
 +ちゃんと設定されたか確認。
  
-ユーザーの作成+<code> 
 +$ sudo slapcat 
 +dn: dc=cluster,dc=home,dc=arpa 
 +objectClass: top 
 +objectClass: dcObject 
 +objectClass: organization 
 +o: Computer Cluster 
 +dc: cluster 
 +structuralObjectClass: organization 
 +entryUUID: d1780672-e166-1040-9b15-8729bd3fc447 
 +creatorsName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +createTimestamp: 20260511092330Z 
 +entryCSN: 20260511092330.169937Z#000000#000#000000 
 +modifiersName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +modifyTimestamp: 20260511092330Z 
 + 
 +dn: ou=people,dc=cluster,dc=home,dc=arpa 
 +objectClass: organizationalUnit 
 +ou: people 
 +structuralObjectClass: organizationalUnit 
 +entryUUID: e7553b08-e167-1040-867b-8d36242c18d8 
 +creatorsName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +createTimestamp: 20260511093116Z 
 +entryCSN: 20260511093116.348516Z#000000#000#000000 
 +modifiersName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +modifyTimestamp: 20260511093116Z 
 + 
 +dn: ou=groups,dc=cluster,dc=home,dc=arpa 
 +objectClass: organizationalUnit 
 +ou: groups 
 +structuralObjectClass: organizationalUnit 
 +entryUUID: e755e2c4-e167-1040-867c-8d36242c18d8 
 +creatorsName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +createTimestamp: 20260511093116Z 
 +entryCSN: 20260511093116.352854Z#000000#000#000000 
 +modifiersName: cn=admin,dc=cluster,dc=home,dc=arpa 
 +modifyTimestamp: 20260511093116Z 
 + 
 +</code> 
 + 
 + 
 + 
 +===== ユーザーの追加 ===== 
 + 
 +ユーザーの初期パスワードを設定する。 
 + 
 +<code> 
 +$ slappasswd 
 +New password:  
 +Re-enter new password:  
 +{SSHA}9VhiMfY0h9+SiAzqqCRIYGnKedgMUfH5 
 +</code> 
 + 
 +ユーザー情報の作成
  
 <code> <code>
Line 64: Line 132:
 </code> </code>
 <file - user.ldif> <file - user.ldif>
-dn: uid=taro,ou=People,dc=cluster,dc=home,dc=arpa+dn: cn=taro,ou=groups,dc=cluster,dc=home,dc=arpa 
 +objectClass: posixGroup 
 +cn: taro 
 +gidNumber: 10000 
 + 
 +dn: uid=taro,ou=people,dc=cluster,dc=home,dc=arpa
 objectClass: inetOrgPerson objectClass: inetOrgPerson
 objectClass: posixAccount objectClass: posixAccount
Line 75: Line 148:
 homeDirectory: /home/taro homeDirectory: /home/taro
 loginShell: /bin/bash loginShell: /bin/bash
-userPassword: {SSHA}JzL3FwGnjzKz2dBzPd82zsH4eN3Nx+lT+userPassword: {SSHA}9VhiMfY0h9+SiAzqqCRIYGnKedgMUfH5
 </file> </file>
  
Line 82: Line 155:
 </code> </code>
  
-パスワードのSSHAハッシュは以下取得できます。+ちゃんと登録されているか確認 
 +<code> 
 +$ sudo slapcat 
 +</code> 
 + 
 +正しく登録されていれば、今ま入力した情報がすべて表示されます。 
 + 
  
 +LDAPユーザのhomeディレクトリを作成
 <code> <code>
-slappasswd +sudo mkdir /home/taro 
-New password +$ sudo chown 10000:10000 /home/taro
-Re-enter new password:  +
-{SSHA}JzL3FwGnjzKz2dBzPd82zsH4eN3Nx+lT+
 </code> </code>
  
  
 +
 +
 +LDAPサーバ用のポートを開放
 +<code>
 +$ sudo ufw allow 389
 +</code>
 +
 +
 +hostsファイルを編集
 +
 +<file - hosts>
 +192.168.0.1   kanri.cluster.home.arpa kanri
 +192.168.0.10  keisan10.cluster.home.arpa keisan10
 +192.168.0.11  keisan11.cluster.home.arpa keisan11
 +</file>
 +
 +
 +===== ユーザーの削除 =====
 +
 +<code>
 +$ ldapdelete -x -W -D "cn=admin,dc=cluster,dc=home,dc=arpa" 'cn=taro,ou=groups,dc=cluster,dc=home,dc=arpa'
 +$ ldapdelete -x -W -D "cn=admin,dc=cluster,dc=home,dc=arpa" 'uid=taro,ou=people,dc=cluster,dc=home,dc=arpa'
 +</code>
 +
 +====== 計算ノードでの作業 ======
 +
 +<code>
 +$ apt install libnss-ldapd libpam-ldapd ldap-utils
 +</code>
 +
 +  * LDAP server URI: ldap://192.168.0.1/
 +  * LDAP server search base: dc=cluster,dc=home,dc=arpa
 +  * Name services to configure: passwd, group, shadow, hosts (スペースキーでチェックを入れられます)
 +
 +ユーザーがいるか確認
 +
 +<code>
 +$ getent passwd taro
 +taro:x:10000:10000:Taro Yamada:/home/taro:/bin/bash
 +</code>
 +
 +
 +参考
 +
 +
 +https://server-network-note.net/2022/11/openldap-client-ubuntu22-04lts-server/
 +
 +https://zenn.dev/iasl/articles/1d35c87a66ee35
 +
 +
 +
 +
 +
 +====== SSSD ======
 +
 +
 +必要なパッケージのインストール
 +
 +<code>
 +$ sudo apt install sssd libnss-sss libpam-sss ldap-utils
 +</code>
 +
 +SSSDの設定
 +
 +<code>
 +$ sudo vim /etc/sssd/sssd.conf
 +</code>
 +<file - sssd.conf>
 +[sssd]
 +services = nss, pam
 +config_file_version = 2
 +domains = default
 +
 +[domain/default]
 +id_provider = ldap
 +auth_provider = ldap
 +
 +ldap_uri = ldap://192.168.01.
 +ldap_search_base = dc=cluster,dc=home,dc=arpa
 +
 +# ユーザー・グループの場所
 +ldap_user_search_base = ou=people,dc=cluster,dc=home,dc=arpa
 +ldap_group_search_base = ou=groups,dc=cluster,dc=home,dc=arpa
 +
 +# 認証
 +ldap_default_bind_dn = cn=admin,dc=cluster,dc=home,dc=arpa
 +ldap_default_authtok = LDAPをインストールした際に設定したパスワード
 +
 +# TLS
 +ldap_id_use_start_tls = false
 +ldap_tls_reqcert = never
 +ldap_auth_disable_tls_never_use_in_production = true
 +</file>
 +
 +権限変更
 +<code>
 +$ sudo chmod 600 /etc/sssd/sssd.conf
 +</code>
 +
 +NSS設定
 +<code>
 +$ sudo vim /etc/nsswitch.conf
 +</code>
 +<file>
 +(略)
 +passwd:         files systemd sss
 +group:          files systemd sss
 +shadow:         files systemd sss
 +(略)
 +</file>
 +普通はとくにいじる必要ないです。
 +
 +
 +ホームディレクトリの生成
 +<code>
 +$ sudo apt install oddjob-mkhomedir
 +</code>
 +
 +
 +PAM設定
 +<code>
 +$ sudo pam-auth-update
 +</code>
 +  * 「SSS Authentication」を有効化(通常は自動で有効化済み)
 +
 +
 +SSSD起動
 +<code>
 +$ sudo systemctl restart sssd
 +$ sudo systemctl enable sssd
 +</code>
 +
 +
 +ユーザーが見えるか確認
 +
 +<code>
 +$ getent passwd taro
 +</code>
 +  * なにも表示されなかったら失敗しています。
 +
 +<code>
 +$ id taro
 +</code>
 +  * uidとgidが見えます。
 +
 +
 +ユーザーに切り替えるには
 +
 +<code>
 +$ su - taro
 +</code>
 +
 +
 +
 +=== memo ===
 +
 +<file>
 +#
 +# /etc/pam.d/common-account - authorization settings common to all services
 +#
 +# This file is included from other service-specific PAM config files,
 +# and should contain a list of the authorization modules that define
 +# the central access policy for use on the system.  The default is to
 +# only deny service to users whose accounts are expired in /etc/shadow.
 +#
 +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
 +# To take advantage of this, it is recommended that you configure any
 +# local modules either before or after the default block, and use
 +# pam-auth-update to manage selection of other modules.  See
 +# pam-auth-update(8) for details.
 +#
 +
 +# here are the per-package modules (the "Primary" block)
 +account [success=ok new_authtok_reqd=done default=ignore] pam_ldap.so
 +account required pam_unix.so 
 +# here's the fallback if no module succeeds
 +account requisite pam_deny.so
 +# prime the stack with a positive return value if there isn't one already;
 +# this avoids us returning an error just because nothing sets a success code
 +# since the modules above will each just jump around
 +account required pam_permit.so
 +# and here are more per-package modules (the "Additional" block)
 +account [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad] pam_ldap.so minimum_uid=1000
 +# end of pam-auth-update config
 +
 +</file>
自作クラスタ計算機/openldapを使ったldapサーバの基本設定.1778232073.txt.gz · Last modified: 2026/05/08 18:21 by koudai