Kerberosは、対称鍵暗号を使用するネットワーク認証プロトコルであり、クライアントサーバーアプリケーションを認証するには、信頼できるサードパーティからの認証が必要です。もともとは、マサチューセッツ工科大学(MIT)によって、アテナプロジェクトによって提供されるネットワークサービスを保護するために開発されました。
現代の世界では、Kerberosはサードパーティの認証サービスとしてよく使用されます。これは、すべてのクライアントが別のクライアントのIDに関するKerberosの判断を信頼していることを意味します。
このチュートリアルでは、2台のUbuntu18.04サーバー間でKerberos認証を設定する方法を示します。 UbuntuサーバーにKerberosサーバーをインストールして構成してから、もう一方のサーバーにKerberosクライアントをインストールします。最後に、Kerberosサーバーを使用したSSHサービスの認証をテストします。
前提条件
- Ubuntuサーバー18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
- root権限
私たちが行うこと:
- FQDNファイルの設定
- KDCKerberosサーバーをインストールします
- KDCKerberosサーバーを構成する
- Kerberosクライアントのインストールと構成
- テスト
まず、KerberosサーバーでFQDNを構成してから、サーバーの「/ etc/hosts」ファイルを編集する必要があります。
次のコマンドを使用して、KerberosサーバーのFQDNを変更します。
hostnamectl set-hostname krb5.ahmad.io
その後、vimエディターを使用して「/ etc/hosts」ファイルを編集します。
vim /etc/hosts
IPアドレスとFQDNを独自のものに変更して貼り付けます。
10.10.10.15 krb5.ahmad.io krb5
保存して閉じます。
次に、以下の「ping」コマンドを使用してテストし、FQDNが正しいIPアドレスに解決されていることを確認します。
ping -c 3 $(hostname -f)
次に、Kerberosサーバーを「krb5」サーバーにIPアドレス「10.10.10.15」でインストールします。FQDNは「krb5.ahmad.io」です。
次のaptコマンドを使用してKerberosサーバーをインストールします。
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
インストール中に、Kerberosレルム、レルムのKerberosサーバー、および管理サーバーについて尋ねられます。
デフォルトでは、KerberosはKerberosサーバーのドメイン名をREALMとして使用します。' AHMAD.IO '。
Kerberosサーバーは'krb5.ahmad.io '。
また、Kerberosサーバーと同じ管理サーバー' krb5.ahmad.io '。
インストールが完了すると、Kerberosサービスの実行に失敗したことが表示されます。次の段階で構成するので問題ありません。
次に、次のコマンドを使用して、KerberosREALMの新しい強力なマスターパスワードを生成します。
sudo krb5_newrealm
強力なパスワードを入力すると、REALMパスワードが「/ etc / krb5kdc/stash」ファイルに生成されます。
その後、KDC Kerberosサーバーの管理者ユーザー(adminプリンシパル)を作成し、Kerberosサーバーのホスト名をデータベースに追加してから、Kerberosサーバーのキータブを作成する必要があります。
以下のKerberos管理コマンドの「kadmin.local」コマンドラインインターフェイスを実行します。
sudo kadmin.local
'root'という名前の新しい管理者ユーザープリンシパルを作成します。
addprinc root/admin
「root」管理者プリンシパルの強力なパスワードを入力します。
KDC Kerberosサーバーをデータベースに追加し、KDCホストのキータブファイルを作成します。
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
次に、「kadmin.local」ユーティリティを閉じます。
quit
次に、「/ etc / krb5kdc / kadm5.acl」ファイルを編集して、「root」管理原則をアクセス制御リストに追加する必要があります。
vim /etc/krb5kdc/kadm5.acl
次の構成を追加します。
root/admin *
構成を保存して閉じてから、Kerberosサービスを再起動します。
sudo systemctl restart krb5-admin-server.service
これで、KDCKerberosサーバーの構成が完了しました。
このステップでは、KerberosクライアントをUbuntuサーバーにIPアドレス「10.10.10.16」とホスト名「client1」でインストールします。
-FQDNを構成する
次のコマンドを使用して、クライアントマシンでFQDNを構成します。
hostnamectl set-hostname client1.ahmad.io
その後、vimエディターを使用して「/ etc/hosts」ファイルを編集します。
vim /etc/hosts
KDCKerberosサーバーとクライアントの両方を以下のように貼り付けます。
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
保存して閉じます。
-Kerberosクライアントをインストールします
次のaptコマンドを実行してKerberosクライアントパッケージをインストールします。
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
インストール中に、Kerberosレルム、レルムのKerberosサーバー、および管理サーバーについて尋ねられます。
デフォルトでは、KerberosはKerberosサーバーのドメイン名をREALMとして使用します。' AHMAD.IO '。
Kerberosサーバーは'krb5.ahmad.io '。
また、Kerberosサーバーと同じ管理サーバー' krb5.ahmad.io '。
これで、Kerberosクライアントのインストールが完了しました。
-Kerberosクライアントを構成する
クライアントマシンから、「kadmin」コマンドを使用してKDCKerberosサーバーに接続します。
kadmin
そして、「root/admin」原則のパスワードの入力を求められます。パスワードを入力すると、KDCKerberos管理システムにログインします。
次に、クライアントFQDN'client1.ahmad.io'をKerberosデータベースに追加し、クライアントのキータブファイルを追加します。
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
次に、kadminKerberos管理インターフェースを閉じます。
quit
これで、Kerberosクライアントの構成が完了しました。
このテストの目的で、Kerberosを使用してSSH認証を構成します。クライアントマシン「client1.ahmad.io」は、Kerberos認証を使用してSSH経由でサーバー「krb5.ahmad.io」に接続します。
-'krb5.ahmad.io'サーバーのセットアップ
'ammar'という名前の新しいシステムユーザーを作成します。
useradd -m -s /bin/bash ammar
KDC Kerberos管理にログインし、「ammar」という新しいプリンシパルユーザーを追加します。
kadmin.local
addprinc ammar
Kerberos管理インターフェースを閉じて、ssh構成'/ etc / ssh/sshd_config'を編集します。
vim /etc/ssh/sshd_config
'GSSAPIAuthentication'のコメントを解除し、値を''に変更して有効にします。
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
構成を保存して閉じてから、sshサービスを再起動します。
systemctl restart sshd
-'client1.ahmad.io'マシンのセットアップ
クライアントマシンに新しいシステムユーザー「ammar」を追加し、ログインします。
useradd -m -s /bin/bash ammar
su - ammar
その後、Kerberosユーザープリンシパル「ammar」を初期化します。
kinit ammar
ユーザーのパスワードを入力し、その後、次のコマンドを使用して利用可能なチケットを確認します。
klist
そして、次の結果が表示されます。
これで、SSHKerberos認証を使用して「krb5.ahmad.io」サーバーに接続できます。
ssh krb5.ahmad.io
そして、Kerberos認証を使用したSSHを介して「krb5.ahmad.io」サーバーに接続されます。
以下は、サーバーにログインした後のSSHログです。
最後に、Ubuntu18.04でのKerberosサーバーとクライアントのインストールと構成が正常に完了しました。