IBMがredhatを含めちゃった数年前、なんか嫌~な感じがしてた。
やっぱりというか、centosの役割が変わってdockerhubからcentos8のイメージがなくなってた。
前に作ったldaps接続を、イメージからコンテナ作り直すことができない。
そこに、redhat9がリリースされてた。
業務ではほとんどがredhatとかamazonlinuxを使う。
今はたまたまredhatがほとんど。
十分なテスト環境をいつも使えるわけじゃないから、研究・検証・勉強のためにはdockerを使って環境作って知見を得る。
centosが使えないなら、redhatのクローン探しからやりなおしてldap認証やったろやんけ。
コンテナでldapsサーバ作る箇所はそのままで、接続元をredhat8/9のクローンOSで置き換えてみた。
redhatクローンOSの選択
いくつかある。
ただし、dockerイメージがないと自分には使えない。
ubuntu22にベースOSを変えたときusb3のディスクを高速なssdに変えたから、ディスクのI/O性能が数倍よくなって、めっちゃコンテナ作成速度も上がった。
結論
redhat8/9のイメージがdockerhubにあったけど、結局は使えなかった。
理由はパッケージの制限があってsssd/oddjobdがインストールできなかったから。
redhat面倒くさー。
やっぱりクローン使おう。
結局は、openldapのLDAPを使い、クライアント側はredhatクローンとしてalmalinuxの8.6/9.0を使い、OSへのログインをLDAP認証させた。
dockerの作業フォルダ
こんな感じ。
/docker
|--docker-compose.yml
|--nariDockerDat
| |--cl_red8_Dockerfile
| |--cl_red8 ★1
| | |--download
| | |--script
| |--cl_red9_Dockerfile
| |--cl_red9 ★2
| | |--download
| | |--script
| |--sv_ldap
| | |--gvisExport.ldif
|--nariDockerSys ★3
★1と★2のcl_red8/cl_red9はクローンOSのための永続化領域。
それぞれscriptのフォルダにはdnfするときのスクリプトとか、crontabに登録したい内容が入ってる。
scriptフォルダとか
ちょっと脱線。
たとえば上記のフォルダ構造には「cl_ubu20」ってのも本当はあって、そこにもscriptフォルダはある。
どのscriptフォルダにも800_crontab.txtとか810_dnfUpdate.shと810_aptUpdate.shが存在し、「sh ./810」って入力してTABキーで入力補完するとOSの更新がされるようにしてる。
中身は、
dnf clean all
dnf update
だったり、
apt autoremove
apt clean
apt update
apt upgrade
だったりする。OSを複数使い分けてるとき、やりたいことを1つのスクリプトにまとめておいて、同じ番号で始まるようにしておくと即座に実行できる。
複数のlinux/unixを使ってても混乱せずにすむし、新しい役割のOSを使うとしても別のscriptフォルダをベースにして作れば、また同じように使える。
solaris->turbolinux->mac->redhat->centos->ubuntuって変遷。
solarisは2002年からなのでけっこう長いこと使ってる。
最初は物理マシンだったのが、途中でvmになっていき今はコンテナ使うけど内容は同じようなものが入ってる。
当時はaptとかyum/dnfはなかったけど、901_OSstop.shが一番古いスクリプトなんじゃないか。
chronyが今は使えるけど、rootのcrontabにはntpdateとかも入ってたっけ。
downloadフォルダとか
パッケージ利用に使うモジュールとか、壁紙とか鍵ファイルとかを置いとく。
ldapsでは.crtファイルをサーバからコピーするから、そのためにも使う。
sv_ldapには、以前に作ったldapのユーザ情報が入ってる。
dockerのイメージとかコンテナの置き場
★3はdockerのイメージが入ってる。
dockerそのものの起動でこう書いて使ってる。
–data-rootで★3のフォルダを指定する。
nariDockerSys
のフォルダにはdockerのシステムデータが入ってる。
builder containers image plugins swarm trust
buildkit devicemapper network runtimes tmp volumes
この中身はあんまり知らないけど、知らん間にけっこう肥え太る。
特にimageのディレクトリは膨れる。
気が向いたら全抹消して作り直す。
前はusb3のディスクにvmdkファイルを作ってvmにマウントしてたのを、最近usb3やめてssdのディスクにしたら、コンテナ操作の応答速度が上がった。
systemctlでdockerそのものの起動するときの/lib/systemd/system/docker.service
には起動オプションが指定できるので書いてる。
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock --data-root /docker/nariDockerSys
google cloudではディレクトリ構造が若干違うけど、dockerの起動はこう書いてる。
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock --data-root /gvis/nari/nariDocs/Docker/nariDockerSys
dockerfileの内容
centos8のときのdockerfileを使って、ベースになるイメージ指定だけを変更する。
teraterm接続できるようにsshd入れて、日本語が使えるようにしてる。あとはman読みたいことがあるから入れとく。
1行目にあるFROM xxxx:xx
の箇所をdockerhubにあるコンテナイメージのタグ名で書く。最終的にはFROM almalinux:9.0
って書いた。
redhatクローンだったら、ストレートに動くはず。
これをベースにして、cl_red8_Dockerfile/cl_red9_Dockerfileってファイルを作る。
FROM xxxx:xx
MAINTAINER "nari"
# dnf update and clean
RUN dnf -y update && dnf clean all
# sshdをインストール
RUN dnf -y install openssh-server
EXPOSE 22
# 開発用ツールをまとめて入れる
RUN dnf -y group install 'Development Tools'
# git入れる
RUN dnf -y install git
# LDAP関連は後で入れる
## RUN dnf -y install openssl openldap-clients
## RUN dnf -y install sssd sssd-tools sssd-ldap
## RUN dnf -y install oddjob-mkhomedir
# passwdをインストール
RUN dnf -y install passwd
# 言語と日付を日本語に設定
RUN dnf -y install langpacks-ja \
&& cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ENV LANG="ja_JP.UTF-8" \
LANGUAGE="ja_JP:ja" \
LC_ALL="ja_JP.UTF-8"
# 日本語を恒久化
RUN echo 'LANG="ja_JP.UTF-8"' >> /etc/profile
RUN echo 'LANGUAGE="ja_JP:ja"' >> /etc/profile
RUN echo 'LC_ALL="ja_JP.UTF-8"' >> /etc/profile
# manをインストール
RUN dnf -y install man
# dnfのクリーンアップ
RUN dnf clean all
# ユーザを追加(パスワード設定は"docker exec -it"を使ってbashから後で行う)
RUN useradd nari
RUN systemctl enable sshd.service
CMD ["/sbin/init"]
docker-composeに書き足す内容
mariadbとかdjangoも動かしてるけど、クライアントOSについて書き足す。
dockerコンテナとイメージを全部潰しても、こう書いておけばすぐ作り直してくれるし、/gvis/script
とかは維持される
cl_red8:
image: redhat:8gvis
privileged: true
hostname: clred8
build:
context: ./nariDockerDat
dockerfile: cl_red8_Dockerfile
ports:
- "21022:22"
volumes:
- ./nariDockerDat/cl_red8:/gvis
cl_red9:
image: redhat:9gvis
privileged: true
hostname: clred9
build:
context: ./nariDockerDat
dockerfile: cl_red9_Dockerfile
ports:
- "22022:22"
volumes:
- ./nariDockerDat/cl_red9:/gvis
dockerhubで公開されてるか
dockerhubにはdockerで使うイメージがたくさん入ってる。
どっちかというと、OSのイメージというよりアプリケーションのイメージがたくさん置いてある気がする。
mariadbとかnginxとか、サービスを使うためのイメージがあって構築をスクリプト化することの楽しさを教えてくれる。
企業が自社の製品を公開していることもあって、oracle DATABASEを「勉強用ならどうぞ」って使わせてくれるのは最初驚いた。
スーパーの肉売り場で「A5ランクの神戸牛ですー、おひとつどうぞー」みたいな感じか。
A5ランクの神戸牛もoracleも濃すぎるから、どっちも苦手。
おいしい出汁で食べる明石焼きとか、pythonとか、もうちょっとシンプルでしなやかな味わいがええなぁ。
アプリケーションじゃなく純粋にOS使いたければ、そういうイメージも公開されてる。redhatも存在することに今さら気づいた。
redhatとそのクローン
redhatのプロフィールがdockerhubにある。
redhatは長く扱ってるけど、centos使ってる時期が長かったので最近気づいた。
ubi(universal base image)っていう名前で、ubi8-initとかubi8-minimalとかある。
redhat8のubi
まずはredhat。
ldaps認証のテストに使えるのか試そうとすると、No match for argument: sssd
ってなって撃沈された。
コンパイルしてsssd/oddjobdとか入れる方法があるんかもしれんけど、ldaps使う検証が目的やから、そんな面倒なことやらん。
[root@clred8 script]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
[root@clred8 script]# dnf install sssd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 0:52:14 ago on Tue Jun 21 21:03:53 2022.
No match for argument: sssd
Error: Unable to find a match: sssd
[root@clred8 script]#
ダメ元でredhat9のもやったけど、sssdあらへんって同じ結果やった。
[root@clred9 script]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.0 (Plow)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="9.0"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Red Hat Enterprise Linux 9.0 (Plow)"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/9/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_BUGZILLA_PRODUCT_VERSION=9.0
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.0"
[root@clred9 script]#
[root@clred9 script]# dnf install sssd
Updating Subscription Management repositories.
Unable to read consumer identity
Subscription Manager is operating in container mode.
This system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 0:10:14 ago on Tue Jun 21 21:43:55 2022.
No match for argument: sssd
Error: Unable to find a match: sssd
[root@clred9 script]#
イマイチ使えんな。
redhat、はい消えた~。
rocky linux
centosなき後のredhatクローン選びを考察されてるサイトを読ませてもらうと、いくつか候補があったうちの1つにrocky linuxがあった。
本家のサイト見たら、8.6が最新やった。
dockerhubのタグ見たら8.5って書いてた。
8.5? 8.6? どっちなん?
よさそうかもって思ったら、来月にならな9が出てこんらしい。
Rocky Linux 9.0 will be ready for general release in the June - July 2022 timeframe after thorough testing and validation.
今すぐ8.6と9.0使いたいし。
rocky、はい消えた~。
ただし、後々dockerfileの1行目にFROM rockylinux:8.5
とか書く候補にはなる。
ログ捨てたけど、dockerfileに書いてコンテナ起動してみたらssh接続してdnfできたし、なぜかタグに8.5って書いたのにos-releaseをcatしたら8.6って表示された。
まだできて期間短いみたい。
そのうち整備されるのかも。
alma linux
他にもalmaってのがあるそうな。
本家のサイト見たら、9.0が最新やった。8.6もある。
dockerhubのタグにも9.0と8.6があった。
いったんこれ使ってみる。
teratermで8.6へ接続
コンテナ起動させてtera termで8.6へ接続したらこんな感じ。
おお、行けるやん。
Last login: Fri Jun 24 06:08:37 2022 from 172.16.17.71
[nari@clred8 ~]$ su -
Password:
Last login: 金 6月 24 06:08:37 JST 2022 on pts/0
[root@clred8 ~]# systemctl status sshd | grep Active
Active: active (running) since Fri 2022-06-24 03:35:38 JST; 2h 55min ago
mq10242 grep --color=auto Active
[root@clred8 ~]# cd /gvis/script
[root@clred8 script]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-8:16-20187064-10dc45437c678bc578797a875b555dc78f3d81500c6f63c3586dd276cae66bd8 45G 1.5G 44G 4% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sdb 629G 106G 492G 18% /gvis
tmpfs 7.8G 9.0M 7.8G 1% /run
[root@clred8 script]# cat /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)
[root@clred8 script]#
teratermで9.0へ接続
9.0へ接続したらこんな感じ。
こっちも行けるやん。
Last login: Fri Jun 24 03:06:03 2022 from 172.16.17.71
[nari@clred9 ~]$ su -
Password:
Last login: 金 6月 24 03:06:03 JST 2022 on pts/0
[root@clred9 ~]# systemctl status sshd | grep Active
Active: active (running) since Fri 2022-06-24 03:35:31 JST; 2h 55min ago
mq8030 grep --color=auto Active
[root@clred9 ~]# cd /gvis/script
[root@clred9 script]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-8:16-20187064-3a0d7c8b003a96d7b5784ff7b3799cff124f3023504d2355b38a8066576b60b3 45G 2.0G 44G 5% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sdb 629G 106G 492G 18% /gvis
tmpfs 3.2G 9.1M 3.2G 1% /run
[root@clred9 script]# cat /etc/redhat-release
AlmaLinux release 9.0 (Emerald Puma)
[root@clred9 script]#
redhatクローンの設定
dockerfileでイメージをビルドしてコンテナ起動させたら、直後にはrootと一般ユーザのパスワード設定しておく。それからtera termの接続スクリプトにも書いておく。
パスワード設定はこんな感じ。
nari@nafslinux-ubu22:/docker$ docker exec -it docker-cl_red8-1 bash
[root@clred8 /]# passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@clred8 /]# passwd nari
Changing password for user nari.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@clred8 /]# exit
exit
nari@nafslinux-ubu22:/docker$
tera termのマクロはこう書いておく。
connectするときのホスト名の末尾にdocker-compose.ymlに書いたポート番号をつけて、passwdのパラメータにさっき設定したパスワードを書いとく。
connect 'naFSlinux.intra.gavann-it.com:21022 /ssh /auth=password /user=nari /passwd=xxxxxxxx /F=Y:_connect\connect\teraIni\blue.INI'
wait "]$"
sendln "su -"
wait "Password:"
sendln "xxxxxxxx"
wait "]#"
sendln "systemctl status sshd | grep Active"
wait "]#"
sendln "cd /gvis/script"
wait "]#"
sendln "df -h"
settitle '118_naFSlinux-SSH-DockerRedhat8'
openldapのコンテナ起動
前にやったのと同じ。
違うのはベースで動かしているOSが当時はubuntu20で、今はubuntu22っていうだけでdockerコンテナには何も影響ない。
電子証明書を発行しなおしたかったからdockerコンテナをいったん停止・削除したけど、ストレートに動く。
ldifファイルをインポートしたら、当時のposixユーザもそのまま使える。
openldap動かして電子証明書を取ってきたものを、永続化領域を通じてalmalinux8.6/9.0にそれぞれ置いた。
[root@clred8 download]# cp -p /gvis/download/ldap.crt /etc/openldap/certs/
[root@clred8 download]# cd /etc/openldap/certs
[root@clred8 certs]# ls -l
total 4
-rwxr--r-- 1 nari nari 1099 6月 23 07:21 ldap.crt
[root@clred8 certs]# chown root:root ./ldap.crt
[root@clred8 certs]# chmod 600 ./ldap.crt
[root@clred9 script]# cp -p /gvis/download/ldap.crt /etc/openldap/certs/
[root@clred9 script]# cd /etc/openldap/certs
[root@clred9 certs]# ls -l
total 4
-rwxr--r-- 1 nari nari 1099 6月 23 07:21 ldap.crt
[root@clred9 certs]# chown root:root ./ldap.crt
[root@clred9 certs]# chmod 600 ./ldap.crt
redhatクローンからの設定と接続
centos8のときと同じ。
同じやけど、8.6/9.0でどう変わるのかやってみた。
dnf結果のバージョンがほんの少し違うだけで、ほぼ変わらん。
dnfでインストールする
dnfでインストールする内容はこんな感じ。
最初authselect入れるの忘れてた。
# dnf install nmap
# dnf install openssl openldap-clients
# dnf install sssd sssd-tools sssd-ldap
# dnf install oddjob-mkhomedir
# dnf install authselect
8.6のdnf結果
インストールした結果8.6のクローンではこうなる。
[root@clred8 script]# dnf list installed | egrep 'openssl|openldap-clients|sssd|sssd-tools|sssd-ldap|oddjob-mkhomedir|authselect'
authselect.x86_64 1.2.2-3.el8 @baseos
authselect-libs.x86_64 1.2.2-3.el8 @baseos
oddjob-mkhomedir.x86_64 0.34.7-1.el8 @appstream
openldap-clients.x86_64 2.4.46-18.el8 @baseos
openssl.x86_64 1:1.1.1k-6.el8_5 @baseos
openssl-libs.x86_64 1:1.1.1k-6.el8_5 @System
python3-sssdconfig.noarch 2.6.2-4.el8_6 @baseos
sssd.x86_64 2.6.2-4.el8_6 @baseos
sssd-ad.x86_64 2.6.2-4.el8_6 @baseos
sssd-client.x86_64 2.6.2-4.el8_6 @baseos
sssd-common.x86_64 2.6.2-4.el8_6 @baseos
sssd-common-pac.x86_64 2.6.2-4.el8_6 @baseos
sssd-dbus.x86_64 2.6.2-4.el8_6 @baseos
sssd-ipa.x86_64 2.6.2-4.el8_6 @baseos
sssd-krb5.x86_64 2.6.2-4.el8_6 @baseos
sssd-krb5-common.x86_64 2.6.2-4.el8_6 @baseos
sssd-ldap.x86_64 2.6.2-4.el8_6 @baseos
sssd-nfs-idmap.x86_64 2.6.2-4.el8_6 @baseos
sssd-proxy.x86_64 2.6.2-4.el8_6 @baseos
sssd-tools.x86_64 2.6.2-4.el8_6 @baseos
[root@clred8 script]#
9.0のdnf結果
9.0のクローンではこうなる。
[root@clred9 script]# dnf list installed | egrep 'openssl|openldap-clients|sssd|sssd-tools|sssd-ldap|oddjob-mkhomedir|authselect'
authselect.x86_64 1.2.3-7.el9 @baseos
authselect-libs.x86_64 1.2.3-7.el9 @baseos
oddjob-mkhomedir.x86_64 0.34.7-5.el9 @appstream
openldap-clients.x86_64 2.4.59-4.el9_0 @baseos
openssl.x86_64 1:3.0.1-23.el9_0 @BaseOS
openssl-libs.x86_64 1:3.0.1-23.el9_0 @BaseOS
python3-sssdconfig.noarch 2.6.2-4.el9_0 @baseos
sssd.x86_64 2.6.2-4.el9_0 @baseos
sssd-ad.x86_64 2.6.2-4.el9_0 @baseos
sssd-client.x86_64 2.6.2-4.el9_0 @baseos
sssd-common.x86_64 2.6.2-4.el9_0 @baseos
sssd-common-pac.x86_64 2.6.2-4.el9_0 @baseos
sssd-dbus.x86_64 2.6.2-4.el9_0 @baseos
sssd-ipa.x86_64 2.6.2-4.el9_0 @baseos
sssd-krb5.x86_64 2.6.2-4.el9_0 @baseos
sssd-krb5-common.x86_64 2.6.2-4.el9_0 @baseos
sssd-ldap.x86_64 2.6.2-4.el9_0 @baseos
sssd-proxy.x86_64 2.6.2-4.el9_0 @baseos
sssd-tools.x86_64 2.6.2-4.el9_0 @baseos
[root@clred9 script]#
ldapsのポート使えるか確認
普通に使える。
8.6のnmap結果
[root@clred8 ~]# nmap -p636 -Pn svldap-server
Starting Nmap 7.70 ( https://nmap.org ) at 2022-06-24 03:39 JST
Nmap scan report for svldap-server (172.18.0.5)
Host is up (0.00013s latency).
rDNS record for 172.18.0.5: svldap-server.docker_default
PORT STATE SERVICE
636/tcp open ldapssl
MAC Address: 02:42:AC:12:00:05 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
[root@clred8 ~]#
9.0のnmap結果
[root@clred9 ~]# nmap -p636 -Pn svldap-server
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2022-06-24 03:39 JST
Nmap scan report for svldap-server (172.18.0.5)
Host is up (0.000099s latency).
rDNS record for 172.18.0.5: svldap-server.docker_default
PORT STATE SERVICE
636/tcp open ldapssl
MAC Address: 02:42:AC:12:00:05 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
[root@clred9 ~]#
設定ファイルいじる
これも前にやったのと同じ。
8.6/9.0どっちも同じ設定を入れた。
/etc/openldap/ldap.confの設定
このファイルは存在するから追記。
TLS_CACERT /etc/openldap/certs/ldap.crt ←★さっきの証明書ファイル
URI ldaps://svldap-server ←★dockerコンテナのldapsサーバ
BASE dc=intra-gavann-it,dc=com
/etc/sssd/sssd.confの設定
このファイルはないから作成。
[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://svldap-server ←★ldaps指定
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 ←★自己証明書のための設定
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
最後の2行はコマンドラインで追記し、上記のリストになるように不要な行を削除する。
[root@clred9 certs]# sss_obfuscate -d gvis
Enter password:
Re-enter password:
[root@clred9 certs]#
さらにパーミッションいじってsssdとoddjobdのサービス再起動する。
8.6でもだいたい同じで、以下9.0でやったとき。
[root@clred9 sssd]# chmod 600 sssd.conf
[root@clred9 sssd]# systemctl restart sssd.service
[root@clred9 sssd]# systemctl status sssd.service
● sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enable>
Active: active (running) since Fri 2022-06-24 03:22:41 JST; 10s ago
Main PID: 7838 (sssd)
Tasks: 6 (limit: 15261)
Memory: 40.3M
CPU: 392ms
CGroup: /system.slice/sssd.service
tq7838 /usr/sbin/sssd -i --logger=files
tq7839 /usr/libexec/sssd/sssd_be --domain gvis --uid 0 --gid 0 --logger=files
tq7840 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
tq7841 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
tq7842 /usr/libexec/sssd/sssd_ifp --uid 0 --gid 0 --logger=files
mq7843 /usr/libexec/sssd/sssd_sudo --uid 0 --gid 0 --logger=files
6月 24 03:22:41 clred9 systemd[1]: Starting System Security Services Daemon...
6月 24 03:22:41 clred9 sssd[7838]: Starting up
6月 24 03:22:41 clred9 sssd_be[7839]: Starting up
6月 24 03:22:41 clred9 sssd_sudo[7843]: Starting up
6月 24 03:22:41 clred9 sssd_ifp[7842]: Starting up
6月 24 03:22:41 clred9 sssd_nss[7840]: Starting up
6月 24 03:22:41 clred9 sssd_pam[7841]: Starting up
6月 24 03:22:41 clred9 systemd[1]: Started System Security Services Daemon.
[root@clred9 sssd]# systemctl enable oddjobd
Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service → /usr/lib/systemd/system/oddjobd.service.
[root@clred9 sssd]# systemctl status oddjobd
○ oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded (/usr/lib/systemd/system/oddjobd.service; enabled; vendor preset: dis>
Active: inactive (dead)
[root@clred9 sssd]# systemctl start oddjobd
[root@clred9 sssd]# systemctl status oddjobd
● oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded (/usr/lib/systemd/system/oddjobd.service; enabled; vendor preset: dis>
Active: active (running) since Fri 2022-06-24 03:25:10 JST; 4s ago
Main PID: 7864 (oddjobd)
Tasks: 1 (limit: 15261)
Memory: 688.0K
CPU: 4ms
CGroup: /system.slice/oddjobd.service
mq7864 /usr/sbin/oddjobd -n -p /run/oddjobd.pid -t 300
6月 24 03:25:10 clred9 systemd[1]: Started privileged operations for unprivileged applic>
[root@clred9 sssd]#
システムIDと認証ソースを設定
ここまで書いて、やるの忘れてた。
これやらないとssh接続拒否される。
以下、8.6でやったとき。9.0もほぼ同じエコーバックやったから割愛。
[root@clred8 sssd]# authselect select sssd with-sudo with-mkhomedir --force
Backup stored at /var/lib/authselect/backups/2022-06-23-19-02-21.hBLr3k
Profile "sssd" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services
- sudoers
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@clred8 sssd]#
/etc/ssh/sshd_configの設定
sshdにも接続許可設定があるので追記する。
AllowUsers *
sshdのサービス再起動やっとく。
[root@clred9 sssd]# systemctl restart sshd
[root@clred9 sssd]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enable>
Active: active (running) since Fri 2022-06-24 03:35:31 JST; 19s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 7884 (sshd)
Tasks: 8 (limit: 15261)
Memory: 207.0M
CPU: 27ms
CGroup: /system.slice/sshd.service
tq 90 "sshd: nari [priv]"
tq 94 "sshd: nari@pts/0"
tq 95 -bash
tq 109 su -
tq 110 -bash
tq7884 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
tq7885 systemctl status sshd
mq7886 less
6月 24 03:35:31 clred9 systemd[1]: Starting OpenSSH server daemon...
6月 24 03:35:31 clred9 sshd[7884]: Server listening on 0.0.0.0 port 22.
6月 24 03:35:31 clred9 sshd[7884]: Server listening on :: port 22.
6月 24 03:35:31 clred9 systemd[1]: Started OpenSSH server daemon.
[root@clred9 sssd]#
レガシー設定とldapsのオンライン確認
ldapのときはlegacy
ってなるように変更してからエコーバックを確認するけど、ldapsを使うのでレガシー設定はデフォルト設定から変更しなくていいはずで、DEFAULT
になってることを確認。
以下9.0でやったとき。8.6も同じようなエコーバックやったから割愛。
[root@clred9 sssd]# update-crypto-policies --show
DEFAULT
[root@clred9 sssd]#
接続確認
sssdからldapsへのオンライン確認と認証情報取得できるかの確認。
以下9.0でやったとき、Online
って返ってきてgetentで情報取れてるやん!!
[root@clred9 sssd]# sssctl domain-status gvis
Online status: Online
Active servers:
LDAP: svldap-server
Discovered LDAP servers:
- svldap-server
[root@clred9 sssd]#
[root@clred9 sssd]# getent passwd gavann-it
gavann-it:*:2000:7502:gavann it:/home/gavann-it:/bin/bash
[root@clred9 sssd]#
接続
さぁ、つないでみる~。
8.6の接続結果
[root@clred8 sssd]# ssh gavann-it@localhost
gavann-it@localhost's password:
Creating home directory for gavann-it.
Last failed login: Fri Jun 24 03:50:24 JST 2022 from 127.0.0.1 on ssh:notty
There were 14 failed login attempts since the last successful login.
[gavann-it@clred8 ~]$ whoami
gavann-it
[gavann-it@clred8 ~]$
9.0の接続結果
[root@clred9 sssd]# ssh gavann-it@localhost
gavann-it@localhost's password:
Creating home directory for gavann-it.
Last failed login: Fri Jun 24 03:49:36 JST 2022 from 127.0.0.1 on ssh:notty
There were 6 failed login attempts since the last successful login.
[gavann-it@clred9 ~]$ whoami
gavann-it
[gavann-it@clred9 ~]$
nslcdからsssdに変わったときはかなり悩んだけど、redhatが9になってもsssdはそのまま使うみたいやから、ssh接続でldaps認証はスンナリできた。
もしかしたら・・・
2022年6月はalmalinux使った。
何があるかわからない世の中やから、dnfで更新してったらldaps接続が突然できなくなることがあるかもしれん。
そのときはまた追記するかな。