Active DirectoryとLinuxの認証を統合しよう【2017年版】

第4回 pam_krb5による認証連携[2]

この記事を読むのに必要な時間:およそ 1.5 分

第3回は,pam_krb5のインストールと基本的な動作について紹介しました。今回は応用編として,細かい設定や動作について紹介します。

authconfigのオプションとkrb5.confファイルの設定

authconfigコマンドにおけるKerberos関連のオプションを表1に示します(enable/disableで有効化/無効化を切り替えるオプションについては1行にまとめています)⁠これらのオプションも含め,krb5.confファイルの設定について少し紹介したいと思います。

表1 authconfigのKerberos関連オプション

オプション意味
--enable/disablekrb5Kerberos認証を有効化/無効化する。第3回で紹介
--krb5kdc=serverKDCとしてserverを指定する。第3回で紹介
--krb5adminserver=serverkadminサーバとしてserverを指定する
--krb5realm=realmKerberosのレルム(realm)を指定する。第3回で紹介
--enable/disablekrb5kdcdnsKDCの検索にDNSを使用する機能を有効化/無効化する
--enable/disablekrb5realmdnsレルムの指定にDNSを使用する機能を有効化/無効化する

上記のうち,⁠第3回で紹介」と記載したものは,前回のauthconfigの実行例に含めたオプションです。

--enablekrb5はKerberos認証を有効にするオプションですので,指定は必須です。

--krb5kdcはKDCを指定するオプションで,Active Directory環境の場合は,実質的にDCを指定するオプションとして機能します。

--enablekrb5kdcdnsを指定することで,krb5.confに以下の行が追加され,

dns_lookup_kdc = true

Windowsクライアントと同様DC(KDC)の探索にSRVレコードが参照されるようになります。

参照先DNSサーバとして,DNSサーバとして稼働しているActive DirectoryのDCを指定しておくことで,DCを参照できるようになるので,Active Directory環境では便利かもしれません。なお,本オプションと--krb5kdcを両方指定した場合は,--krb5kdcオプションの指定が優先されます。

--krb5realmはレルムを指定するオプションで,Active Directory環境ではADのFQDNを大文字で設定します。--enablekrb5realmdnsにより,DNSからレルム情報を取得させることも可能です。ただし,この機能はActive Directoryの標準機能ではありません。前回紹介した環境を例にとると,たとえばDNSサーバに_kerberos.addom11.ad.localというTXTレコードを作成し,値として「ADDOM11.AD.LOCAL」というレルム名を設定しておく必要があります。

これ以外の指定方法もあります。詳細はマニュアルページなどを参照してください。たとえばauthconfigを

# authconfig --enablekrb5 --enablekrb5kdcdns --enablekrb5realmdns --update

と実行することで,KDCおよびレルム名の両方をDNSから参照させることが可能です。

なお,Active Directoryはkadminサーバとしては機能しないため,--krb5adminserverオプションは指定しても無視されます。

pam_krb5の通信

ここでは,ファイアウォールなどで制御を行う場合を想定し,pam_krb5で認証を行う際の具体的な通信を紹介します。

まずは認証時の通信を図1に示します。

図1 pam_krb5による認証時の通信

図1 pam_krb5による認証時の通信

パケット1から4でUDPでポート88への接続を試行し,パケット4でサイズが大きすぎるというレスポンスがあり,TCPでポート88に接続して認証の通信を行っていることがわかります。パケット8,9,11が実際の認証の通信となります。

なお,authconfigの設定で--enablekrb5kdcdns--enablekrb5realmdnsを指定していた場合は,これ以外にDNSサーバとの通信が発生しますので留意してください。

次にパスワード変更の際の通信を図2に示します。

図2 pam_krb5によるパスワード変更時の通信

図2 pam_krb5によるパスワード変更時の通信

パケット25と26では,kpasswdプロトコルを用いてハイポートからUDPのポート464に接続してパスワード変更を行っています。その後パケット35以降で実際に接続して認証を行っている様子がわかります。

まとめ

今回は,pam_krb5に関連する詳細設定と,pam_krb5による通信の際に発生する具体的な通信について説明を行いました。次回はいわゆるLDAP認証による認証連携について,まずは概念を説明します。

著者プロフィール

髙橋基信(たかはし もとのぶ)

大学卒業後,株式会社NTTデータに入社。数年間UNIX上でのプログラム開発に携わった後,クライアント/サーバシステム全般に関する技術支援業務を行う部署に異動し現在に至る。「日本Sambaユーザ会」スタッフなどを務め,オープンソース,Microsoft双方のコミュニティ活動に関わるとともに,各種雑誌への記事執筆や,講演などの活動を行っている。2005年6月には「Sambaのすべて」を出版。

コメント

コメントの記入