[Linux] CentOS 7 のKerberos認証設定(ドメイン参加無し)

Linux

はじめに

Linuxサーバのローカルユーザの認証にActive Directoryを使用するためのKerberos認証設定を行います。今回は、RHEL7系のCentOS7で設定を行いますが、RHEL8系ではpam_krb5パッケージが存在せず設定方法が異なります。RHEL8系のKerberos認証設定は、別途検証します。

メリット

・ドメインユーザ(パスワード)を使用してLinuxサーバへログインすることができる

※追記:2023/03/01 RHEL8系 Kerbero認証設定の記事投稿

検証環境

検証に使用するADサーバ及び、CentOSは下記の通りです。

ADサーバ構成OSWindows Server 2019(評価版)
ホスト名win2019-01
ドメイン名ad.right8se.blog
IPアドレス192.168.0.10
CentOS 7構成OSCentOS 7.9(2009)
ホスト名centos7-01
IPアドレス192.168.0.165

今回、CentOS環境に作成するユーザーは下記の通りです。以前にActive Directoryで作成したドメインユーザを使用します。

ユーザー名
(ドメインユーザー)
UIDGIDコメント
s23003123003123003yuuzi_miyake
s23004123004123004touya_sikata
p23007523007523007sai_nanao
p23008523008523008raito_yagami

※UID、GIDは、ドメインユーザ名の “s” ⇒ “1”、”p” ⇒ ”5” に読み替えています。

作業内容

pam_krb5パッケージのインストール

(1) Kerberos認証に必要な「pam_krb5」パッケージをインストールします。

# yum install pam_krb5 -y
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
 …省略…

インストール:
  pam_krb5.x86_64 0:2.4.8-6.el7

完了しました!

Kerberos認証設定

(1) Kerberos認証設定前に各種認証設定ファイルをバックアップします。

# cp -p /etc/krb5.conf /etc/krb5.conf.org
# cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.org
# cp -p /etc/pam.d/password-auth /etc/pam.d/password-auth.org

(2) 認証設定(GUI)コマンドを実行します。

# authconfig-tui

(3) [Kerberos 5 を使用]にチェックを入れて、[次]を選択します。

(4) Kerberos設定を入力して、[OK]を選択します。
 ・レルム(Realm): ドメイン名を入力
 ・KDC: ADサーバのホスト名を入力
 ・管理サーバー: ADサーバのホスト名を入力

※次のコマンドを実行して、 Kerberos認証設定を行うことも可能です。

# authconfig --enablekrb5 --krb5realm AD.RIGHT8SE.BLOG --krb5kdc win2019-01.ad.right8se.blog --krb5adminserver win2019-01.ad.right8se.blog --update

hostsファイル編集

(1) hostsファイルをバックアップします。

# cp -p /etc/hosts /etc/hosts.`date "+%Y%,%d"`

(2) hostsファイルを編集して、ADサーバのホスト名を登録します。

# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.10    win2019-01.ad.right8se.blog

ユーザー・グループ作成

(1) 次のコマンドを実行して、グループを作成します。

# groupadd -g 123003 s23003
# groupadd -g 123004 s23004
# groupadd -g 523007 p23007
# groupadd -g 523008 p23008

(2) 次のコマンドを実行して、ユーザーを作成します。

# useradd -u 123003 -g 123003 -m -G wheel -c "yuuzi_miyake" s23003
# useradd -u 123004 -g 123004 -m -G wheel -c "touya_sikata" s23004
# useradd -u 523007 -g 523007 -m -G wheel -c "sai_nanao" p23007
# useradd -u 523008 -g 523008 -m -G wheel -c "raito_yagami" p23008

(3) 次のコマンドを実行して、ユーザが作成されたことを確認します。

# cat /etc/passwd
 …省略…
s23003:x:123003:123003:yuuzi_miyake:/home/s23003:/bin/bash
s23004:x:123004:123004:touya_sikata:/home/s23004:/bin/bash
p23007:x:523007:523007:sai_nanao:/home/p23007:/bin/bash
p23008:x:523008:523008:raito_yagami:/home/p23008:/bin/bash

(4) 次のコマンドを実行して、wheelグループに属していることを確認します。

# grep wheel /etc/group
wheel:x:10:right,s23003,s23004,p23007,p23008

動作確認

(1) ターミナルソフト(TeraTerm等)を使用して、Linuxサーバへドメインユーザでログインを行います。

(2) ドメインユーザでLinuxサーバにログインができます。

備考:ログイン時に「Warning: password has expired. 」(パスワードの有効期限切れ)と表示されていますが、これはドメインユーザの設定で「ユーザーは次回ログイン時にパスワード変更が必要」にチェックが入っているためです。

(3) 次のコマンドを実行して、初期パスワードを変更します。
 ※対象ユーザがドメインユーザの為、ドメインユーザのパスワードが変更されます。

$ passwd
ユーザー s23003 のパスワードを変更。
s23003 用にパスワードを変更中
現在の UNIX パスワード: ***********        ←現在のPW
新しいパスワード: ***********           ←新しいPW
新しいパスワードを再入力してください: *********** ←新しいPW
passwd: すべての認証トークンが正しく更新できました。

(4) 次のコマンドを実行して、sudoコマンドが使用できることを確認します。

$ sudo su -

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

    #1) 他人のプライバシーを尊重すること。
    #2) タイプする前に考えること。
    #3) 大いなる力には大いなる責任が伴うこと。

[sudo] s23003 のパスワード: ***********       ←自身のPW
最終ログイン: 2023/02/26 (日) 19:43:55 JST日時 pts/0
[root@centos7-01 ~]#

あとがき

CentOS 7のKerberos認証設定の検証は以上となりますが、冒頭で記載した通り次回RHEL8系のKerberos認証設定を行います。

コメント

タイトルとURLをコピーしました