web-dev-qa-db-ja.com

複数のサーバー間でユーザーアカウントを同期する

複数のサーバー間でユーザーアカウントを管理するためのより良い方法があるかどうか疑問に思っていました。

現時点では、自分のホーム/開発マシンにメインユーザーアカウント(「user」など)があり、サーバーごとに同じ「ユーザー」アカウントを手動で作成しています。次に、rsyncを使用して、.sshディレクトリおよびその他の必要なディレクトリを新しい各サーバーにコピーします。

これは現在管理している2台のサーバーの管理には問題ないようですが、10台以上のサーバーに同じことをすることは想像できません。

ありがとう!

7
Ricky Hewitt

2つの一般的なアプローチがあります

  • 中央認証(ldap、nis)をセットアップします。
  • 構成管理システム(puppet、chef、cfengine、シェルスクリプト)をセットアップして、アカウントを自動的に作成し、すべての管理対象システムの環境を構成します。

中央認証システムは、すべてのシステムがすべて同じ組織の管理下にある場合に適しています。多くのユーザーがいて、ログインするだけで多くのことに認証を使用する必要がある場合に必要になる傾向があります。

少数のリモート管理者アカウントとサービスアカウントを設定する必要があるだけの場合は、構成管理の方法が適しています。

10
Zoredache

小規模/単純な展開の場合、 インターネットアカウントレプリケーション (IAR)というプロジェクトが役立ちます。シンプルなサーバークライアントアーキテクチャで、SSHを使用して資格情報を同期します。

4
Richlv

また、Zoredacheの回答に加えて、NISは数人以上のユーザーが使用したり、パブリックアクセスを含めたりするための方法ではないということも付け加えておきます。 NISにはかなりの癖があり、NISに重大なセキュリティリスクを導入するのは非常に簡単です。

パスワードハッシュがpasswdユーザーマッピングに含まれている実装を見てきました。

また、ブロードキャストしているNISネットワークに悪意のあるサーバーを挿入するのも簡単です。 passwdマップに含まれているパスワードハッシュでは特に危険です。 Ubuntuボックスをインストールし、 '' apt-get install nis ''を実行すると、ネットワーク上のユーザーのリストを取得できます。

3
Magellan

この問題を解決することが [〜#〜] nis [〜#〜] が発明された理由です。

0
Ansgar Wiechers