構成は下図の感じで、要件は運用PCかた秘密鍵を使用してLDAPクライアントにログインすることです。またLDAPクラインとが複数サーバになってもLDAPサーバが統括して認証を行うことになります。
やってみた感想は、「Active Directoryってよくできてるよ」です。たぶんADでしたら10分の1くらいの時間でできたかと。
DNSサーバ:192.168.11.111
LDAPサーバ:192.168.11.5 Rocky Linux release 8.9 (Green Obsidian)
LDAPクラインと:192.168.11.13 Rocky Linux release 9.3 (Blue Onyx)
運用PC:192.168.11.2 Windows 11 pro
尚、太文字が入力したコマンドになります。
1.LDAPサーバ
1.1 OpensSSlであらかじめ証明書を作成します。 cd /etc/pki/tls/certs openssl genrsa -aes128 2048 > server.key Generating RSA private key, 2048 bit long modulus (2 primes) ............................................................................+++++ ............+++++ e is 65537 (0x010001) Enter pass phrase: Verifying - Enter pass phrase: ※パスフレーズを設定しないと進まないので入力する(後作業で使用するので忘れない)
1.2 秘密鍵からパスフレーズを削除する openssl rsa -in server.key -out server.key Enter pass phrase for server.key: writing RSA key
1.3 証明書の作成 openssl req -utf8 -new -key server.key -out server.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:TOKYO Locality Name (eg, city) [Default City]:TOKYO Organization Name (eg, company) [Default Company Ltd]:Test Company Organizational Unit Name (eg, section) []:tech dept Common Name (eg, your name or your server's hostname) []:ldap.test.local Email Address []:admin@test.local Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: [root@localhost certs]#
1.4 有効期限10年の自己署名証明書にする openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 Signature ok subject=C = JP, ST = TOKYO, L = TOKYO, O = Test Company, OU = tech dept, CN = ldap.test.local, emailAddress = admin@test.local Getting Private key
1.5 パーミッションを変更 chmod 600 server.key 一旦ホームディレクトリに移動した方が以降の作業はやり易い。
1.6 OpenLDAPのインストール dnf --enablerepo=powertools -y install openldap-servers openldap-clients Rocky Linux 8 - PowerTools 1.8 MB/s | 2.7 MB 00:01 メタデータの期限切れの最終確認: 0:00:01 前の 2024年02月24日 06時06分29秒 に実施しました。 依存関係が解決しました。 ============================================================================================================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ============================================================================================================================================================================================================================================================================== インストール: openldap-clients x86_64 2.4.46-18.el8 baseos 201 k openldap-servers x86_64 2.4.46-18.el8 powertools 2.2 M トランザクションの概要 ============================================================================================================================================================================================================================================================================== インストール 2 パッケージ ダウンロードサイズの合計: 2.4 M インストール後のサイズ: 5.4 M パッケージのダウンロード: (1/2): openldap-clients-2.4.46-18.el8.x86_64.rpm 1.9 MB/s | 201 kB 00:00 (2/2): openldap-servers-2.4.46-18.el8.x86_64.rpm 6.4 MB/s | 2.2 MB 00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 合計 1.9 MB/s | 2.4 MB 00:01 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 scriptletの実行中: openldap-servers-2.4.46-18.el8.x86_64 1/2 インストール中 : openldap-servers-2.4.46-18.el8.x86_64 1/2 scriptletの実行中: openldap-servers-2.4.46-18.el8.x86_64 1/2 インストール中 : openldap-clients-2.4.46-18.el8.x86_64 2/2 scriptletの実行中: openldap-clients-2.4.46-18.el8.x86_64 2/2 [/usr/lib/tmpfiles.d/slapd.conf:2] Line references path below legacy directory /var/run/, updating /var/run/openldap → /run/openldap; please update the tmpfiles.d/ drop-in file accordingly. 検証 : openldap-clients-2.4.46-18.el8.x86_64 1/2 検証 : openldap-servers-2.4.46-18.el8.x86_64 2/2 インストール済み: openldap-clients-2.4.46-18.el8.x86_64 openldap-servers-2.4.46-18.el8.x86_64 完了しました!
1.7 テンプレートファイルを使ってOpenLDAP(slape)を起動 cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap. /var/lib/ldap/DB_CONFIG systemctl enable --now slapd Created symlink /etc/systemd/system/openldap.service → /usr/lib/systemd/system/slapd.service. Created symlink /etc/systemd/system/multi-user.target.wants/slapd.service → /usr/lib/systemd/system/slapd.servic systemctl status slapd Created symlink /etc/systemd/system/openldap.service → /usr/lib/systemd/system/slapd.service. Created symlink /etc/systemd/system/multi-user.target.wants/slapd.service → /usr/lib/systemd/system/slapd.service. [root@ldap ~]# systemctl status slapd ● slapd.service - OpenLDAP Server Daemon Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2024-02-24 06:08:36 EST; 12s ago Docs: man:slapd man:slapd-config man:slapd-hdb man:slapd-mdb file:///usr/share/doc/openldap-servers/guide.html Process: 49261 ExecStart=/usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// ldapi:/// (code=exited, status=0/SUCCESS) Process: 49247 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS) Main PID: 49262 (slapd) Tasks: 2 (limit: 100410) Memory: 3.1M CGroup: /system.slice/slapd.service mq49262 /usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// ldapi:/// 2月 24 06:08:36 ldap.test.local systemd[1]: Starting OpenLDAP Server Daemon... 2月 24 06:08:36 ldap.test.local runuser[49250]: pam_unix(runuser:session): session opened for user ldap by (uid=0) 2月 24 06:08:36 ldap.test.local runuser[49250]: pam_unix(runuser:session): session closed for user ldap 2月 24 06:08:36 ldap.test.local slapd[49261]: @(#) $OpenLDAP: slapd 2.4.46 (Oct 11 2021 21:12:19) $ mockbuild@ord1-prod-x86build002.svc.aws.rockylinux.org:/builddir/build/BUILD/openldap-2.4.46/openldap-2.4.46/servers/slapd 2月 24 06:08:36 ldap.test.local slapd[49262]: slapd starting 2月 24 06:08:36 ldap.test.local systemd[1]: Started OpenLDAP Server Daemon.
1.8 OpenLDAP 特権DNのパスワード(olcRootPW)のパスワード設定 slappasswd New password: Re-enter new password: {SSHA}cVJn1+2TiPmBdvCWblQbI6sPvTRVqKsz vi chrootpw.ldif dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}cVJn1+2TiPmBdvCWblQbI6sPvTRVqKsz :wq! 実行します。 ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={0}config,cn=config
1.9 スキーマの追加 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" 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"
1.10 ドメインのパスワードの変更 slappasswd New password: Re-enter new password: {SSHA}uqIixXP6s2w+pYNejbneNs2lVbuGfnWQ vi chdomain.ldif 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=test,dc=local" read by * none dn: olcDatabase={2}mdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=test,dc=local dn: olcDatabase={2}mdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=test,dc=local dn: olcDatabase={2}mdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}uqIixXP6s2w+pYNejbneNs2lVbuGfnWQ dn: olcDatabase={2}mdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=test,dc=local" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=test,dc=local" write by * read :wq!
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={1}monitor,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config"
1.11 baseドメイン用ldif作成 vi basedomain.ldif dn: dc=test,dc=local objectClass: top objectClass: dcObject objectclass: organization o: Test Company dc: test dn: cn=Manager,dc=test,dc=local objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=test,dc=local objectClass: organizationalUnit ou: People dn: ou=Group,dc=test,dc=local objectClass: organizationalUnit ou: Group :wq! 取り込み実行 ldapadd -x -D cn=Manager,dc=test,dc=local -W -f basedomain.ldif Enter LDAP Password: adding new entry "dc=test,dc=local" adding new entry "cn=Manager,dc=test,dc=local" adding new entry "ou=People,dc=test,dc=local" adding new entry "ou=Group,dc=test,dc=local"
1.12 SlapdのTLS設定 cp /etc/pki/tls/certs/server.key /etc/pki/tls/certs/server.crt /etc/pki/tls/certs/ca-bundle.crt /etc/openldap/certs/ chown ldap. /etc/openldap/certs/server.key /etc/openldap/certs/server.crt /etc/openldap/certs/ca-bundle.crt TLS用ldifの作成 vi mod_ssl.ldif dn: cn=config changetype: modify add: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt - replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/server.crt - replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/server.key :wq! TLS用ldifの実行 ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config" Slapdの再起動 systemctl restart slapd Firewallの許可 firewall-cmd --add-service={ldap,ldaps} success firewall-cmd --runtime-to-permanent success
1.13 ldapsのエラーを解消。 自己証明書にシンボリックリンクを設定します。 ln -s /etc/openldap/certs/server.crt /etc/openldap/certs/`openssl x509 -noout -hash -in /etc/openldap/certs/server.crt`.0 /etc/openldap/ldap.confにしたの一行を追加します。 TLS_CACERTDIR /etc/openldap/certs/ Slapdの再起動 systemctl restart slapd LDAPを検索してディレクトリの戻り値が帰ってくることを確認します。 ldapsearch -x -D "cn=Manager,dc=test,dc=local" -W -b "dc=test,dc=local" -H ldaps:/// Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=test,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # test.local dn: dc=test,dc=local objectClass: top objectClass: dcObject objectClass: organization o: Test Company dc: test # Manager, test.local dn: cn=Manager,dc=test,dc=local objectClass: organizationalRole cn: Manager description: Directory Manager # People, test.local dn: ou=People,dc=test,dc=local objectClass: organizationalUnit ou: People # Group, test.local dn: ou=Group,dc=test,dc=local objectClass: organizationalUnit ou: Group # search result search: 2 result: 0 Success # numResponses: 5 # numEntries: 1.14 オブジェクトクラス「ldapPublicKey」をスキーマ登録します。 yum install openssh-ldap メタデータの期限切れの最終確認: 18:07:54 前の 2024年02月24日 08時18分40秒 に実施しました。 依存関係が解決しました。 ====================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ====================================================================================================================================================== インストール: openssh-ldap x86_64 8.0p1-19.el8_9.2 baseos 133 k トランザクションの概要 ====================================================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 133 k インストール後のサイズ: 101 k これでよろしいですか? [y/N]: y パッケージのダウンロード: openssh-ldap-8.0p1-19.el8_9.2.x86_64.rpm 4.9 kB/s | 133 kB 00:27 ------------------------------------------------------------------------------------------------------------------------------------------------------ 合計 4.8 kB/s | 133 kB 00:27 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : openssh-ldap-8.0p1-19.el8_9.2.x86_64 1/1 scriptletの実行中: openssh-ldap-8.0p1-19.el8_9.2.x86_64 1/1 検証 : openssh-ldap-8.0p1-19.el8_9.2.x86_64 1/1 インストール済み: openssh-ldap-8.0p1-19.el8_9.2.x86_64 完了しました! openssh-lpk-openldap.ldifの場所を確認してください。 OSやバージョンによって保存場所がことなるため、特定しておきます。 ls -la /usr/share/doc/openssh-ldap/openssh-lpk-openldap.ldif -rw-r--r--. 1 root root 693 1月 30 12:04 /usr/share/doc/openssh-ldap/openssh-lpk-openldap.ldif この環境では/usr/share/doc/openssh-ldap/配下にopenssh-lpk-openldap.ldifはありました。 openssh-lpk-openldap.ldifの内容を登録します。 ldapadd -Y EXTERNAL -H ldapi:/// -f /usr/share/doc/openssh-ldap/openssh-lpk-openldap.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=openssh-lpk,cn=schema,cn=config" 以下のコマンドで、「sshPublicKey」と「ldapPublicKey」が登録されたか確認してください。 ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'cn=config' '(objectClass=olcSchemaConfig)' 中略 dn: cn={4}openssh-lpk,cn=schema,cn=config objectClass: olcSchemaConfig cn: {4}openssh-lpk olcAttributeTypes: {0}( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey' DES C 'MANDATORY: OpenSSH Public key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4. 1.1466.115.121.1.40 ) olcObjectClasses: {0}( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' DESC 'MANDATORY: OpenSSH LPK objectclass' SUP top AUXILIARY MUST ( sshPublicKey $ uid ) )
1.15 LDAPユーザの追加 slappasswd New password: Re-enter new password: {SSHA}ve1LCT3CjT5/nrx72FCBj4I0sNa+p64h vi user01.ldif dn: uid=user01,ou=People,dc=test,dc=local objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Rocky sn: UNIX userPassword: {SSHA}ve1LCT3CjT5/nrx72FCBj4I0sNa+p64h loginShell: /bin/bash uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/user01 dn: cn=user01,ou=Group,dc=test,dc=local objectClass: posixGroup cn: Rocky gidNumber: 1001 memberUid: uid1001 :wq! idifを実行して登録。 ldapadd -x -D "cn=Manager,dc=test,dc=local" -W -f user01.ldif Enter LDAP Password: adding new entry "uid=user01,ou=People,dc=test,dc=local" adding new entry "cn=user01,ou=Group,dc=test,dc=local" 結果を検索。 ldapsearch -x -D "uid=user01,ou=People,dc=test,dc=local" -W -b "d c=test,dc=local" "uid=user01" Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=test,dc=local> with scope subtree # filter: uid=user01 # requesting: ALL # # user01, People, test.local dn: uid=user01,ou=People,dc=test,dc=local objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Rocky sn: UNIX userPassword:: e1NTSEF9dmUxTENUM0NqVDUvbnJ4NzJGQ0JqNEkwc05hK3A2NGg= loginShell: /bin/bash uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/user01 uid: user01 # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
1.16 ssh-keygenコマンドでssh公開鍵/秘密鍵の生成 ※TeraTermはバージョンによりうまくいかなかったため、LDAPサーバでの作成を推奨 ssh-keygen -f /home/user01 Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user01. Your public key has been saved in /home/user01.pub. The key fingerprint is: SHA256:JQyK2Nsc+ZtvVJrxwFu0s33OHE7Qzb0KIvYdG+MtwvI root@ldap.test.local The key's randomart image is: +---[RSA 3072]----+ | . | | o . o o . | |. o + .o... . o.| | + o +o= . . +| | . o . SX + . .| | ==.o=. +. | | +.+ + BB.. | | o.+ = o= | | .+E. . | +----[SHA256]-----+ ※暗号会をed25519でパスフレーズを使用したい場合、 ssh-keygen -t ed25519 -f /tmp/id_ed25519 -N "パスフレーズ"としてください。サンプルはrsa鍵が作成されます。 公開鍵を見る cat /tmp/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH9lVlP/I9XHFY/Ifiom9aqX7qKjWUJC9VKN2InfNV6D root@ldap.test.local 公開鍵の情報をLDAPに登録する。 vi ldapusermod.ldif dn: uid=user01,ou=People,dc=test,dc=local changetype: modify add: objectClass objectClass: ldapPublicKey - add: sshPublicKey sshPublicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPHQPN0MFtE6xMhmr/3R1TdJVdjgbIOi/JcNZJ4a3BfPzkCrbjE+KVugF+zqKopNt/xmkanCW6RZBe+80lqs2LD8+v5Nwf+jbyfpo6HVN+5KVMvYEX7tR9G8HKXb6/Y1snz3IriaDyEzBKSw7DC8TJqK7db5xJ9xTYY257AprKNyJw8Ht3nm8Xy06vUse5UiAtMDGAyJMYzpHoF5mrtdxV3tZ85duCgBr10GVd7PFtYbwXhtjRRq28w5fE/SLaZatH9tMIcRgxYInnywEfnaO7oiD6HegybnflsdUOlktikpjNi5CXwbc+eoxDNGrEySMu+5c4PFUMkElDF3u1214jQT40gZYHB+oVN/EJADccU4Ugs2K5vk1TWrJ6oPvYuZZ/OynVUbR9G5+2iJLD4Y5UfyjpQdoKarrfLqvRR4bYtWmnlqt3qqueosrarmDOuqJwCh7adHNRmz64hxKfuRM+W3ZGB1+hXrZ+/u8RZ6XQeugEum2fqV6EpjRebp7XzT0= :wq! ldapadd -x -D "cn=Manager,dc=test,dc=local" -W -f ldapusermod.ldif Enter LDAP Password: modifying entry "uid=user01,ou=People,dc=test,dc=local" 検索してldappublickeyが更新されているか確認。 ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'dc=test,dc=local' 'uid=user01' SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: uid=user01,ou=People,dc=test,dc=local objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: ldapPublicKey cn: Rocky sn: UNIX loginShell: /bin/bash uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/user01 uid: user01 sshPublicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPHQPN0MFtE6xMhmr/3R1TdJVd jgbIOi/JcNZJ4a3BfPzkCrbjE+KVugF+zqKopNt/xmkanCW6RZBe+80lqs2LD8+v5Nwf+jbyfpo6H VN+5KVMvYEX7tR9G8HKXb6/Y1snz3IriaDyEzBKSw7DC8TJqK7db5xJ9xTYY257AprKNyJw8Ht3nm 8Xy06vUse5UiAtMDGAyJMYzpHoF5mrtdxV3tZ85duCgBr10GVd7PFtYbwXhtjRRq28w5fE/SLaZat H9tMIcRgxYInnywEfnaO7oiD6HegybnflsdUOlktikpjNi5CXwbc+eoxDNGrEySMu+5c4PFUMkElD F3u1214jQT40gZYHB+oVN/EJADccU4Ugs2K5vk1TWrJ6oPvYuZZ/OynVUbR9G5+2iJLD4Y5UfyjpQ doKarrfLqvRR4bYtWmnlqt3qqueosrarmDOuqJwCh7adHNRmz64hxKfuRM+W3ZGB1+hXrZ+/u8RZ6 XQeugEum2fqV6EpjRebp7XzT0= /home/user01/.sshを作成して公開鍵をauthorizedkeysにリネームして保存 .sshのパーミッションは700・authorizedkeysは600にしてください。
2.LDAPクライアント
2.1 LDAPクラインとをインストール yum -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir メタデータの期限切れの最終確認: 1:02:43 前の 2024年02月25日 14時25分18秒 に実施しました。 パッケージ sssd-2.9.1-4.el9_3.5.x86_64 は既にインストールされています。 パッケージ sssd-ldap-2.9.1-4.el9_3.5.x86_64 は既にインストールされています。 依存関係が解決しました。 ===================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ===================================================================================================== インストール: oddjob-mkhomedir x86_64 0.34.7-7.el9 appstream 26 k openldap-clients x86_64 2.6.3-1.el9 baseos 172 k 依存関係のインストール: oddjob x86_64 0.34.7-7.el9 appstream 63 k トランザクションの概要 ===================================================================================================== インストール 3 パッケージ ダウンロードサイズの合計: 261 k インストール後のサイズ: 846 k パッケージのダウンロード: (1/3): openldap-clients-2.6.3-1.el9.x86_64.rpm 2.5 MB/s | 172 kB 00:00 (2/3): oddjob-mkhomedir-0.34.7-7.el9.x86_64.rpm 281 kB/s | 26 kB 00:00 (3/3): oddjob-0.34.7-7.el9.x86_64.rpm 563 kB/s | 63 kB 00:00 ----------------------------------------------------------------------------------------------------- 合計 223 kB/s | 261 kB 00:01 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : oddjob-0.34.7-7.el9.x86_64 1/3 scriptletの実行中: oddjob-0.34.7-7.el9.x86_64 1/3 インストール中 : oddjob-mkhomedir-0.34.7-7.el9.x86_64 2/3 scriptletの実行中: oddjob-mkhomedir-0.34.7-7.el9.x86_64 2/3 インストール中 : openldap-clients-2.6.3-1.el9.x86_64 3/3 scriptletの実行中: openldap-clients-2.6.3-1.el9.x86_64 3/3 検証 : openldap-clients-2.6.3-1.el9.x86_64 1/3 検証 : oddjob-mkhomedir-0.34.7-7.el9.x86_64 2/3 検証 : oddjob-0.34.7-7.el9.x86_64 3/3 インストール済み: oddjob-0.34.7-7.el9.x86_64 oddjob-mkhomedir-0.34.7-7.el9.x86_64 openldap-clients-2.6.3-1.el9.x86_64 2.2 LDAPクライアントの認証をsssdにします。 SSSD(System Security Services Daemon)は認証クライアントで、Linux上で外部のディレクトリサービスへのアクセスや認証機能の利用を可能にする. authselect select sssd with-mkhomedir --force バックアップは /var/lib/authselect/backups/2024-02-25-06-29-48.WphC4S に保存されました プロファイル "sssd" が設定されました。 以下の nsswitch マップはプロファイルで上書きされます: - passwd - group - netgroup - automount - services Make sure that SSSD service is configured and enabled. See SSSD documentation for more information. - with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module is present and oddjobd service is enabled and active - systemctl enable --now oddjobd.servic LDAPクライアントの/etc/openldap/ldap.confに以下の2行のエントリを追加します。 URI ldap://192.168.11.5 BASE dc=test,dc=local SSSDの設定ファイルを作成します。 vi /etc/sssd/sssd.conf [sssd] debug_level = 0 config_file_version = 2 services = nss, sudo, pam, ssh domains = default [domain/default] id_provider = ldap auth_provider = ldap chpass_provider = ldap sudo_provider = ldap ldap_uri = ldap://192.168.11.4 ldap_search_base = dc=test,dc=local ldap_id_use_start_tls = False ldap_search_timeout = 3 ldap_network_timeout = 3 ldap_opt_timeout = 3 ldap_enumeration_search_timeout = 60 ldap_enumeration_refresh_timeout = 300 ldap_connection_expire_timeout = 600 ldap_sudo_smart_refresh_interval = 600 ldap_sudo_full_refresh_interval = 10800 entry_cache_timeout = 1200 cache_credentials = True ldap_tls_reqcert = never [nss] homedir_substring = /home entry_negative_timeout = 20 entry_cache_nowait_percentage = 50 [pam] [sudo] [autofs] [ssh] [pac] sssh.confに指定のパーミッションを設定する。 chmod 600 /etc/sssd/sssd.conf sssdサービスを再起動 systemctl restart sssd oddjobd sssdサービスをOS起動時に自動起動 systemctl enable sssd oddjobd Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service → /usr/lib/systemd/system/oddjobd.service. 2.3 ssh_configの変更 /etc/ssh/sshd_configファイルで以下の3点を変更(初期値は♯コメントアウトの値) PubkeyAuthentication yes AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser root
3.クライアントPC
TeraTerm5.1を使用(4バージョンだと仕様のため失敗します)してLDAPクライアントにsshでアクセスする。
以下の感じでLDAPクライアントにログインできれば成功です。
ご参考まで