開発運用

Ubuntu Kerberos サーバー設定

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. パッケージリストの更新

最初に、パッケージリストを最新の状態に更新します。ターミナルを開き、次のコマンドを入力します:

bash
sudo apt update

2.2. Kerberos パッケージのインストール

次に、Kerberos サーバーとクライアントのパッケージをインストールします。次のコマンドを実行します:

bash
sudo apt install krb5-kdc krb5-admin-server krb5-config

これにより、Kerberos の認証サーバー(KDC)と管理ツールがインストールされます。

2.3. 依存パッケージのインストール

Kerberos の設定に必要な依存パッケージも自動的にインストールされますが、手動で追加する場合は以下のコマンドでインストールできます:

bash
sudo 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 サーバーのドメインとレルムを設定します。

bash
sudo 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 の動作を制御します。次のコマンドでファイルを開きます:

bash
sudo 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)を起動し、サービスを管理します。以下のコマンドでサービスを開始できます:

bash
sudo 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 のデータベースを初期化する必要があります。以下のコマンドでデータベースを作成します:

bash
sudo krb5_newrealm

これにより、Kerberos の認証データベースが作成され、最初の管理者アカウントが設定されます。

6. Kerberos 管理者アカウントの作成

Kerberos 管理者アカウントを作成するには、次のコマンドを使用します:

bash
sudo kadmin.local

これで「kadmin.local」プロンプトが表示されるので、管理者アカウントを作成します:

bash
addprinc admin/admin

その後、パスワードを設定します。

7. Kerberos クライアントの設定

最後に、クライアント側でも Kerberos を設定します。クライアントマシンにも「krb5-user」パッケージをインストールし、「/etc/krb5.conf」を Kerberos サーバーと一致するように設定します。

8. テストと検証

Kerberos サーバーのセットアップが完了したら、クライアントから認証をテストできます。以下のコマンドを実行して、認証が正常に行われることを確認します:

bash
kinit admin/admin

これにより、指定した管理者アカウントで認証が行われ、チケットが取得されます。次に、チケットの確認を行います:

bash
klist

これで Kerberos の設定が正常に完了し、認証サービスが動作していることを確認できます。

結論

以上で、Ubuntu で Kerberos サーバーをセットアップし、ネットワーク認証を構成する手順は完了です。Kerberos は、セキュアな認証を提供し、特に企業ネットワークや大規模なシステムで有効です。このガイドを参考に、実際の環境での実装を行ってください。

Back to top button