はじめに
Linuxサーバのローカルユーザの認証にActive Directoryを使用するためのKerberos認証設定を行います。今回は、RHEL7系のCentOS7で設定を行いますが、RHEL8系ではpam_krb5パッケージが存在せず設定方法が異なります。RHEL8系のKerberos認証設定は、別途検証します。
・ドメインユーザ(パスワード)を使用してLinuxサーバへログインすることができる
※追記:2023/03/01 RHEL8系 Kerbero認証設定の記事投稿
検証環境
検証に使用するADサーバ及び、CentOSは下記の通りです。
ADサーバ構成 | OS | Windows Server 2019(評価版) |
ホスト名 | win2019-01 | |
ドメイン名 | ad.right8se.blog | |
IPアドレス | 192.168.0.10 | |
CentOS 7構成 | OS | CentOS 7.9(2009) |
ホスト名 | centos7-01 | |
IPアドレス | 192.168.0.165 |
今回、CentOS環境に作成するユーザーは下記の通りです。以前にActive Directoryで作成したドメインユーザを使用します。
ユーザー名 (ドメインユーザー) | UID | GID | コメント |
---|---|---|---|
s23003 | 123003 | 123003 | yuuzi_miyake |
s23004 | 123004 | 123004 | touya_sikata |
p23007 | 523007 | 523007 | sai_nanao |
p23008 | 523008 | 523008 | raito_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認証設定を行います。
コメント