Samba verwendet Freeipa-Authentifizierung für Windows-Clients, die auf CIFS-Freigaben zugreifen

2431
bgStack15

TL; DR

Ich möchte, dass ein Windows-Client mithilfe eines freeipa-Berechtigungsnachweises auf eine Samba-Freigabe zugreifen kann.

Problem

Dies ist ein Superuser und kein Serverfehler, da es sich nicht um eine Arbeitsproduktionsumgebung handelt. das ist mein Heimnetzwerk. Es gibt viele Handbücher für die Verwendung von GNU / Linux-Samba für die Interoperabilität mit Windows. Ich möchte jedoch keine domänenübergreifende Vertrauensstellung haben (meine Windows AD-Domäne wird irgendwann weg).

Kann ich Samba so konfigurieren, dass es auf freeipa (ipasam? Ldapsam?) Verweist, sodass ich auf meinem Windows-Client (ich bleibe für Spiele) "bgstack15@myfreeipadomain.example.com" verwenden kann, um eine Verbindung zum \ linuxserver \ sharename herzustellen?

Ich weiß, wie Samba so konfiguriert wird, dass eine vorhandene AD-Domäne für einen GNU / Linux-Host mit Domäne verwendet wird. Dies ist jedoch nicht der Fall, den ich hier mache. Mein Host ist diesmal der freeipa-Domänencontroller, aber ich könnte einen freeipa-Client zu meinem Dateiserver machen. Ich habe NFS für die anderen Linux-Hosts, aber meine schnelle Suche in "NFS-Fenstern" hat nichts gezeigt, was besser / einfacher als mein gewünschtes Ziel wäre.

Möglichkeiten

  • Kann ich ipasam oder ldapsam backends verwenden?
  • Könnte ich Samba als "Windows-Domänencontroller" verwenden, der IPA-Domäne vertrauen und die Benutzer zuordnen?

Update am 7. September

Ich habe https://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/ gefunden und bin den Schritten gefolgt, die zeigen, wie das Schema von freeipa geändert wird, um Samba-Eigenschaften einzuschließen. Ich erhalte jedoch immer noch Fehler: NT_STATUS_WRONG_PASSWORD.

0

1 Antwort auf die Frage

0
bgStack15

Nach 8 Monaten habe ich das Problem endlich gelöst!

Samba-Freigabe mit Freeipa Auth

Die vollständigen Informationen finden Sie unter https://bgstack15.wordpress.com/2017/05/10/samba-share-with-freeipa-auth/ .

Auf dem Freeipa-Controller:

yum -y install ipa-server-trust-ad ipa-adtrust-install --add-sids 

Nach dem Ausführen der --add-sids müssen Benutzer ihre Kennwörter zurücksetzen, damit freeipa den ipaNTHash-Wert ihrer Kennwörter generiert.

Auf dem Samba-Server:

yum -y install ipa-server-trust-ad 

Öffnen Sie die gewünschten Firewall-Ports (TCP 135,138,139,445,1024-1300; UDP 138,139,389,445).

Erlaube Samba, Passwörter zu lesen

ipa permission-add "CIFS server can read user passwords" \ --attrs= \ --type=user --right= --bindtype=permission ipa privilege-add "CIFS server privilege" ipa privilege-add-permission "CIFS server privilege" \ --permission="CIFS server can read user passwords" ipa role-add "CIFS server" ipa role-add-privilege "CIFS server" --privilege="CIFS server privilege" ipa role-add-member "CIFS server" --services=cifs/host2.vm.example.com 

Samba-Conf vorbereiten und Samba neu starten.

tf=/etc/samba/smb.conf touch "$"; chmod 0644 "$"; chown root:root "$"; restorecon "$" cat < "$" [global] debug pid = yes realm = VM.EXAMPLE.COM workgroup = VM domain master = Yes ldap group suffix = cn=groups,cn=accounts ldap machine suffix = cn=computers,cn=accounts ldap ssl = off ldap suffix = dc=vm,dc=example,dc=com ldap user suffix = cn=users,cn=accounts log file = /var/log/samba/log max log size = 100000 domain logons = Yes registry shares = Yes disable spoolss = Yes dedicated keytab file = FILE:/etc/samba/samba.keytab kerberos method = dedicated keytab #passdb backend = ipasam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket #passdb backend = ldapsam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket passdb backend = ipasam:ldap://host2.vm.example.com ldap://host1.vm.example.com security = USER create krb5 conf = No rpc_daemon:lsasd = fork rpc_daemon:epmd = fork rpc_server:tcpip = yes rpc_server:netlogon = external rpc_server:samr = external rpc_server:lsasd = external rpc_server:lsass = external rpc_server:lsarpc = external rpc_server:epmapper = external ldapsam:trusted = yes idmap config * : backend = tdb  ldap admin dn = cn=Directory Manager  [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes EOFCONF systemctl restart smb.service