Kerberos サーバーの設定と構成ガイド:Ubuntu でのネットワーク認証の確立
Kerberos は、分散ネットワーク環境における認証プロトコルであり、ユーザーやサービス間で安全な通信を提供するための重要な技術です。特に、企業や組織内で利用される場合が多く、ユーザー認証やアクセス管理に非常に効果的です。このガイドでは、Ubuntu で Kerberos サーバーをセットアップし、ネットワーク認証を行うための手順を詳しく解説します。
1. Kerberos サーバーの概要
Kerberos は、クライアントとサーバー間で安全に認証情報をやり取りするためのプロトコルで、暗号化されたトークン(チケット)を使用して認証を行います。Kerberos の構成には以下の主要な要素があります:
- Key Distribution Center (KDC):Kerberos の中心的な役割を果たし、クライアントとサーバー間でチケットを配布します。
- Authentication Server (AS):ユーザーの認証を行い、チケットを発行します。
- Ticket Granting Server (TGS):サービスへのアクセスを許可するチケットを発行します。
- クライアント:認証を要求するユーザーまたはサービス。
- サービスサーバー:クライアントの要求に応じてサービスを提供します。
2. Ubuntu に Kerberos をインストールする
まず、Ubuntu に Kerberos のパッケージをインストールする必要があります。以下の手順を実行してください。
2.1. パッケージリストの更新
最初に、パッケージリストを最新の状態に更新します。ターミナルを開き、次のコマンドを入力します:
bashsudo apt update
2.2. Kerberos パッケージのインストール
次に、Kerberos サーバーとクライアントのパッケージをインストールします。次のコマンドを実行します:
bashsudo apt install krb5-kdc krb5-admin-server krb5-config
これにより、Kerberos の認証サーバー(KDC)と管理ツールがインストールされます。
2.3. 依存パッケージのインストール
Kerberos の設定に必要な依存パッケージも自動的にインストールされますが、手動で追加する場合は以下のコマンドでインストールできます:
bashsudo apt install libpam-krb5 libpam0g krb5-user
3. Kerberos の設定ファイルの編集
インストールが完了したら、次に Kerberos の設定ファイルを編集します。主に「/etc/krb5.conf」と「/etc/krb5kdc/kdc.conf」の2つの設定ファイルを編集します。
3.1. krb5.conf の設定
「/etc/krb5.conf」は、Kerberos クライアントおよびサーバーの基本的な設定を定義します。このファイルを編集して、Kerberos サーバーのドメインとレルムを設定します。
bashsudo nano /etc/krb5.conf
以下の内容に編集します:
ini[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com
admin_server = kerberos.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
ここで、「EXAMPLE.COM」 はあなたの Kerberos ドメイン名に置き換えてください。
3.2. kdc.conf の設定
次に、「/etc/krb5kdc/kdc.conf」を編集します。このファイルは、Kerberos KDC の動作を制御します。次のコマンドでファイルを開きます:
bashsudo nano /etc/krb5kdc/kdc.conf
以下のように設定します:
ini[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
EXAMPLE.COM = {
# データベースのパス
database_name = /var/kerberos/krb5kdc/principal
admin_keytab = /etc/krb5kdc/kadm5.keytab
acl_file = /etc/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
}
4. Kerberos KDC の起動とサービスの管理
設定が完了したら、Kerberos サーバー(KDC)を起動し、サービスを管理します。以下のコマンドでサービスを開始できます:
bashsudo systemctl start krb5-kdc
sudo systemctl enable krb5-kdc
sudo systemctl start krb5-admin-server
sudo systemctl enable krb5-admin-server
これにより、Kerberos サーバーがバックグラウンドで実行され、システム起動時に自動的に開始されます。
5. Kerberos データベースの初期化
次に、Kerberos のデータベースを初期化する必要があります。以下のコマンドでデータベースを作成します:
bashsudo krb5_newrealm
これにより、Kerberos の認証データベースが作成され、最初の管理者アカウントが設定されます。
6. Kerberos 管理者アカウントの作成
Kerberos 管理者アカウントを作成するには、次のコマンドを使用します:
bashsudo kadmin.local
これで「kadmin.local」プロンプトが表示されるので、管理者アカウントを作成します:
bashaddprinc admin/admin
その後、パスワードを設定します。
7. Kerberos クライアントの設定
最後に、クライアント側でも Kerberos を設定します。クライアントマシンにも「krb5-user」パッケージをインストールし、「/etc/krb5.conf」を Kerberos サーバーと一致するように設定します。
8. テストと検証
Kerberos サーバーのセットアップが完了したら、クライアントから認証をテストできます。以下のコマンドを実行して、認証が正常に行われることを確認します:
bashkinit admin/admin
これにより、指定した管理者アカウントで認証が行われ、チケットが取得されます。次に、チケットの確認を行います:
bashklist
これで Kerberos の設定が正常に完了し、認証サービスが動作していることを確認できます。
結論
以上で、Ubuntu で Kerberos サーバーをセットアップし、ネットワーク認証を構成する手順は完了です。Kerberos は、セキュアな認証を提供し、特に企業ネットワークや大規模なシステムで有効です。このガイドを参考に、実際の環境での実装を行ってください。