web-dev-qa-db-ja.com

認証のみにLDAPを使用するようにSambaを構成するにはどうすればよいですか?

バックエンド認証にLDAPを使用する新しいSambaファイル共有をセットアップしたいと考えています。 LDAPサーバーはすでにセットアップされており、Sambaサーバーが置かれるマシンは、LDAP認証を使用してSSHアクセスを許可するようにセットアップされています。

Samba/LDAP統合について文書化されている最も一般的な使用例は、LDAPサーバーへのSambaスキーマの保存、パスワードの同期、Sambaを介したLDAPへのパスワード更新の許可などです。私はそれを探していません-SambaサーバーにLDAPを介して匿名で認証してもらい、ユーザーのグループデータを取得して、認証をSamba構成で処理できるようにするだけです。

重要な場合:

  • LDAP:RHEL 7.4上のOpenLDAP 2.4
  • SMB:Ubuntu 18.04上のSamba 4.7

ここに私がこれまで持っているものがあります:

[global]
    server string = Samba Server (%v)
    workgroup = WORKGROUP
    interfaces = eno1
    server role = standalone server
    log file  = /var/log/samba/smb.log
    max log size = 10000
    log level = 3 passdb:5 auth:5

    passdb backend = ldapsam:ldaps://hostname
    ldap suffix = dc=hostname,dc=TLD
    ldap user suffix = cn=users,cn=accounts
    ldap group suffix = cn=groups,cn=accounts

[Share1]
    path = /srv/share1
    valid users = @group1, @group3
    force group = @group1
    read only = no
    browsable = yes

[Share2]
    path = /srv/share2
    valid users = @group2, @group3
    force group = @group2
    read only = no
    browsable = yes

ただし、Sambaは起動しません。 Systemctlのステータスは次のように表示されます。

../source3/passdb/secrets.c:362(fetch_ldap_pw)
  fetch_ldap_pw: neither ldap secret retrieved!
../source3/passdb/pdb_ldap.c:6542(pdb_init_ldapsam_common)
  pdb_init_ldapsam_common: Failed to retrieve LDAP password from secrets.tdb
../source3/passdb/pdb_interface.c:180(make_pdb_method_name)
  pdb backend ldapsam:ldaps://hostname did not correctly init (error was NT_STATUS_NO_MEMORY)

私はnotをしたいのですが、以下を実行する必要があります:

  • Sambaサーバー自体が使用する新しいユーザーを設定する
  • SambaにLDAPの変更を許可する
  • SambaスキームをLDAPにアップロードする

私はSambaに次のことを求めています。

  • インバウンド要求に有効なユーザー/パスがLDAPで構成されていることを確認します
  • ユーザーに関するLDAPのデータ(名前、グループなど)を使用して、独自の共有アクセス許可を構成する

他に何をする必要がありますか?

4
Brian Bauman

Sambaを、完全なActive Directoryモードではなく、単純なWinNT互換ドメインコントローラーモードで実行することを想定しています。

最初に、SMB認証はNTLMパスワードハッシュに基づいていることを理解する必要があります。基本的に、これはチャレンジ/レスポンス認証のクリアテキストの認証情報であり、LDAPユーザーエントリに保存できますが、個別の属性sambaNTPassword。属性serPasswordnotをまったく使用せず、Sambaはバインドを送信しませんユーザーのパスワードを確認するようにLDAPサーバーに要求します。

=> Sambaスキーマをインストールし、補助オブジェクトクラスsambaSamAccountをユーザーエントリに追加する必要があります。

適切な設定では、Samba DCのサービスユーザーにこの属性sambaNTPasswordの読み取りを許可する必要があります。 ACLは、他のユーザーがその属性を読み取れないようにする必要があります。

=> Sambaのサービスエントリを作成する必要がありますDC LDAPディレクトリにあり、ユーザーエントリに読み取りアクセスを許可します。

slapo-smbk5pwdと呼ばれるOpenLDAPサーバーオーバーレイもあります。これは、属性serPasswordがパスワード変更拡張操作で設定されている場合にsambaNTPasswordを更新します(- RFC 3062 )。これを使用すると、Sambaにユーザーエントリへの書き込みアクセスを許可する必要がなくなります。

2