
私は、MacOS と Synology (私の NAS) の特殊な癖を考慮しながら、MacOS、iOS、Linux ネットワークで LDAP ベースの認証を設定するのに時間を費やしました。SSH ログイン (SSH キーなど) は機能し、Samba 共有マウントも機能します。すべて非常に面倒でしたが、今では LDAP について予想以上に詳しく知るようになりました。
しかし...
ネットワーク内のどのマシンにも (少なくとも理論上は) ログインできるようになったので、ユーザーがどこからでも同じホーム ディレクトリにアクセスできると便利だと思いました。問題ありません。autofs
これは LDAP からも管理できます。少なくとも私はそう思っていました...
Samba ホーム ディレクトリを設定するために、次のようなことを試していますautofs
。
cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,username=&,uid=&,gid=& ://s-sy-00.local/home
背景:
s-sy-00.local
ホームディレクトリが保存される Synology NAS です。/home
は、Synology が で定義されたユーザーに対して提供するホーム ディレクトリ共有の UNC ですusername=
。
問題は、SSH を使用してリモート マシンにログインしたときに発生します。 は、autofs
ユーザーのホーム ディレクトリをマウントしようとしますが、ユーザーのパスワードが必要です。password=
行のパラメータにパスワードを入力するautomountInformation
か、パラメータで渡す認証情報ファイルにユーザー名とパスワードを入力することができますcredentials=
。 どちらの方法でも、複雑さ (automount
ユーザーごとにエントリ) と重複 (同じユーザー名とパスワードが 2 つの異なる場所 (LDAP と認証情報ファイル、またはLDAP 内のautomount
とposixUser
) が増加します。
この問題に対処する標準的な方法はありますか? 私の検索エンジンのスキルでは、まだ何も見つかりません。
考えられる解決策は 3 つあると思います。
- 他の人には明らかだが、私にはそうではないもの。
- SSH キーを使用して、SSHFS 共有からユーザーごとに資格情報ファイル (LDAP から動的に生成される可能性あり) をマウントします。
- 本格的な SSO には Kerberos を使用します。
私は 1 番の方が好きです :-) Kerberos には嫌悪感を抱いています。やり過ぎのように思えますし、確かに比較的複雑です。
新年を幸先よくスタートするための知恵の言葉を誰か提供してくれませんか?
答え1
まあ、Linuxを使っていて、パスワード最初のログインの認証が必要な場合は、カーネル キーリングにパスワードを隠し、mount.cifs がそれを取得できる PAM モジュールを使用できます。cifs-utils に現在それが付属しているかどうかは 100% 確信はありませんが、cifscreds
同じことを実行する CLI ツールはあります。
それでも、個人的には、LDAP の代わりに Kerberos 認証を設定するでしょう。(つまり、LDAP はディレクトリ サービスの役割だけを担うようにします。) 全体的に Kerberos は LDAP とまったく同じです。外から見ると複雑に見えますが、よく見ると非常にシンプルであることがわかります。ただし、1980 年代にまで遡る無数の癖、エッジ ケース、奇妙な決定が、再び Kerberos を複雑にしています。
これは、SMB 固有の PAM ハックよりも少し汎用性が高く、同じチケットを SMB、NFS、LDAP、HTTP、SSH へのアクセスに使用できます。既存の LDAP サーバーを KDC データベース バックエンドとして再利用して、kprop を扱わずに無料でレプリケーションを取得することもできます。
mount.cifsでは、両方Kerberos と cifscreds は、オプションを使用して共有をマウントするときに使用することを目的としていますmultiuser
。これにより、NFS のような動作が可能になります。つまり、同じ SMB マウントに複数のユーザーがアクセスでき、カーネルは各 uid に対して正しい SMB 資格情報を自動的に使用します。
SSH 公開鍵認証に関しては、自動的に実行できることはあまりありません。資格情報ファイルを取得して で使用するかcifscreds
、資格情報ファイルを取得してkinit
... で使用するかのどちらかです。この場合も、後者の方が汎用性が高いと思います。
答え2
@user1686 の回答は正しいと思いますが、Kerberos ソリューションに移行する時間ができるまで、私が見つけた回避策を共有して使用したいと思います。
NAS 上に、私が呼び出したユーザーを作成し
smbowner
、パスワードを割り当てました。NASsmbowner
に管理者権限を付与したので、SMB 共有をマウントできるようになりました。SMB 共有をマウントする必要があるマシンに Samba 資格情報ファイルを作成しました。それを置く
/etc/samba/credentials/s-sy-00
と、次のようになります。
username=smbowner
password=whatever
資格情報ファイルにはドメイン定義が含まれていないことに注意してください。
- LDAP エントリを次のように変更しました。
cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,credentials=/etc/samba/credentials/s-sy-00,uid=&,gid=& ://s-sy-00.local/&
弁護するなら、この解決策は機能すると言えますが、私の環境よりも過酷な環境でどれだけ安全であるかはわかりません。
どのように動作するのでしょうか? smbowner
NAS 上の任意の共有をマウントするのに十分な権限があります。uid=&
およびgid=&
パラメータにより、ローカル ユーザーが共有にアクセスできるようになります。NAS 上の共有の権限設定については、後で実験してみます。
おそらくこれは他の誰かの助けになるだろう。
スティーブ