小規模のラボでは、資格情報をどのように同期しますか? (LDAPに対する非常に効率的な代替)

小規模のラボでは、資格情報をどのように同期しますか? (LDAPに対する非常に効率的な代替)

私たちは20のLinuxシステム(RaspberryPI、NAS、デスクトップコンピュータ)で小規模の研究室を運営しており、すべてsudo権限を必要とする4人の科学者と共に研究を進めています。

私たちは、4人のユーザーがすべてsudo権限と物理アクセス権を持っているので信頼します。ラボネットワークはローカルネットワークなので、インターネットからアクセスできません。

今、資格情報を同期しようとしています。あるユーザーがパスワードを変更する場合は、他の19のシステムでパスワードを手動で変更しないでください。

LDAPのような複雑なソリューションは避けたいです。私の心に浮かんだ最初のアイデアは、NASの資格情報を単一のソースとして維持し、scpを介してsystemdモジュールのクライアントにコピーすることでした。

しかし、私は車輪を再発明してパッケージ/ソリューションを準備していますが、間違ったクエリを試しているようです。

このシナリオでは、一般にどのパッケージまたはソリューションが使用されますか?

答え1

今、資格情報を同期しようとしています。あるユーザーがパスワードを変更する場合は、他の19のシステムでパスワードを手動で変更しないでください。

LDAPは、UID / GIDやホームディレクトリなどのユーザー属性を保存するために使用されます。まさか最初にすることは資格情報を保存することです(もちろんそうすることもできます)。

私の提案は、例えばMITのkrb5-kdcを使ってKerberosを設定することです。

  1. Debian にインストールkrb5-user, krb5-kdc, .krb5-admin-server
  2. ドメイン名の選択(最大実際のDNSドメイン名に対応しますが、必ずしも必要ではありませんが、常に大文字で表示されます。
  3. kdb5_util create -sKDCデータベースの初期化を実行します。 (これ-sを行うと、データベースの横にあるファイルにマスターキーが保存されます。)
  4. kadmin.localアイテムの作成を開始するには、次の手順を実行します。
    • ユーザーアカウントを追加:addprinc fred
    • サーバーを追加:addprinc -nokey host/fredpc.example.com
    • ホストのキータブを抽出します。ktadd -k /tmp/fredpc.keytab host/fredpc.example.com
    • (ホストの場合、次の部分はhost/ホスト自体がFQDNと見なすもの、つまりhostname -fそのサーバーに報告されているものと一致する必要があります。)
  5. 起動krb5-kdc.serviceし、サーバーのファイアウォールがインバウンドポート88(TCP)を許可していることを確認してください。そしてUDP)(Kerberos要求の場合)。

(Kerberosを介してUIDまたはログインシェルを定義しないことに注意してください。これは通常の/ etc / passwdに残すことができ、ホスト間で同じである必要はありません。Kerberosはアカウントソースに関係なく認証に使用できます。)

すべてのサーバーで:

  1. krb5-userDebianにインストールしてくださいlibpam-krb5
  2. プロンプトが表示されたら、ゾーン名とKDCホスト名を入力します。 (後者はDNS SRVレコードを介して設定することで、ホストごとのステップを減らすことができます。どちらのオプションも/etc/krb5.confにあるため、ここで直接展開できますscp。)
  3. ホストのキータブを/etc/krb5.keytab(モード0600)にコピーします。

これは少しではありません。シンプルしかし、(IMHO)はまだLDAPよりも単純です。

オプション:

  • PAMを混乱させたくない場合、OpenSSHには実際にKerberos認証パスワードのサポートが組み込まれています。これはKerberosAuthenticationsshd_config のオプションです。 PAMモジュール(krb5.conf、krb5.keytab)と要件は同じです。ただし、PAMは「passwd」を介してパスワードの変更も処理するため、これを使用しない場合は、ユーザーにそれを実行するように指示する必要がありますkpasswd

  • ボーナスとして、Kerberosはあるホストから別のホストへのパスワードなしのSSHであるSSOを提供します。これはsshd_configの別のオプションですGSSAPIAuthentication。 pam_krb5で取得したチケットまたは手動で取得したチケットを使用しますkinit。 (GNOMEとWindowsは自動的に処理し、SSHキーのように透明にします。)

関連情報