この記事は、Kerberos認証(pam_krb5モジュール) を利用している RHEL7 を、RHEL8 へインプレースアップグレードする際に、問題となる事象とそれを解決する手順をまとめる。
前提とやりたいこと
...と、文章で書くと長くてわかりにくかったので、箇条書きでまとめよう。
- 現行サーバ: RHEL7 で kerberos認証(pam_krb5モジュール) を利用している
- やりたいこと: 構成はそのままに RHEL8 へインプレースアップグレードしたい
- 問題点と解決策:RHEL8 には pam_krb5 がないため、代わりに SSSD を利用する必要がある
- その際の注意点:下手な手順を実行した場合、ロックアウトされて手詰まりになる
単純な pam_krb5 -> SSSD への移行手順などは、RHEL公式サイト(本記事最下部参照)に掲載されているんだけど、
上手く読み合わせないで作業していくと、途中でシステムからロックアウトされてしまう。
SSHログインして作業するならともかく、Ansibleで実施する場合は特に手順を工夫しないと、実行が途中で止まってしまう...。※実体験済み
手順
手順の概要としては単純で、SSSD を有効化 → pam_krb5 を無効化 の順番で実施するだけ。
(1) SSSD のインストールと有効化
yum install sssd
authconfig --enablesssd --enablesssdauth --update
→ これにより、/etc/nsswitch.conf の一部が sss を利用できる形に更新される
(2) /etc/nsswitch.conf の修正 ("services" に "sss" を追記)
services: files sss
※当方環境(RHEL7.8)の場合、この作業は不要だった
(3) /etc/sssd/sssd.conf の修正
- service, domain 等の情報を環境に合わせて設定。
- パーミッションを 600, root:root に設定。
(4) SSSD の再起動
systemctl restart sssd.service
(5) pam_krb5 の無効化
authconfig --disablekrb5 --update
(6) PAM構成ファイルの修正
/etc/pam.d/system-auth
/etc/pam.d/password-auth
→ 修正内容は元の記述によると思うけど、当方環境では pam_krb5.so が記載されている部分を pam_sss.so に修正するだけで大丈夫だった。
これで、RHEL8へのインプレースアップグレードで、pam_krb5 が削除されても大丈夫!
(でもロックアウトには十分気をつけて、検証してから実施してね!)
参考サイト
Red Hat Enterprise Linux 8 で pam_krb5 から SSSD に移行する方法
https://access.redhat.com/ja/solutions/6098441
RHEL 7 から RHEL 8 へのアップグレード > 9.3. 既知の問題
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/upgrading_from_rhel_7_to_rhel_8/known-issues_troubleshooting
RHEL 7 システムレベルの認証ガイド > 7.5. SSSD のシステムサービスの設定
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system-level_authentication_guide/configuring_services