ldaps認証がrhel10でも使えるんかを試してく。
ldapサーバはdockerコンテナで作成して、sssdの設定をrhel10で試すのが主な作業。
rhelが一般向けソースコード非公開
みたいな記事が前に出てたから、rocky/almalinux/fedoraみたいなrhelクローンOSは検証に使えんって思った。
こういう方針になってまうと、いろんな開発者のええとこ取りができなくなって、1企業の開発に寄ってまうから、MS-windowsと同じ感じの品質になってくんとちゃうか。
接続元のrhel10は最近vmwareの中で作ったから、そこから設定してく。
rhel9からrhel10の相違点
にsssdのこと挙がってる。
1
2
3
4
5
6
SSSD は、DNS-over-TLS (DoT) を使用してすべての動的 DNS (dyndns) クエリーを実行することをサポートするようになりました。
:(中略)
SSSD ファイルプロバイダーが削除される
:(中略)
nscd が systemd-resolved と sssd に置き換えられる
:(中略)
DNS-over-TLS (DoT)
ってのはdnsの問い合わせと応答をTLSでラップするらしい。
telnetがssh、httpがhttps、ldapがldapsやからdnsもtlsでラップするって発想かいな。めんどくさ。
ファイルプロバイダは使ってへんから放置でええやろし、nscdはrhel7までに使ってた認証の仕組みの一部やから消えてくれてええ。
たぶんrhel9のときと同じ設定でldaps認証できるんとちゃうか。
openldapをdokcerコンテナで稼働させておき、rhel10ホストにsssd(System Security Services Daemon)設定を入れてssh接続するとこうなる。
ldapサーバ側はphpldapadmin経由で、centos8のときに作ったldifデータを流し込んだ。
フロントエンドで使うのはmacminiの中にutmで仮想化したmacos(sequoia)。
windowsホストの中で動いてる普段利用のubuntu24の中に、openldapコンテナを作る。
dockerあるとcompose.ymlを数行書くだけでサーバ作れるからめっちゃ楽。終わったらコンテナ潰したらええだけ。
djangoやmariadbを使っててもメモリに余裕はあるから、compose.ymlを一時的に追記してopenldap用に用意しとく。
rhel10を臨時で作ったので、ここからsssd使って認証できるかをやってく。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<-----macmini sequoia----------> <--------------- VMware on Windows11 pro --------stg-->
+-utm----------------------+ +-local ubuntu24 linux-+
| +-sequoia-------------+ | | +-docker---------+ |
| | vscode/cyberduck | | | | +-container-+ | |
| | office/rdp | | | | | Django | | |
| +---------------------+ | | | +-----------+ | |
+--------------------------+ | | +-container-+ | |
| | | mariadb | | |
| | +-----------+ | |
| | +-container-+ | |
| | | xrdp-ubu24| | |
| | +-----------+ | |
| | +-container-+ | |
| | | https | | |
| | +-----------+ | |
| | +-container-+ | | +-local rhel10 linux-+
| | |⭐openldap| | | | ⭐️sssd |
| | +-----------+ | | +--------------------+
| +----------------+ |
+----------------------+
以前の構成確認#
centos8からldap認証
したときのopenldapコンテナ起動方法を同じように使う。
docker composeでLDAPSサーバ稼働させるからcompose.ymlにsv_ldap-serverとsv_ldap-adminのことを
このへん読み返して
コンテナとして動かす。
今回はrhelクローンやなくて、rhel10を使うからcl_red8・cl_red9のコンテナは作らん。
centos8からldaps認証
したときのsssd設定と、
rhel9クローンからのldaps認証
を踏まえてrhel10から
sssd
を設定して接続する。
このへんURLへのリンクばっかりになってもたな。
rhel10のsssd関連リンクはpdfで読みづらいけど、いつかhtmlになってくれるやろか。
openldapのコンテナ作る#
compose.ymlにこう追記する。ldifで流し込む認証情報は小さいし、検証目的やから永続化領域いらん。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sv_ldap-server:
image: osixia/openldap:latest
container_name: svldap-server
environment:
LDAP_ORGANISATION: "gvis"
LDAP_DOMAIN: "intra-gavann-it.com"
LDAP_ADMIN_PASSWORD: "hogehoge"
LDAP_TLS_VERIFY_CLIENT: "never"
ports:
- "11389:389" ⭐️こっちはldap、使わん
- "11636:636" ⭐️こっちがldaps
sv_ldap-admin:
image: osixia/phpldapadmin:latest
container_name: svldap-admin
environment:
PHPLDAPADMIN_LDAP_HOSTS: "ldap-host"
ports:
- "11802:443" ⭐️このポート番号をdockerホストにブラウザ接続で指定
depends_on:
- "sv_ldap-server"
links:
- sv_ldap-server:ldap-host
dockerStart.shにはdbから起動するようにdocker composeの記述があって、次に残りのコンテナ起動するようにしてる。
1
2
3
4
:( 中略)
/usr/bin/docker compose start sv_mariadb1104
/usr/bin/docker compose up --no-recreate -d
:( 中略)
こうして動かす。pullしてすぐ動く。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
nari@nafslinux-ubu24:/docker$ sh ./dockerStart.sh
[ +] Running 1/1
✔ Container docker-sv_mariadb1104-1 Started 0.1s
[ +] Running 20/20
✔ sv_ldap-admin Pulled 10.5s ⭐️がんばれー
✔ 1ab2bdfe9778 Pull complete 4.7s
✔ 0abcaf321aa9 Pull complete 4.7s
✔ 6d688c3d4e02 Pull complete 5.5s
✔ 454331b99b9a Pull complete 5.5s
✔ 5cada7c8cb4e Pull complete 5.5s
✔ 1c9252038144 Pull complete 7.6s
✔ 5b1bb72ef8f6 Pull complete 7.7s
✔ b7637df040ab Pull complete 7.7s
✔ f14c298e98cf Pull complete 7.7s
✔ sv_ldap-server Pulled 7.5s ⭐️がんばれー
✔ 45b42c59be33 Pull complete 2.5s
✔ ae7fb8f59730 Pull complete 2.5s
✔ 55443d9da5d5 Pull complete 3.5s
✔ edbb56ba2f49 Pull complete 3.5s
✔ 8690d28b09a7 Pull complete 3.5s
✔ 7f3b6edb2b51 Pull complete 4.6s
✔ 176dedf70b8e Pull complete 4.6s
✔ 036fb52cada7 Pull complete 4.6s
✔ 94404c4ec0d9 Pull complete 4.6s
[ +] Running 8/8 ⭐️ ldap以外のコンテナもがんばれー
✔ Container docker-sv_mariadb1104-1 Runnin... 0.0s
✔ Container svldap-server Started 0.6s
✔ Container svldap-admin Started 0.5s
✔ Container docker-sv_ora21-1 Started 0.4s
✔ Container docker-cl_ubu24gvis-1 Started 0.4s
✔ Container docker-sv_django-1 Started 0.4s
✔ Container docker-sv_jupyter-1 Started 0.2s
✔ Container docker-sv_https-portal-1 Start... 0.3s
nari@nafslinux-ubu24:/docker$
nari@nafslinux-ubu24:/docker$ docker compose ps | grep ldap ⭐️ポート転送もできてて動いたな
svldap-admin osixia/phpldapadmin:latest "/container/tool/run" sv_ldap-admin 5 minutes ago Up 5 minutes 0.0.0.0:11801->80/tcp, [ ::] :11801->80/tcp, 0.0.0.0:11802->443/tcp, [ ::] :11802->443/tcp
svldap-server osixia/openldap:latest "/container/tool/run" sv_ldap-server 5 minutes ago Up 5 minutes 0.0.0.0:11389->389/tcp, [ ::] :11389->389/tcp, 0.0.0.0:11636->636/tcp, [ ::] :11636->636/tcp
nari@nafslinux-ubu24:/docker$
動かした時のdocker statsで確認したメモリ消費具合はこんな感じ。1つ目と2つ目で動いとるし、他のコンテナも元気に稼働できとる。
1
2
3
4
5
6
7
8
9
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d7efa5a449c7 svldap-admin 0.01% 77.84MiB / 15.57GiB 0.49% 19kB / 126B 56.9MB / 266kB 139
57a6b64dd158 svldap-server 0.00% 33.21MiB / 15.57GiB 0.21% 19.5kB / 126B 27.1MB / 111kB 4
dd1ead7d45a7 docker-sv_jupyter-1 0.00% 110.3MiB / 15.57GiB 0.69% 19.4kB / 126B 54MB / 8.19kB 1
c0c580fb6ad1 docker-cl_ubu24gvis-1 0.00% 21.11MiB / 15.57GiB 0.13% 19.3kB / 126B 26.1MB / 45.1kB 2
3ef498a68b97 docker-sv_django-1 0.02% 62.26MiB / 15.57GiB 0.39% 17.5MB / 9.95kB 0B / 8.19kB 15
15bf3baf0e18 docker-sv_https-portal-1 2.06% 23.88MiB / 15.57GiB 0.15% 19.4kB / 126B 23.6MB / 418kB 18
006c5c958ee5 docker-sv_mariadb1104-1 0.01% 1.563GiB / 15.57GiB 10.04% 100kB / 70MB 1.41GB / 49.2kB 8
d3f828065784 docker-sv_ora21-1 2.65% 4.002GiB / 15.57GiB 25.70% 19.4kB / 390B 669MB / 69.2MB 107
ldapサーバとldapphpadminでメモリ110MBぐらい使うぐらい。nmonで見ても余裕あるしこのまま行っとく。
1
2
3
4
5
│ Memory and Swap ─ │
│ PageSize:4KB RAM-Memory Swap-Space High-Memory Low-Memory │
│ Total (MB) 15946.2 3868.0 - not in use - not in use │
│ Free (MB) 7202.9 3868.0 │
│ Free Percent 45.2% 100.0% │
ブラウザ開いてログインしてみたら、あれ失敗した・・・。認証失敗しよるやんけ。
少し考えて、もういっちょ。cn=adminって足した。
ログインできた。cn=adminってalmalinux9でやったときは書いてへんかったけど、なんでログインできてたんやろな。
ldapサーバのldifデータ#
前に3ユーザ登録して作ってphpldapadminからエクスポートしたことある。
これをdockerホストにつないで流し込んだらええ。
openldapのコンテナへphpldapadmin使ってインポートしたら、認証のための下準備ができる。
gvisExport.ldif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
version : 1
dn : dc=intra-gavann-it,dc=com ⭐️もうあるから、ここは失敗するはず
objectClass : dcObject
objectClass : organization
objectClass : top
dc : intra-gavann-it
o : gvis
dn : ou=gvis,dc=intra-gavann-it,dc=com
objectClass : organizationalUnit
objectClass : top
ou : gvis
dn : cn=gavann it,ou=gvis,dc=intra-gavann-it,dc=com
objectClass : inetOrgPerson
objectClass : posixAccount
objectClass : top
cn : gavann it
gidNumber : 7502
homeDirectory : /home/gavann-it
sn : it
uid : gavann-it ⭐️ユーザ1つめ
uidNumber : 2000
givenName : gavann
loginShell : /bin/bash
userPassword: : xxxxxxxxxxxxxxxxxxx
dn : cn=gvis-group,ou=gvis,dc=intra-gavann-it,dc=com
objectClass : posixGroup
objectClass : top
cn : gvis-group ⭐️グループ
gidNumber : 7502
dn : cn=gavann is,ou=gvis,dc=intra-gavann-it,dc=com
objectClass : inetOrgPerson
objectClass : posixAccount
objectClass : top
cn : gavann is
gidNumber : 7502
homeDirectory : /home/gavann-is
sn : it
uid : gavann-is ⭐️ユーザ2つめ
uidNumber : 2001
givenName : gavanns
loginShell : /bin/bash
userPassword: : xxxxxxxxxxxxxxxxxxx
dn : cn=gavann iu,ou=gvis,dc=intra-gavann-it,dc=com
objectClass : inetOrgPerson
objectClass : posixAccount
objectClass : top
cn : gavann iu
gidNumber : 7502
homeDirectory : /home/gavann-iu
sn : iu
uid : gavann-iu ⭐️ユーザ3つめ
uidNumber : 2002
givenName : gavann
loginShell : /bin/bash
userPassword: : xxxxxxxxxxxxxxxxxxx
phpldapadminに接続してインポート#
インポートしてみる。
最初のほうにあったdc=intra-gavann-it,dc=comの定義は既存やからエラーになるけど、他はインポートできる。これでええ。
ouの下にあるユーザとグループ見たらできとる。
作ったユーザに設定してた元々のパスワード忘れたから、3ユーザ分を設定しなおしとく。
ldapサーバから電子証明#
openldapの
readmeに書いてある
んやけど、dockerコンテナの中で自動作成された電子証明取ってくる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
nari@nafslinux-ubu24:/docker$ docker compose exec sv_ldap-server bash ⭐️コンテナにログインする
root@57a6b64dd158:/# cd /container/service/slapd/assets/certs/
root@57a6b64dd158:/container/service/slapd/assets/certs# ls -l
total 20
lrwxrwxrwx 1 openldap openldap 62 Sep 27 23:08 ca.crt -> /container/service/:ssl-tools/assets/default-ca/default-ca.pem
-rw------- 1 openldap openldap 424 Feb 19 2021 dhparam.pem
-rw-r--r-- 1 openldap openldap 1099 Sep 27 23:08 ldap.crt ⭐️あるやん
-rw------- 1 openldap openldap 288 Sep 27 23:08 ldap.key
-rw-rw-r-- 1 openldap openldap 173 Feb 19 2021 README.md
root@57a6b64dd158:/container/service/slapd/assets/certs# cp -p ./ldap.crt /tmp ⭐️/tmpにいったんコピー
root@57a6b64dd158:/container/service/slapd/assets/certs# exit
exit
nari@nafslinux-ubu24:/docker$ docker compose cp sv_ldap-server:/tmp/ldap.crt ./ ⭐️コンテナからローカルutuntuにコピー
[ +] Copying 1/1
✔ svldap-server copy svldap-server:/tmp/ldap.crt to ./ Copied 0.0s
nari@nafslinux-ubu24:/docker$ ls -l ldap.crt
-rw-r--r-- 1 nari nari 1099 9月 28 08:08 ldap.crt ⭐️取れた
nari@nafslinux-ubu24:/docker$
ubuntuはsmb公開領域持ってるから、docker compose cpしたファイルを移動してwindows側で確認してみると、前と同じ有効期間が1年の証明書ができとる。
実務では100年ぐらいの有効期間で電子証明作ってもらってたかな。
rhel10からldaps認証するための設定#
rhel10稼働させて、モジュールのインストールと電子証明の設置と、設定ファイル作成やってく。
dnfでインストール#
rhelはなんとなくdnfで競合起こす印象があるから怖いなぁ。関連するのを1つずつやってく。
1
2
3
4
5
6
7
# dnf clean all
# dnf update
# dnf install nmap
# dnf install openssl openldap-clients
# dnf install sssd sssd-tools sssd-ldap
# dnf install oddjob-mkhomedir
# dnf install authselect
ログ全部は省くけど、モジュールをインストールした結果に見えてたバージョンはこんな感じやった。
root@gvis-rhel10:~# dnf clean all
サブスクリプション管理リポジトリーを更新しています。
12 ファイルが削除されました
root@gvis-rhel10:~# dnf update
:(中略)
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
nmap-7.92-3.el10.x86_64.rpm 19 MB/s | 5.6 MB 00:00
:(中略)
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): openssl-3.2.2-16.el10_0.4.x86_64.rpm 3.6 MB/s | 1.1 MB 00:00
(2/3): openssl-libs-3.2.2-16.el10_0.4.x86_64.rpm 6.5 MB/s | 2.1 MB 00:00
(3/3): openldap-clients-2.6.8-3.el10.x86_64.rpm 61 kB/s | 188 kB 00:03
:(中略)
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): python3-sss-2.10.2-3.el10_0.2.x86_64.rpm 6.4 kB/s | 27 kB 00:04
(2/4): python3-sssdconfig-2.10.2-3.el10_0.2.noarch.rpm 17 kB/s | 75 kB 00:04
(3/4): sssd-dbus-2.10.2-3.el10_0.2.x86_64.rpm 28 kB/s | 129 kB 00:04
(4/4): sssd-tools-2.10.2-3.el10_0.2.x86_64.rpm 40 kB/s | 182 kB 00:04
:(中略)
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): oddjob-0.34.7-14.el10.x86_64.rpm 145 kB/s | 75 kB 00:00
(2/2): oddjob-mkhomedir-0.34.7-14.el10.x86_64.rpm 15 kB/s | 32 kB 00:02
:(中略)
パッケージ authselect-1.5.0-8.el10.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
root@gvis-rhel10:~#
sssd-ldapってパッケージはrhel10ではどっか行った? インストールした結果を見落としとるな。
1
2
3
root@gvis-rhel10:~# dnf list --installed | grep sssd-ldap
sssd-ldap.x86_64 2.10.2-3.el10_0.2 @rhel-10-for-x86_64-baseos-rpms
root@gvis-rhel10:~#
入っとった。
authselectのおまじない#
特にエラーなかったらそれでええ。
1
2
3
4
5
6
7
8
9
10
11
root@gvis-rhel10:~# authselect select sssd with-sudo with-mkhomedir --force
バックアップは /var/lib/authselect/backups/2025-09-29-21-05-01.lHteGw に保存されました
プロファイル "sssd" が設定されました。
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.service
root@gvis-rhel10:~#
ldapsのポート使えるか確認#
ldapsで使うポート番号は636。
docker composeで書いたcompose.ymlの中にこう書いたから、rhel10から見えるポート番号は11636や。
1
2
3
ports:
- "11389:389"
- "11636:636"
rhel10からldapsのポート使えるか確認してみる。
1
2
3
4
5
6
7
8
9
10
11
root@gvis-rhel10:~# nmap -p11636 -Pn nafslinux.intra.gavann-it.com
Starting Nmap 7.92 ( https://nmap.org ) at 2025-09-29 06:49 JST
Nmap scan report for nafslinux.intra.gavann-it.com ( 192.168.1.118)
Host is up ( 0.00032s latency) . ⭐️ldapsサーバ生きてるってよ
PORT STATE SERVICE
11636/tcp open unknown
MAC Address: 00:50:56:20:02:06 ( VMware)
Nmap done : 1 IP address ( 1 host up) scanned in 0.43 seconds
root@gvis-rhel10:~#
電子証明置く#
いったんwindows側に置いた電子証明をrhel10の/tmpに持ってく。
置いたファイルを/etc/openldap/certs/に移動させとく。
1
2
3
4
5
6
7
8
9
root@gvis-rhel10:~# cat /etc/os-release | grep PRETTY
PRETTY_NAME= "Red Hat Enterprise Linux 10.0 (Coughlan)"
root@gvis-rhel10:~# ls -l /tmp/ldap.crt
-rw-r--r-- 1 nari nari 1099 9月 28 08:08 /tmp/ldap.crt ⭐️持ってったファイル
root@gvis-rhel10:~# mv /tmp/ldap.crt /etc/openldap/certs/ ⭐️ここに置く
root@gvis-rhel10:~# ls -l /etc/openldap/certs/
合計 4
-rw-r--r-- 1 nari nari 1099 9月 28 08:08 ldap.crt ⭐️置けた
root@gvis-rhel10:~#
電子証明の正常性を確認#
ちゃんと使える内容になっているか確認。
7200秒待ってから応答が戻るので、timeout使って3秒で処理を切り上げる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
root@gvis-rhel10:/etc/openldap# timeout 3 openssl s_client -connect nafslinux.intra.gavann-it.com:11636 ⭐️3秒で戻ってこいや
Connecting to 192.168.1.118
CONNECTED( 00000003)
depth= 1 C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= docker-light-baseimage
verify error:num= 19:self-signed certificate in certificate chain ⭐️errorで19って戻るのは自己証明やからやな
verify return :1
depth= 1 C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= docker-light-baseimage
verify return :1
depth= 0 C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= 57a6b64dd158
verify return :1
---
Certificate chain
0 s:C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= 57a6b64dd158
i:C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= docker-light-baseimage
a:PKEY: id-ecPublicKey, 384 ( bit) ; sigalg: ecdsa-with-SHA384
v:NotBefore: Sep 27 23:03:00 2025 GMT; NotAfter: Sep 27 23:03:00 2026 GMT
:( 中略)
subject= C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= 57a6b64dd158
issuer= C= US, ST= New Mexico, L= Albuquerque, O= A1A Car Wash, OU= Information Technology Dep., CN= docker-light-baseimage
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ECDSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1785 bytes and written 417 bytes
Verification error: self-signed certificate in certificate chain ⭐️errorで戻るのは自己証明やから
---
New, TLSv1.2, Cipher is ECDHE-ECDSA-AES256-GCM-SHA384
Server public key is 384 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session: ⭐️電子証明認識してそう
Protocol : TLSv1.2
Cipher : ECDHE-ECDSA-AES256-GCM-SHA384
Session-ID: 2AE300C216BADA0BF504802EABBC9E22C84B95739EB1C8617600AB30BB914CEF
Session-ID-ctx:
Master-Key: 5D0D50DACD0C4119BA13018602964E14AF31342DCE007C9B332EAD9944372DF38DE5F5EFA81D238A648C1E06EB616C5E
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1759178513
Timeout : 7200 ( sec) ⭐️2時間待ちよるねん
Verify return code: 19 ( self-signed certificate in certificate chain)
Extended master secret: yes
---
root@gvis-rhel10:/etc/openldap#
設定ファイル#
almalinux9でやったのと同じ設定してく。
ldapクライアントの設定#
openldapサーバから見たrhel10はldapクライアント。
viで開いて貼り付けとく。
ldapsのURIに指定するのは、docker composeで動かしてるホスト名にポート番号くっつけて書いとく。
/etc/openldap/ldap.conf
1
2
3
TLS_CACERT /etc/openldap/certs/ldap.crt ⭐️設置した電子証明のフルパス
URI ldaps://nafslinux.intra.gavann-it.com:11636 ⭐️dockerの親ホスト名と公開してるldapsのポート番号書く
BASE dc=intra-gavann-it,dc=com ⭐️ベース定義名前そのまま
sssdの設定#
/etc/sssd/sssd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[sssd]
debug_level = 4
services = nss, pam, ifp, sudo
domains = gvis
[nss]
homedir_substring = /home
filter_groups = root
filter_users = root
[pam]
[sudo]
[domain/gvis]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
sudo_provider = ldap
autofs_provider = ldap
cache_credentials = True
case_sensitive = False
ldap_uri = ldaps://nafslinux.intra.gavann-it.com:11636 ⭐️ldaps指定、dockerコンテナの公開ポートも書く
ldap_search_base = ou=gvis, dc=intra-gavann-it,dc=com
ldap_default_bind_dn = cn=admin, dc=intra-gavann-it,dc=com
ldap_tls_cacert = /etc/openldap/certs/ldap.crt ⭐️設置した証明書を指定
ldap_id_use_start_tls = True ⭐️ldapsのための設定
ldap_tls_reqcert = never ⭐️自己証明書のための設定
access_provider = permit ⭐️こっからはsss_obfuscate使って追記
resolver_provider = ldap
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
最後の4行はコマンドラインで追記する。パスワードはさっきのphpwebadminにログインするときのパスワードでええ。
1
2
3
4
root@gvis-rhel10:/etc/openldap# sss_obfuscate -d gvis
Enter password:
Re-enter password:
root@gvis-rhel10:/etc/openldap#
sssd.confはパーミッションいじって、sssdとoddjobdのサービス再起動する。
oddjobdはldap認証ユーザがログインしたとき、ユーザのフォルダ/home/xxxがなかったら用意してくれる役割やったかな。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
root@gvis-rhel10:~# chmod 600 /etc/sssd/sssd.conf ⭐️パーミッションいじる
root@gvis-rhel10:~# systemctl restart sssd.service ⭐️sssd.confを反映して再起動してちょ
root@gvis-rhel10:~# systemctl status sssd.service
● sssd.service - System Security Services Daemon
Loaded: loaded ( /usr/lib/systemd/system/sssd.service; enabled; preset: enabled)
Active: active ( running) since Tue 2025-09-30 05:54:52 JST; 21s ago
Invocation: 6f33b20cb09d4743a446d48b6055dc70
Process: 22543 ExecStartPre= /bin/chown -f -R -H root:sssd /etc/sssd ( code= exited, status= 0/SUCC>
Process: 22545 ExecStartPre= /bin/chmod -f -R g+r /etc/sssd ( code= exited, status= 0/SUCCESS)
Process: 22547 ExecStartPre= /bin/chmod -f g+x /etc/sssd ( code= exited, status= 0/SUCCESS)
Process: 22549 ExecStartPre= /bin/chmod -f g+x /etc/sssd/conf.d ( code= exited, status= 0/SUCCESS)
Process: 22551 ExecStartPre= /bin/chmod -f g+x /etc/sssd/pki ( code= exited, status= 0/SUCCESS)
Process: 22553 ExecStartPre= /bin/sh -c /bin/chown -f -h sssd:sssd /var/lib/sss/db/*.ldb ( code= e>
Process: 22555 ExecStartPre= /bin/chown -f -R -h sssd:sssd /var/lib/sss/gpo_cache ( code= exited, >
Process: 22557 ExecStartPre= /bin/sh -c /bin/chown -f -h sssd:sssd /var/log/sssd/*.log ( code= exi>
Main PID: 22559 ( sssd)
Tasks: 6 ( limit: 22731)
Memory: 47.4M ( peak: 47.7M)
CPU: 99ms
CGroup: /system.slice/sssd.service
├─22559 /usr/sbin/sssd -i --logger= files
├─22560 /usr/libexec/sssd/sssd_be --domain gvis --logger= files
├─22561 /usr/libexec/sssd/sssd_nss --logger= files
├─22562 /usr/libexec/sssd/sssd_pam --logger= files
├─22563 /usr/libexec/sssd/sssd_ifp --logger= files
└─22564 /usr/libexec/sssd/sssd_sudo --logger= files
9月 30 05:54:52 gvis-rhel10 systemd[ 1] : Starting sssd.service - System Security Services Daemon...
9月 30 05:54:52 gvis-rhel10 sssd[ 22559] : Starting up
9月 30 05:54:52 gvis-rhel10 sssd_be[ 22560] : Starting up
9月 30 05:54:52 gvis-rhel10 sssd_nss[ 22561] : Starting up
9月 30 05:54:52 gvis-rhel10 sssd_sudo[ 22564] : Starting up
9月 30 05:54:52 gvis-rhel10 sssd_pam[ 22562] : Starting up
9月 30 05:54:52 gvis-rhel10 sssd_ifp[ 22563] : Starting up
9月 30 05:54:52 gvis-rhel10 systemd[ 1] : Started sssd.service - System Security Services Daemon.
root@gvis-rhel10:~# systemctl enable oddjobd ⭐️oddjobdサービス有効にする
Created symlink '/etc/systemd/system/multi-user.target.wants/oddjobd.service' → '/usr/lib/systemd/system/oddjobd.service' .
root@gvis-rhel10:~# systemctl status oddjobd
○ oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded ( /usr/lib/systemd/system/oddjobd.service; enabled; preset: disabled)
Active: inactive ( dead)
root@gvis-rhel10:~# systemctl start oddjobd
root@gvis-rhel10:~# systemctl status oddjobd ⭐️起動状態にエラーなさそうや
● oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded ( /usr/lib/systemd/system/oddjobd.service; enabled; preset: disabled)
Active: active ( running) since Tue 2025-09-30 06:00:10 JST; 28s ago
Invocation: daa322d650854e3ba3b14caaa6eff8f6
Main PID: 22674 ( oddjobd)
Tasks: 1 ( limit: 22731)
Memory: 580K ( peak: 1M)
CPU: 4ms
CGroup: /system.slice/oddjobd.service
└─22674 /usr/sbin/oddjobd -n -p /run/oddjobd.pid -t 300
9月 30 06:00:10 gvis-rhel10 systemd[ 1] : Started oddjobd.service - privileged operations for unpriv>
root@gvis-rhel10:~#
設定ファイルがうまいこと書けてへんと、systemctl statusの結果にエラーが入る。
気合いと根性で書き直してサービス起動できるまでがんばらなアカン。
sshdの設定#
sshdの接続許可設定を追記。これやっとかなローカル定義のOSユーザは接続できても、ldap認証したユーザで接続できんかったんとちゃうかな。
サービス再起動もやっとく。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@gvis-rhel10:/etc/ssh# systemctl restart sshd
root@gvis-rhel10:/etc/ssh# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded ( /usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active ( running) since Tue 2025-09-30 06:12:41 JST; 8s ago
Invocation: 257c97f71c974787964a9744dcee6ae7
Docs: man:sshd( 8)
man:sshd_config( 5)
Main PID: 22838 ( sshd)
Tasks: 1 ( limit: 22731)
Memory: 1M ( peak: 1.2M)
CPU: 5ms
CGroup: /system.slice/sshd.service
└─22838 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
9月 30 06:12:41 gvis-rhel10 systemd[ 1] : Starting sshd.service - OpenSSH server daemon...
9月 30 06:12:41 gvis-rhel10 ( sshd)[ 22838] : sshd.service: Referenced but unset environment variable>
9月 30 06:12:41 gvis-rhel10 sshd[ 22838] : Server listening on 0.0.0.0 port 22.
9月 30 06:12:41 gvis-rhel10 systemd[ 1] : Started sshd.service - OpenSSH server daemon.
9月 30 06:12:41 gvis-rhel10 sshd[ 22838] : Server listening on :: port 22.
root@gvis-rhel10:/etc/ssh#
macからssh接続しながら、sshdデーモン再起動しても接続切れへんのはいつも不思議。
レガシー設定#
DEFAULT設定になってるか確認。やらんけど、legacyに変更したらldapsやのうてldap使える。
1
2
3
root@gvis-rhel10:~# update-crypto-policies --show
DEFAULT
root@gvis-rhel10:~#
rhel8あたりからセキュリティ設定は厳しめになってたはず。
ポート番号変わるけど、ldapsやのうてldapでつなぐときに
レガシー設定することある。
ssh接続前の確認#
sssdからldapsへのオンライン確認と認証情報取得できるかの確認。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@gvis-rhel10:~# sssctl domain-status gvis
Online status: Online ⭐️つながっとるな
Active servers:
LDAP: nafslinux.intra.gavann-it.com
Discovered LDAP servers:
- nafslinux.intra.gavann-it.com ⭐️dockerの親ホスト名がldapサーバとして見えとる
root@gvis-rhel10:~#
root@gvis-rhel10:~# getent passwd gavann-it
gavann-it:*:2000:7502:gavann it:/home/gavann-it:/bin/bash ⭐️ldifファイルをインポートしたユーザ見えとる
root@gvis-rhel10:~# getent passwd gavann-is
gavann-is:*:2001:7502:gavann is:/home/gavann-is:/bin/bash ⭐️ldifファイルをインポートしたユーザ見えとる
root@gvis-rhel10:~# getent passwd gavann-iu
gavann-iu:*:2002:7502:gavann iu:/home/gavann-iu:/bin/bash ⭐️ldifファイルをインポートしたユーザ見えとる
root@gvis-rhel10:~#
Onlineって返ってきてgetentで情報取れとるな。ここまで来たらsshでほぼ接続できる。
もしも設定ファイルやldapサーバと連携うまく行ってなかったり、わけわかめな状態になったら
キャッシュの削除
やったらええ。
ここまでストレートに来てるからやらんでもええけど、キャッシュ削除やってみたらこうなる。
1
2
3
4
5
6
root@gvis-rhel10:~# sssctl cache-remove
SSSD must not be running. Stop SSSD now? ( yes/no) [ yes]
Creating backup of local data...
Removing cache files...
SSSD needs to be running. Start SSSD now? ( yes/no) [ yes]
root@gvis-rhel10:~#
ssh接続#
接続してみましょ。初回接続やからちょっと長いけどログインはできとる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
root@gvis-rhel10:~# cat /etc/passwd | grep gavann | wc -l
0 ⭐️rhel10のローカルホストにはldapサーバにインポート作成した3つのユーザはあらへん
root@gvis-rhel10:~# ssh gavann-it@localhost ⭐️つないでちょ
The authenticity of host 'localhost (::1)' can't be established.
ED25519 key fingerprint is SHA256:QDiLFrgEOQtAjA2KZfswTYrwiVfSBQXcfq7xIvI3ksw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ' localhost' (ED25519) to the list of known hosts.
gavann-it@localhost' s password:
1 device has a firmware upgrade available.
Run ` fwupdmgr get-upgrades` for more information.
Register this system with Red Hat Insights: rhc connect
Example:
# rhc connect --activation-key <key> --organization <org>
The rhc client and Red Hat Insights will enable analytics and additional
management capabilities on your system.
View your connected systems at https://console.redhat.com/insights
You can learn more about how to register your system
using rhc at https://red.ht/registration
gavann-it@gvis-rhel10:~$ whoami
gavann-it ⭐️つながった!!
gavann-it@gvis-rhel10:~$ id
uid= 2000( gavann-it) gid= 7502( gvis-group) groups= 7502( gvis-group) ⭐️ldapサーバにあるユーザとグループ使えとる
gavann-it@gvis-rhel10:~$
ログインできたやん。せやけどsudoしてみたらアカンかった・・・。
1
2
3
4
gavann-it@gvis-rhel10:~$ sudo su -
[ sudo] gavann-it のパスワード:
gavann-it は gvis-rhel10 上で sudo を実行することを許可されていません。
gavann-it@gvis-rhel10:~$
なんやねん、authselectでwith-sudoつけといたらええんとちゃうんかったかいな?
実務で同じような問題あったような気がするけど、どう対処したか忘れたな。
めんどくさいわぁ。
さっきグループ名にgid=7502(gvis-group)ってあったから、その名前でvisudoから追加したる。
1
2
3
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%gvis-group ALL=(ALL) ALL ⭐️足した
visudoで書き足すとき書き間違えたらsudoできんようになるで。
sudoもう1回やったる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@gvis-rhel10:~# ssh gavann-it@localhost
gavann-it@localhost' s password:
Register this system with Red Hat Insights: rhc connect
Example:
# rhc connect --activation-key <key> --organization <org>
The rhc client and Red Hat Insights will enable analytics and additional
management capabilities on your system.
View your connected systems at https://console.redhat.com/insights
You can learn more about how to register your system
using rhc at https://red.ht/registration
Last login: Tue Sep 30 07:59:31 2025 from ::1
gavann-it@gvis-rhel10:~$ sudo su - ⭐️いったれー!
[ sudo] gavann-it のパスワード:
最終ログイン: 2025/09/30 ( 火) 07:58:58 JST 端末:pts/3
root@gvis-rhel10:~# whoami
root ⭐️いけたがな
root@gvis-rhel10:~# id
uid= 0( root) gid= 0( root) groups= 0( root)
root@gvis-rhel10:~#
これでたいていの作業はできるやろ。
端折ったけど、残りの2ユーザでもssh接続できたから、oddjobが働いてくれて作業フォルダ作成できとった。
1
2
3
4
5
6
7
root@gvis-rhel10:~# ls -lh /home
合計 4.0K
drwx------ 3 gavann-is gvis-group 99 9月 30 07:43 gavann-is ⭐️できとる
drwx------ 3 gavann-it gvis-group 99 9月 30 07:43 gavann-it ⭐️できとる
drwx------ 3 gavann-iu gvis-group 99 9月 30 07:43 gavann-iu ⭐️できとる
drwx------. 15 nari nari 4.0K 9月 24 05:17 nari
root@gvis-rhel10:~#
ここまでで、rhel10でもldapサーバへ認証問い合わせして使えそうってことはわかった。
フルリストアもやったし、年末あたりまでvmwareの中で生かしておいて年明けにOS削除やな。