ネットワークから離れると、LDAPユーザー認証とNFSホームディレクトリ共有はどうなりますか?


9

現在、私はホームネットワーク上に静的デスクトップとラップトップが混在するマシンをいくつか持っています。ローカルのホームディレクトリ、設定、およびセキュリティを持つことは、私にとって管理不可能であり、それらすべてにとって実用的ではないので、一般的なユーザー管理にLDAPを使用し、共有ホームディレクトリにNFSを使用することを検討しています。

ラップトップの1つが外出中の場合はどうなりますか?ホームネットワークに到達できないため、認証が失敗し、ローカルストレージにフォールバックしますか?また、ラップトップが戻ってきたときに、ホームストレージをNFSサーバーに再同期する方法はありますか?

回答:


6

NFSもLDAPも切断操作をサポートしていません。つまり、ラップトップがサーバーに到達できない場合、NFSマウントされたディレクトリにアクセスできず、ユーザー検索も実行できません。基本的には行き詰まります。

いくつかの回避策は次のとおりです。

NFS経由でホームディレクトリを移動する代わりに、ローカルディレクトリを使用し、中央サーバー上のディレクトリ と同期させることができます。サーバーに到達できない場合に操作を中止するテストによって保護されたcronからunisonを実行できます。AskUbuntuに関するこの投稿この他の投稿で は、同期のトピックに関するディスカッションといくつかの便利な提案を提供しています。

ユーザーの認証/承認の問題に関しては、ソリューションlibnss-dbはユーザー情報のソースとしてを使用することを中心に展開されます。

  • をインストールしてから、通常のものに加えてソースを検索するlibnss-dbように設定/etc/nsswitch.confします。dbfiles

    passwd:ファイルdbグループ:ファイルdbシャドウ:ファイルdb

    dbソースファイルは次の場所にあります/var/lib/misc/var/lib/misc/passwd.dbなど)。その後、これらのファイルのマスターコピーを中央サーバーに保存し、クライアントをrsync+ と同期させることができますcron。短所:サーバー上のdbファイルを管理する既製の管理スクリプト(私が知っている)がなく、同期の遅延が発生rsyncし、マスターサーバーに接続する方法を設定する必要があります。

  • nss-updatedbそしてlibpam-ccredsパッケージは、このセットアップを設定するためのクリーンな方法を提供しますとnss-updatedbローカルで再作成することができます passwd.dbし、group.db一方で、shadow情報がによって管理されていますlibpam-ccreds。これらの設定方法の説明READMEは、パッケージに付属のファイルにあります。


@ジョージ:この提案に感謝します!回答文を更新しました。
Riccardo Murri、

2

ファイル

ファイルについては、一般的なファイル(たとえば、Ubuntu OneまたはDropbox)のネットベースの同期を行い、それから大きなファイル(たぶん音楽、写真、ビデオ、Ubuntu ISO)の共有フォルダーを用意します。これは、NFSマウントである可能性があります。障害が発生しても、それほど問題にはなりません。Samba共有、またはおそらく他の多くのテクノロジーの1つです。

LDAP

LDAPが失敗すると間違いなく問題が発生します。通常は認識できないあらゆる種類のシステムアカウント(名前<-> id番号)は変換できず、システムは、最大で、1分間に繰り返しハングし、その間にLDAPサーバーからの応答を待機します。ローカルシステムにフォールバックします。または、システムがロックして完全に失敗する場合もあります。

これにはいくつかの方法があります。ローカルコピーをセットアップして、さまざまな方法で同期することができます。この質問およびリンクされた質問に対する他の回答を参照してください。LDAPからシステムユーザーを取得するのではなく、ローカルファイルから取得するようにLDAPに指示することもできます。私たちのサーバーでは、私たちは私たちの終わりに以下を入れましたldap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

すべてのシステムユーザーがそのリストに含まれていることを確認する必要があります。それでも、おそらくラップトップの使用には十分ではありません。

nss_ldapのmanページ

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

したがって、基本的にLDAPは、マスターサーバーに接続しなくてもユーザーを認識できないように見せかけるため、NSSはローカルユーザーにフォールバックし、システムは正常に動作します。

最後のアイデアの1つは、LDAPの学習に時間を費やす気がある場合は、代わりに基本的なパペットを学習し、それを使用してすべてのシステムですべてのユーザーを同じに保つことができるということです。たとえば、このパペットレシピを参照してください。Puppetを使用すると、他にも多くのことができるようになります-共通パッケージのインストール、さまざまな側面の共通セットアップ...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.