第3回は、pam_krb5のインストールと基本的な動作について紹介しました。今回は応用編として、細かい設定や動作について紹介します。
authconfigのオプションとkrb5.confファイルの設定
authconfigコマンドにおけるKerberos関連のオプションを表1に示します(enable/disableで有効化/無効化を切り替えるオプションについては1行にまとめています)。これらのオプションも含め、krb5.confファイルの設定について少し紹介したいと思います。
表1 authconfigのKerberos関連オプション
オプション | 意味 |
--enable/disablekrb5 | Kerberos認証を有効化/無効化する。第3回で紹介 |
--krb5kdc=server | KDCとしてserverを指定する。第3回で紹介 |
--krb5adminserver=server | kadminサーバとしてserverを指定する |
--krb5realm=realm | Kerberosのレルム(realm)を指定する。第3回で紹介 |
--enable/disablekrb5kdcdns | KDCの検索にDNSを使用する機能を有効化/無効化する |
--enable/disablekrb5realmdns | レルムの指定にDNSを使用する機能を有効化/無効化する |
上記のうち、「第3回で紹介」と記載したものは、前回のauthconfigの実行例に含めたオプションです。
--enablekrb5
はKerberos認証を有効にするオプションですので、指定は必須です。
--krb5kdc
はKDCを指定するオプションで、Active Directory環境の場合は、実質的にDCを指定するオプションとして機能します。
--enablekrb5kdcdns
を指定することで、krb5.confに以下の行が追加され、
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」というレルム名を設定しておく必要があります。
なお、Active Directoryはkadminサーバとしては機能しないため、--krb5adminserver
オプションは指定しても無視されます。
pam_krb5の通信
ここでは、ファイアウォールなどで制御を行う場合を想定し、pam_krb5で認証を行う際の具体的な通信を紹介します。
まずは認証時の通信を図1に示します。
パケット1から4でUDPでポート88への接続を試行し、パケット4でサイズが大きすぎるというレスポンスがあり、TCPでポート88に接続して認証の通信を行っていることがわかります。パケット8、9、11が実際の認証の通信となります。
なお、authconfigの設定で--enablekrb5kdcdns
や--enablekrb5realmdns
を指定していた場合は、これ以外にDNSサーバとの通信が発生しますので留意してください。
次にパスワード変更の際の通信を図2に示します。
パケット25と26では、kpasswdプロトコルを用いてハイポートからUDPのポート464に接続してパスワード変更を行っています。その後パケット35以降で実際に接続して認証を行っている様子がわかります。
まとめ
今回は、pam_krb5に関連する詳細設定と、pam_krb5による通信の際に発生する具体的な通信について説明を行いました。次回はいわゆるLDAP認証による認証連携について、まずは概念を説明します。