GNU/Linux >> Linux の 問題 >  >> Linux

認証のために Linux に Kerberos 5 KDC サーバーをインストールする方法

Kerberos はネットワーク認証プロトコルです。

Kerberos はデバイスに対して強力な暗号化認証を提供し、クライアントとサーバーがより安全な方法で通信できるようにします。これは、ネットワーク セキュリティの問題に対処するように設計されています。

ファイアウォールが外部ネットワークからの侵入に対処するソリューションとして機能する場合、Kerberos は通常、ネットワーク内の侵入やその他のセキュリティ問題に対処するために使用されます。

Kerberos の現在のバージョンは、KRB5 と呼ばれるバージョン 5 です。 .

Kerberos を実装するには、サーバー上で集中認証サービスを実行する必要があります。

このサービスは KEY DISTRIBUTION CENTER (KDC) と呼ばれます。

KDC に登録されたサーバーは、Kerberos 領域内の他のすべてのコンピューターから信頼されます。

krb5.conf ファイルのサンプル

以下は、すべての REALM およびドメインから REALM へのマッピング情報を含む krb5.conf ファイルの例です。

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

Kerberos KDC サーバーをインストールする

セキュリティ上の理由から、別のサーバーで Kerberos (KDC) サーバーを実行することをお勧めします。

krb5 サーバー パッケージをダウンロードしてインストールします。

# rpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm
Preparing...       ########################################### [100%]
   1:krb5-server   ########################################### [100%]

KDC を構成する前に、次の rpm がインストールされていることを確認してください:

# rpm -qa | grep -i krb5
pam_krb5-2.3.11-9.el6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

/etc/krb5.conf ファイルの変更

/etc/krb5.conf を変更して、適切な REALM および DOMAIN_REALM マッピングを以下のように反映させます。

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = elserver1.example.com
  admin_server = elserver1.example.com
 }

[domain_realm]
 .myrealm.com = MYREALM.COM
 myrealm.com = MYREALM.COM

kdc.conf ファイルの変更

また、kdc.conf を次のように変更する必要があります。

# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

KDC データベースの作成

次に、以下に示すように、kdb5_util コマンドを使用して KDC データベースを作成します。この段階で、KDC データベース マスター キーの適切なパスワードを入力します。

# /usr/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MYREALM.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

管理者権限の割り当て

ファイル /var/kerberos/krb5kdc/kadm5.acl を使用して、データベースに対する管理者権限をユーザーに付与できます。

# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]     *

上記の例では、管理インスタンスを持つ MYREALM 内のすべてのプリンシパルがすべての管理者権限を持っています。

プリンシパルを作成する

次のコマンドを使用してプリンシパルを作成します。この例では、「eluser」というユーザー名でプリンシパルを作成しました。

# kadmin.local -q "addprinc eluser/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for eluser/[email protected]; defaulting to no policy
Enter password for principal "eluser/[email protected]":
Re-enter password for principal "eluser/[email protected]":
Principal "eluser/[email protected]" created.

Kerberos サービスを開始

以下に示すように、KDC および kadmin デーモンを開始します。

# service krb5kdc start
Starting Kerberos 5 KDC:               [  OK  ]

# service kadmin start
Starting Kerberos 5 Admin Server:      [  OK  ]

Kerberos クライアントを構成する

KDC データベースに対して認証するように Kerberos クライアントを構成します。

次に、上記で作成した Kerberos KDC データベースに対して認証するように krb5 クライアントを構成する方法を見てみましょう。

ステップ 1:krb5-libs および krb5-workstation パッケージをクライアント マシンにインストールします。

ステップ 2:/etc/krb5.conf を KDC サーバーからクライアント マシンにコピーします。

ステップ 3:次に、KDC/Kerberos データベースにクライアントのプリンシパルを作成する必要があります。

以下のコマンドを使用して、KDC マスター サーバー上にクライアント マシンのプリンシパルを作成できます。以下の例では、マスター KDC サーバー elserver1.example.com でクライアント elserver3.example.com のホスト プリンシパルを作成しています。

# kadmin.local -q "addprinc host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for host/[email protected]; defaulting to no policy
Enter password for principal "host/[email protected]":
Re-enter password for principal "host/[email protected]":
Principal "host/[email protected]" created.

ステップ 4:以下のコマンドを使用して、KDC マスター サーバーからクライアントの krb5.keytab を抽出します。

# kadmin.local -q "ktadd -k /etc/krb5.keytab host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.

これで設定は完了です。この段階ですべて完了です。

これ以降、SSH、RSH 接続を確立するたびに、ホストはキータブ ファイルを使用して KDC データベースに対して ID を検証し、Kerberos を介して安全な接続を確立します。

Ktadd は、新しいキータブを生成するか、kadmin コマンドから既存のキータブにプリンシパルを追加するために使用されます。

Ktremove は、既存のキータブからプリンシパルを削除するために使用されます。上記で作成したプリンシパルを削除するコマンドは、

kadmin.local -q "ktremove -k /etc/krb5.keytab –q all"

KDC データベースを削除する

何らかの理由で、KDC データベースを削除する必要がある場合は、次のコマンドを使用してください:

# kdb5_util -r MYREALM.COM destroy
kdb5_util: Deleting KDC database stored in /usr/local/var/krb5kdc/principal, you sure
(type yes to confirm)? <== yes
OK, deleting database '/usr/local/var/krb5kdc/principal'...

上記のコマンドの -f オプションは、KDC データベースを強制的に削除します。

KDC データベースのバックアップと復元

KDC データベースをファイルにバックアップするには、krb5_util_dump を使用します。

# kdb5_util dump kdcfile

# ls -l kdcfile
-rw-------. 1 root root 5382 Apr 10 07:25 kdcfile

上記の手順で作成したダンプ ファイルから KDC データベースを復元するには、次の手順を実行します。

# kdb5_util load kdcfile

Linux
  1. LinuxにNginxWebサーバーをインストールする方法

  2. Linuxサーバーのバックアップを簡単にするためにBorgmaticをインストールする方法

  3. 仮想化 Linux サーバーのインストール方法

  1. LinuxにSQLServerをインストールする方法

  2. サーバー用のSophosInterceptXAdvancedをインストールする方法

  3. Microsoft SQL Server for Linux (fedora) をインストールするにはどうすればよいですか?

  1. RHEL8LinuxにMinecraftサーバーをインストールする方法

  2. LinuxにMinecraftサーバーをインストールする方法

  3. LinuxでSSHの多要素認証を設定する方法