Kurz zusammengefasst
Ich möchte, dass ein Windows-Client mithilfe von FreeIPA-Anmeldeinformationen auf eine Samba-Freigabe zugreifen kann.
Problem
Dies ist ein Superuser und kein Serverfehler, da es sich nicht um eine Arbeitsumgebung handelt; dies ist mein Heimnetzwerk. Es gibt viele Anleitungen zur Verwendung von GNU/Linux Samba für die Interoperabilität mit Windows. Aber ich möchte kein domänenübergreifendes Vertrauen (meine Windows AD-Domäne wird irgendwann verschwinden).
Kann ich Samba so konfigurieren, dass es auf freeipa (ipasam? ldapsam?) verweist, sodass ich auf meinem Windows-Client (den ich für Spiele verwende) "[email geschützt]" um eine Verbindung zum \Linuxserver\Sharename herzustellen?
Ich weiß, wie man Samba so konfiguriert, dass eine vorhandene AD-Domäne für einen domänengebundenen GNU/Linux-Host verwendet wird, aber das mache ich hier nicht. 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 nach „NFS Windows“ hat nichts ergeben, was besser/einfacher wäre als mein gewünschtes Ziel hier.
Möglichkeiten
- Könnte ich ipasam- oder ldapsam-Backends verwenden?
- Könnte ich Samba als „Windows-Domänencontroller“ verwenden und dafür sorgen, dass es der IPA-Domäne vertraut und die Benutzer zuordnet?
Update vom 7. September
ich fandhttps://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/und bin den Schritten gefolgt, die zeigen, wie man das Schema von freeipa ändert, um Samba-Eigenschaften einzuschließen. Aber ich bekomme immer noch die Fehlermeldung: NT_STATUS_WRONG_PASSWORD.
Antwort1
Nach 8 Monaten habe ich das Problem endlich gelöst!
Samba-Freigabe mit FreeIPA-Authentifizierung
Die vollständigen Informationen finden Sie unterhttps://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 von --add-sids müssen Benutzer ihre Passwörter zurücksetzen, damit freeipa den ipaNTHash-Wert ihrer Passwörter generieren kann.
Auf dem Samba-Server:
yum -y install ipa-server-trust-ad
Öffnen Sie die erforderlichen 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={ipaNTHash,ipaNTSecurityIdentifier} \
--type=user --right={read,search,compare} --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
Bereiten Sie die Samba-Konfiguration vor und starten Sie Samba neu.
tf=/etc/samba/smb.conf
touch "${tf}"; chmod 0644 "${tf}"; chown root:root "${tf}"; restorecon "${tf}"
cat < "${tf}"
[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