自作クラスタ計算機:openldapを使ったldapサーバの基本設定
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 自作クラスタ計算機:openldapを使ったldapサーバの基本設定 [2026/05/11 18:05] – [管理ノード] koudai | 自作クラスタ計算機:openldapを使ったldapサーバの基本設定 [2026/05/15 11:58] (current) – [ユーザーの削除] koudai | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== 管理ノード ====== | ====== 管理ノード ====== | ||
| - | OpenLDAPをインストール | + | |
| + | ===== OpenLDAPのインストールと初期設定 ===== | ||
| + | |||
| + | (UFWを使用している場合)LDAPサーバ用のポートを開放 | ||
| + | < | ||
| + | $ sudo ufw allow 389 | ||
| + | </ | ||
| + | |||
| + | ソフトウェアのインストール | ||
| < | < | ||
| Line 16: | Line 24: | ||
| </ | </ | ||
| + | * Omit OpenLDAP server Configuration?: | ||
| * DNS domain name: cluster.home.arpa | * DNS domain name: cluster.home.arpa | ||
| * プライベートLAN内のドメイン名は hogehoge.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?: | |
| - | Yes/Noで聞かれるやつは適当に答える。 | + | * slapdをアンインストールしたときにデータベースを残すかどうか。 |
| + | * Move old database?: Yes | ||
| + | * 古いデータベースを別名にして残すかどうか。 | ||
| - | 設定されたか確認 | + | ちゃんと設定されたか確認 |
| < | < | ||
| - | $ ldapsearch -x -LLL -H ldap:/// -b dc=cluster, | + | $ sudo slapcat |
| dn: dc=cluster, | dn: dc=cluster, | ||
| objectClass: | objectClass: | ||
| objectClass: | objectClass: | ||
| objectClass: | objectClass: | ||
| - | o: Computer | + | o: Computer |
| dc: cluster | dc: cluster | ||
| + | structuralObjectClass: | ||
| + | entryUUID: d1780672-e166-1040-9b15-8729bd3fc447 | ||
| + | creatorsName: | ||
| + | createTimestamp: | ||
| + | entryCSN: 20260511092330.169937Z# | ||
| + | modifiersName: | ||
| + | modifyTimestamp: | ||
| </ | </ | ||
| - | 基本構造作成 | + | ===== 基本構造作成 |
| + | |||
| + | 組織単位を作成し、LDAPに追加する。 | ||
| < | < | ||
| - | $ vim base.ldif | + | $ nano base.ldif |
| </ | </ | ||
| + | |||
| <file - base.ldif> | <file - base.ldif> | ||
| - | dn: ou=People, | + | dn: ou=people, |
| objectClass: | objectClass: | ||
| - | ou: People | + | ou: people |
| - | dn: ou=Groups, | + | dn: ou=groups, |
| objectClass: | objectClass: | ||
| - | ou: Groups | + | ou: groups |
| + | |||
| + | dn: ou=hosts, | ||
| + | objectClass: | ||
| + | ou: hosts | ||
| </ | </ | ||
| + | |||
| < | < | ||
| - | ldapadd -x -D cn=admin, | + | $ ldapadd -x -D cn=admin, |
| </ | </ | ||
| + | ちゃんと設定されたか確認。 | ||
| - | ユーザーの作成 | + | < |
| + | $ sudo slapcat | ||
| + | dn: dc=cluster, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | o: Computer Cluster | ||
| + | dc: cluster | ||
| + | structuralObjectClass: | ||
| + | entryUUID: d1780672-e166-1040-9b15-8729bd3fc447 | ||
| + | creatorsName: | ||
| + | createTimestamp: | ||
| + | entryCSN: 20260511092330.169937Z# | ||
| + | modifiersName: | ||
| + | modifyTimestamp: | ||
| + | |||
| + | dn: ou=people, | ||
| + | objectClass: | ||
| + | ou: people | ||
| + | structuralObjectClass: | ||
| + | entryUUID: e7553b08-e167-1040-867b-8d36242c18d8 | ||
| + | creatorsName: | ||
| + | createTimestamp: | ||
| + | entryCSN: 20260511093116.348516Z# | ||
| + | modifiersName: | ||
| + | modifyTimestamp: | ||
| + | |||
| + | dn: ou=groups, | ||
| + | objectClass: | ||
| + | ou: groups | ||
| + | structuralObjectClass: | ||
| + | entryUUID: e755e2c4-e167-1040-867c-8d36242c18d8 | ||
| + | creatorsName: | ||
| + | createTimestamp: | ||
| + | entryCSN: 20260511093116.352854Z# | ||
| + | modifiersName: | ||
| + | modifyTimestamp: | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== ユーザーの追加 ===== | ||
| + | |||
| + | ユーザーの初期パスワードを設定する。 | ||
| + | |||
| + | < | ||
| + | $ slappasswd | ||
| + | New password: | ||
| + | Re-enter new password: | ||
| + | {SSHA}9VhiMfY0h9+SiAzqqCRIYGnKedgMUfH5 | ||
| + | </ | ||
| + | |||
| + | ユーザー情報の作成。 | ||
| < | < | ||
| Line 64: | Line 143: | ||
| </ | </ | ||
| <file - user.ldif> | <file - user.ldif> | ||
| - | dn: uid=taro, | + | dn: cn=taro, |
| + | objectClass: | ||
| + | cn: taro | ||
| + | gidNumber: 10000 | ||
| + | |||
| + | dn: uid=taro, | ||
| objectClass: | objectClass: | ||
| objectClass: | objectClass: | ||
| Line 75: | Line 159: | ||
| homeDirectory: | homeDirectory: | ||
| loginShell: /bin/bash | loginShell: /bin/bash | ||
| - | userPassword: | + | userPassword: |
| </ | </ | ||
| Line 81: | Line 165: | ||
| $ ldapadd -x -D cn=admin, | $ ldapadd -x -D cn=admin, | ||
| </ | </ | ||
| - | |||
| - | パスワードのSSHAハッシュは以下で取得できます。 | ||
| - | |||
| - | < | ||
| - | $ slappasswd | ||
| - | New password: | ||
| - | Re-enter new password: | ||
| - | {SSHA}JzL3FwGnjzKz2dBzPd82zsH4eN3Nx+lT | ||
| - | </ | ||
| - | |||
| - | |||
| ちゃんと登録されているか確認 | ちゃんと登録されているか確認 | ||
| < | < | ||
| - | $ ldapsearch -x -LLL -b dc=cluster, | + | $ sudo slapcat |
| </ | </ | ||
| 正しく登録されていれば、今まで入力した情報がすべて表示されます。 | 正しく登録されていれば、今まで入力した情報がすべて表示されます。 | ||
| - | + | 以下で述べるLDAPユーザの自動homeディレクトリ作成機能を利用しないなら、手動で作成する。 | |
| - | + | ||
| - | LDAPユーザのhomeディレクトリを作成 | + | |
| < | < | ||
| $ sudo mkdir /home/taro | $ sudo mkdir /home/taro | ||
| Line 109: | Line 180: | ||
| + | ===== ユーザーの削除 ===== | ||
| - | |||
| - | LDAPサーバ用のポートを開放 | ||
| < | < | ||
| - | $ sudo ufw allow 389 | + | $ ldapdelete -x -W -D " |
| + | $ ldapdelete -x -W -D " | ||
| </ | </ | ||
| - | hostsファイルを編集 | + | ===== ユーザーの削除 ===== |
| - | <file - hosts> | + | <code> |
| - | 192.168.0.1 | + | $ ldapdelete -x -W -D " |
| - | 192.168.0.10 | + | $ ldapdelete -x -W -D " |
| - | 192.168.0.11 | + | </code> |
| - | </file> | + | ====== LDAPクライアント ====== |
| + | * 最近はLDAPクライアントとしてSSSDが推奨されているらしいが、設定が面倒なので昔ながらのNSLCDを使う。 | ||
| + | * 管理ノード、計算ノードで行う。 | ||
| + | < | ||
| + | $ apt install libnss-ldapd libpam-ldapd | ||
| + | </ | ||
| - | + | * LDAP server URI: ldap:// | |
| - | ====== 計算ノードでの作業 ====== | + | * LDAP server search base: dc=cluster,dc=home,dc=arpa |
| - | + | * Name services to configure: passwd, group, shadow, hosts (スペースキーでチェックを入れられます) | |
| - | 必要なパッケージのインストール | + | |
| < | < | ||
| - | $ sudo apt install sssd libnss-sss libpam-sss ldap-utils | + | $ sudo pam-auth-update |
| </ | </ | ||
| - | + | * 「LDAP Authentication」を有効化(通常は自動で有効化済み) | |
| - | SSSDの設定 | + | * Create home directory on login を有効化 |
| < | < | ||
| - | $ sudo vim / | + | $ sudo systemctl restart nslcd nscd |
| </ | </ | ||
| - | <file - sssd.conf> | ||
| - | [sssd] | ||
| - | services = nss, pam | ||
| - | domains = cluster.home.arpa | ||
| - | [domain/ | + | ユーザーが見えるか確認 |
| - | id_provider = ldap | + | |
| - | auth_provider = ldap | + | |
| - | ldap_uri = ldap:// | ||
| - | ldap_search_base = dc=cluster, | ||
| - | |||
| - | # ユーザーとグループの場所 | ||
| - | ldap_user_search_base = ou=People, | ||
| - | ldap_group_search_base = ou=Groups, | ||
| - | |||
| - | # 認証 | ||
| - | ldap_default_bind_dn = cn=admin, | ||
| - | ldap_default_authtok = 【LDAPのパスワード】 | ||
| - | |||
| - | # ホームディレクトリ | ||
| - | ldap_user_home_directory = /home/%u | ||
| - | </ | ||
| - | |||
| - | 権限変更 | ||
| < | < | ||
| - | $ sudo chmod 600 /etc/sssd/sssd.conf | + | $ getent passwd taro |
| + | taro: | ||
| </ | </ | ||
| - | NSS設定 | ||
| < | < | ||
| - | $ sudo vim / | + | $ id taro |
| </ | </ | ||
| - | < | + | * uidとgidが見えます。 |
| - | (略) | + | |
| - | passwd: | + | |
| - | group: | + | |
| - | shadow: | + | |
| - | (略) | + | |
| - | </ | + | |
| - | 普通はとくにいじる必要ないです。 | + | |
| - | ホームディレクトリの生成 | + | ユーザーに切り替えるには |
| < | < | ||
| - | $ sudo apt install oddjob-mkhomedir | + | $ su - taro |
| </ | </ | ||
| - | PAM設定 | ||
| - | < | ||
| - | $ sudo pam-auth-update | ||
| - | </ | ||
| - | * 「SSS Authentication」を有効化(通常は自動で有効化済み) | ||
| + | === おまけ === | ||
| + | |||
| + | ラズパイ5で組んだクラスタマシンで実行すると、追加したtaroのログインに失敗します。 | ||
| - | SSSD起動 | ||
| < | < | ||
| - | $ sudo systemctl restart sssd | + | $ su - taro |
| - | $ sudo systemctl enable sssd | + | Password: |
| + | su: Authentication failure | ||
| </ | </ | ||
| - | + | / | |
| - | ユーザーが見えるか確認 | + | < |
| + | 2026-05-14T16: | ||
| + | </ | ||
| + | となっていたので、AppAmorを修正しました。 | ||
| < | < | ||
| - | $ getent passwd taro | + | $ sudo nano / |
| </ | </ | ||
| - | * なにも表示されなかったら失敗しています。 | + | < |
| + | (略) | ||
| + | include if exists < | ||
| + | / | ||
| + | } | ||
| + | </ | ||
| < | < | ||
| - | $ id taro | + | $ sudo apparmor_parser -r / |
| </ | </ | ||
| - | * uidとgidが見えます。 | ||
| - | ユーザーに切り替えるには | ||
| - | < | + | ====== 参考資料 ====== |
| - | $ su - taro | + | |
| - | </ | + | |
| + | * https:// | ||
| + | * https:// | ||
自作クラスタ計算機/openldapを使ったldapサーバの基本設定.1778490336.txt.gz · Last modified: 2026/05/11 18:05 by koudai
