まず、背景ノート
まず、KerberosのKDC聞いて、ジュニア、「応用暗号」、より良いPKI非対称鍵配布メカニズムよりも、理解されている。この対称鍵配布メカニズムを感じていたはずです。しかし、SSLのシナリオ比較を使用して現実のために数年は、(主にHTTPS)を超えるので、理解KDCよりPKIの実際以上のとも接触していました。
KINITには、詳細な問い合わせがありません、具体的な原理は非常に明確ではありませんノートだけオペレータが別のホストアプリケーションにビッグデータプラットフォームのsshをホストするためのKerberos印象を連絡する必要があります。このごろ1は、第二は、ので、いくつかの共通語を探ることである後に、この記事では、と考えることができ、比較的空の気持ちでこのリンク文書の実現。
しかし、彼らはより良いいくつかのことであり、その基本的な考え方は、代名詞となっていること、また、その必要があります最初に明らかにKerberos KDCは、現在のデジタル署名証明書のPKIは、同じ考えの具体的な実現であるのと同様に、アイデアの具体的な実現です。
二、ケルベロス+ SSHのインストール構成
2.1 Kerberosのインストール構成
2.1.1操作前
sudoのパスワードフリーに現在のユーザー。編集の/ etc / sudoersファイルと次の行を追加します(私の現在のユーザーlsコマンド、その動作を変更):
LS ALL =(ALL)NOPASSWD:ALL
ドメインがローカルを指し、後続/ホスト名を使用します。最後LS-仮想マシンは、私の現在のホスト・コンピュータ名で、あなた自身を変える;加えている場合は/ etc / etc / hostsを編集は192.168.220.143が自分の中に、私の現在のコンピュータのIPである(以下を書き込み/ホスト)は、あなたがそれを削除する必要があり、127.0.0.1エントリにホスト名を解決するために存在します
127.0。0.1 ローカルホスト
192.168。220.143 monarch.example.com君主krb1.example.com krb1 LS-仮想マシン
Kerberosサービスのインストール2.1.2
須藤はapt インストールのkrb5-管理サーバkrb5の-KDC - Y
krb5の管理者 - サーバーのインストール(ケルベロス形でオペレーティングシステムがわずかな違いかもしれませんが、意味はほとんどすべてである)とき、いくつかの問題を確認するには、以下の入力が直接入力します。
デフォルトのフィールドを指定し、EXAMPLE.COMを使用します。
デフォルトのKerberosバージョン5領域?EXAMPLE.COM
デフォルトのフィールドは、Kerberosサーバを使用するために、使用krb1.example.com(フロント我々はまた、ローカルにポイント2.1 krb1.example.comを持っています)
あなたのレルムのKerberosサーバ:krb1.example.com
krb1.example.comの使用など、分野で使用されるデフォルトの管理サーバ:
お使いのKerberosレルムの管理サーバー:krb1.example.com
2.1.3初期設定
フロント構成データベースに対応するフィールドを初期化し、このフィールドにパスワードを設定するには、次のコマンドを使用してEXAMPLE.COM:
sudoのkrb5_newrealm
編集/etc/krb5.confのは、[のdomain_realm]神経節を対象に、以下の回復しました:
.example.comと= EXAMPLE.COM
example.comの= EXAMPLE.COM
そのログファイルディレクトリを設定し、ファイルの末尾に以下を追加、編集/etc/krb5.confのを続行します。
[ログ]
KDC = FILE:は/ var / log /ケルベロス/ krb5kdc.log
admin_serverの= FILE:は/ var / log /ケルベロス/ kadmin.log
デフォルト= FILE:/var/log/kerberos/krb5lib.log
/ var / log / Kerberosのディレクトリが存在しないので、私たちは、ディレクトリとファイルを作成するためにログを出しておりますので。
須藤MKDIRは/ var / log / ケルベロス
須藤のタッチは/ var / log /ケルベロス/ {krb5kdcは、kadmin、krb5lib} .logの須藤はchmod -R 750は/ var / log /ケルベロス
最後に、上記の構成を有効にするために、我々はサービスを再起動する必要があります。
sudoを呼び出す- rc.dののkrb5の-ADMIN- サーバーの再起動
sudoを呼び出す- rc.dのkrb5の-KDCの再起動
2.1.4ポリシーセットを作成します。
次のようにポリシーセットはルールの集まりである、我々は、(、minclassesは、パスワード要素タイプですMINLENGTHパスワード長ポリシーが設定されている)管理者/ホスト/サービス/ユーザーここでは4つのポリシーセットを作成しました:
LS LS-仮想マシン@:〜$ sudoをのkadmin.local 主要ルートとして認証 / パスワードで[email protected]。 kadmin.local:ADD_POLICY -minlength 8 -minclasses 3 管理 のkadmin.local:ADD_POLICY -minlength 8 -minclasses 4 ホスト のkadmin.local:ADD_POLICYの -minlength 8 -minclasses 4 サービス のkadmin.local:ADD_POLICY -minlength 8 -minclasses 2 ユーザ はkadmin。ローカル: のkadmin.local:終了
2.1.5は、ルールの特定のセットでアカウントを作成します
(LSが自分の中に、私の現在のユーザー名です)、ユーザー名、どのメンバーシップユーザーのユーザーポリシーセットを表し、LSであり、アカウントがチケットを取得するためにパスワードを使用するため、パスワードを忘れてはなりません。
LS LS-仮想マシン@:〜$ sudoをのkadmin.local 主要ルートとして認証 / パスワードで[email protected]。 kadmin.local:addprinc -policyユーザーLSは パスワード入力のためのプリンシパルを" [email protected] " : 再 -ENTERパスワードのための主要な" [email protected] " : 校長" [email protected] " を作成。 kadmin.local: のkadmin.local:終了
2.2 SSHは、Kerberosを統合しました
上記の手順の後、我々はKerberosをインストールしている、と今でKerberos認証とログインを完了するために、sshを使用する方法を実証します。
2.2.1 SSHをインストール
sudoの aptのインストールのopenssh-サーバのopenssh-クライアント
2.2.2 SSHの構成のサポートKerberos認証
編集は、/ etc / ssh / sshd_config、以下が有効になっている(有効「はいUsePAM」一般の最後):
GSSAPIAuthenticationはい
はいGSSAPICleanupCredentials
はいGSSAPIKeyExchange
はいUsePAM
有効にするには、SSHの設定を再起動します。
sudoを呼び出す-rc.dのがSSHの再起動
SSHログインルールの作成2.2.3
サービスはまだあなたが前に追加した当社のサービスポリシーセットで、ホストは、Telnet / RSH / SSHおよびその他のサービスは、Kerberosで呼ばれている、monarch.example.comは、該当するホスト名をルール:
LS LS-仮想マシン@:〜$ sudoをのkadmin.local 主要ルートとして認証 / パスワードで[email protected]。 kadmin.local:addprinc -policyサービス-randkeyホスト/ monarch.example.com 校長" host/[email protected] " を作成。 kadmin.local:ktaddを -k /etc/krb5.keytab -norandkeyホスト/ monarch.example.com エントリ用 KVNOと主要ホスト/ monarch.example.com 1、暗号化型AES256-CTS-HMAC-sha1- 96はキータブに追加しましたWRFILEます。/ etc / krb5.keytab。 エントリのための主ホスト/ monarch.example.com KVNOで1、暗号化型ARCFOUR-HMACはWRFILEキータブに追加:の/ etc / krb5.keytabを。 エントリのための主要なホスト/ monarch.example.com KVNOと1、暗号化型DES3-CBC-SHA1はWRFILEをキータブに追加:の/ etc / krb5.keytab。 エントリのための主要なホスト/ monarch.example.com KVNOと1、暗号化タイプはDES-CBC-CRCはWRFILEをキータブに追加:の/ etc / krb5.keytab。 kadmin.local: のkadmin.local:終了
2.2.4ユーザ紙幣を得ます
LSが自分の中に、私の現在のユーザー名であり、ルールが2.5パスワードを作成したときに法案パスワードが設定され得る(klistを-f現在存在して請求書を表示するには):
LS〜$のkinit:LS-仮想マシン@ lsの パスワードのため のls :EXAMPLE.COM @ LS〜:LS-仮想マシン@ $ LS - :@ LS-仮想マシン〜$のklistをF FILE:チケットキャッシュは/ tmp / krb5cc_1000 :デフォルトの主要LS @ EXAMPLE.COM 有効な開始は、サービスプリンシパル有効期限 2019 - 08:-06T15 56:52 2019 - 08 -07T01を:56:52 のkrbtgt / [email protected] 更新まで 2019- 08 -07T15:54:39、フラグ:FPRIA
2.2.5テストログ
取得したユーザ(LS)を使用してノートを使用し、(monarch.example.com)法案は、ログインして、パスワードが次のようにログインするために必要とされないホストすることができます。
第三に、原則として分析
そこに多くの概念であり、彼は確認されていませんので必要な裁量を読んでそうするとき、理解は、バイアスされ、あるいは間違っている可能性があります。
3.1 KDC原理
役割:鍵配布センターKDC、ユーザーA、B。KDCは、格納されたユーザA、ユーザBを保持して、対称鍵、ユーザAの通信、ユーザBは、KDC対称鍵との通信を有します。
所望の動作:ユーザーAとユーザーBが通信したいです。
実装:KDCへのユーザA、K使用してA-KDCは、暗号化されたユーザBのと通信するような要求を送信します。
K使用して、要求を受信するとKDC A-KDCの復号化を、K発生A-Bを、その使用K A-KDCは K使用して暗号化に送信B-KDCは暗号化とBに送信
K使用して、それぞれA及びBを受信した後、A-KDCとK B-KDCを K解読A-Bを。
使用K A-Bは Bに暗号化されたメッセージを送信します。
注意:あなたが見ることができ、このモードでKDCキーストアのユーザーとのすべての通信必要があり、すべてのユーザーが通信のみKDCキー、ユーザーおよび動的に生成され、配布されたユーザ間のキーを格納する必要があります。
3.2 Kerberosのプロセス
役割:サーバーTGS、サーバーDS、クライアントAを承認する法案、AS認証サーバ、最初の2つの等価KDCは、最初の3つは3台のKerberosサーバと呼ばれています。相互の通信に使用される最初の3つの対称鍵を格納し、クライアントは任意のA対称鍵を格納しません。
所望の動作:クライアントとサーバー側のDSは通信したいです。
実装プロセス:ASへのクライアントAは、プレーンテキストで、TGSにアクセスするための法案のコピーを入手します。
リクエストを受信すると、正しい場合、検証は、ユーザー名とパスワードを送信し、K生成A-TGSは、とKでパスワードを生成するためにそれらを使用-などの暗号化とAに送られ、K使用してAS-TGSは、 TGSに暗号化して送信。
レシートAも暗号Kを生成した後、A-として復号化を、TGSはKを使用するAS-TGSの解読。
K使用して得られたA-TGS TGS要求Bと通信するために暗号化を、
TGSはK使用して、要求を受信するとA-TGSは、 Kを生成するために、彼の意図に応じて、復号A-Bを、それぞれK用いA TGS-は K使用して、暗号化され、Aに送信されたB-TGSを Bに暗号化して送信します
K使用して、それぞれA及びBを受信した後、A-TGS及びK B-TGSを K解読A-Bを。
使用K A-Bは Bに暗号化されたメッセージを送信します。
説明:KerberosのKDCは2つのASとTGSサービスに分割されます、この利点は、K A-TGSはのKフロントとして、もはや有効で-KDCとして長期的効果、ときK A-TGS期限切れのユーザーができた後、新しいK得るためのパスワードを入力し-TGSを。
ケルベロスの3.3 SSHプロセス
ロール対応:ケルベロス甲斐まだ最初の理解していない上にあるTGS ASではありませんどのようなプロセス/サービス分析、SSHサーバがDSに相当し、SSHクライアントは、クライアントAに相当します
操作に対応:2.1.5は、アカウントを作成し、それがASデータベースにアカウント情報をインポートすることです。
2.2.4のkinit LSは、AS TGSチケットにアクセスするために適用することです。
2.2.5のみTGSのSSHサーバへのアクセスを要求して登録し、SSHクライアント。
3.4 KDCとPKIのメリットの分析
ビューの点から最終的な結果は、KDCとPKIは効果が同じであることを、対称鍵の配布を完了しました。
ビューの事前条件の観点から、KDC環境に留まることを意図し、すべての最初のは、最後に加入者の増加と成長と共に記憶されるために、その意思に続いて特殊サービス(デバイス)、ユーザデータ(ユーザ名、パスワード、または対称キー)を必要ユーザーとKDC間の使用は、対称鍵が非なしの問題であってもよいことです。
要するに、我々は、外部のネットワーククライアントとサーバー間の通信に適用される内部ネットワーク・サービス、PKIとの間の通信に適用KDCを感じます。
参考:
http://techpubs.spinlocksolutions.com/dklar/kerberos.html#krb-install