ネットワークアプリケーションサーバー上のサービス (rlogin や ftp など) の認証機能を一時的に無効にする必要がある場合もあります。たとえば、保守を行なっているときに、そのシステムにユーザーがログインできないようにしたい場合などです。ktutil コマンドを使用して、サービスのプリンシパルをサービスの keytab から削除すれば、kadmin 特権を持っていなくても、ユーザーのログインを防ぐことができます。もう一度認証を有効にするには、保存しておいた元の keytab を元の場所にコピーします。
ほとんどのサービスではデフォルトで認証が動作する必要があります。そうでない場合、サービスの認証を無効にしても、そのサービスは動作し続けます。
keytab を持つホスト上でスーパーユーザーになります。
他のユーザーが所有する keytab も作成できますが、keytab のデフォルトの位置には root の所有権が必要です。
現在の keytab を一時ファイルに保存します。
ktutil コマンドを起動します。
# /usr/krb5/bin/ktutil |
read_kt コマンドを使用して、keytab を鍵リストバッファに読み込みます。
ktutil: read_kt keytab |
list コマンドを使用して、鍵リストバッファを表示します。
ktutil: list |
現在の鍵リストバッファが表示されます。無効にしたいサービスのスロット番号に注意してください。
ホストのサービスを一時的に無効にするには、delete_entry コマンドを使用して、特定のサービスプリンシパルを鍵リストから削除します。
ktutil: delete_entry slot_number |
slot_number |
削除したいサービスプリンシパルのスロット番号。list コマンドで表示される |
write_kt コマンドを使用して、鍵リストバッファを keytab に書き出します。
ktutil: write_kt keytab |
ktutil コマンドを終了します。
ktutil: quit |
もう一度サービスを有効にするには、一時的な (元の) keytab を元の場所にコピーします。
次の例では、denver ホスト上の host サービスを一時的に無効にします。もう一度ホストサービスを denver で有効にするには、krb5.keytab.temp ファイルを /etc/krb5/krb5.keytab ファイルにコピーします。
denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp denver # /usr/krb5/bin/ktutil ktutil:read_kt /etc/krb5/krb5.keytab ktutil:list slot KVNO Principal ---- ---- --------------------------------------- 1 8 root/denver@ACME.COM 2 5 host/denver@ACME.COM ktutil:delete_entry 2 ktutil:list slot KVNO Principal ---- ---- -------------------------------------- 1 8 root/denver@ACME.COM ktutil:write_kt /etc/krb5/krb5.keytab ktutil: quit |