derwowusste
Goto Top

Kann man auf einer Sambafreigabe auch Domänencomputerkonten als zugriffsberechtigt eintragen?

...Expertenfrage...

Moin Kollegen.

hier kommt gerade die Frage auf, ob/wie man auf einem Sambashare (Samba:letzte Version, Domäne: 2008, zugreifendes System: 2008 r2) denn Domänencomputer (das Systemkonto) als zugriffsberechtigt eintragen kann. Mit
 chown nutzer@domäne:domänen-benutzer@domäne Zieldatei 
geht es für Nutzer, aber sowohl
 chown rechnername$@domäne:domänen-benutzer@domäne Zieldatei 
als auch
 chown rechnername$@domäne:domänen-computer@domäne Zieldatei 

liefern nur invalid user: `rechnernamedomäne:domänen-benutzer@domäne
Hingegen mit escape-Character
 chown rechnername\$@domäne:domänen-benutzer@domäne Zieldatei 
wird der Rechnername zwar eingetragen, aber es ist kein Zugriff mit dem Computerkonto möglich. Letzteres wurde getestet von dem eingetragenen Rechner aus über eine Shell, die per psexec -s -i cmd mit Systemrechten gestartet wurde.

Windows kann das, Samba nicht?

Content-Key: 182266

Url: https://administrator.de/contentid/182266

Printed on: April 24, 2024 at 18:04 o'clock

Member: delemming
delemming Mar 20, 2012 at 20:46:10 (UTC)
Goto Top
Member: DerWoWusste
DerWoWusste Mar 20, 2012 at 23:00:26 (UTC)
Goto Top
Eine Frage, bevor ich darauf einsteige: wir haben keine Samba-Domäne, nur eine Samba-Freigabe. Kann man denn am Server mit dieser Freigabe ebenso Machine-Accounts anlegen?
Member: delemming
delemming Mar 21, 2012 at 00:42:02 (UTC)
Goto Top
hey,

theoretisch sollte es möglich sein, die auth-anfragen via winbind direkt an den w2k8 dc durchzuleiten, dann übernimmt der die Auth für den samba.
Member: DerWoWusste
DerWoWusste Mar 21, 2012 at 08:27:23 (UTC)
Goto Top
Ich rekapituliere:
Wie gesagt haben wir schon erfolgreich Domänenbenutzerkonten eintragen können - auch Domänencomputerkonten stehen als berechtigt in der ACL - es funktioniert nur bei letzteren nicht, während die Nutzer funktionieren. Meine Frage zielt also darauf ab, wie man Domänencomputerkonten "richtig" einträgt bzw. ob das überhaupt geht.

Da wir keinen Samba-DC haben, verstehe ich das so, dass Deine Methode weder nötig, noch durchführbar ist, denn winbind läuft schließlich bereits einwandfrei.
Member: delemming
delemming Mar 21, 2012 at 21:20:22 (UTC)
Goto Top
Hmmm, ich wer mal rumbasteln, aber per se musst ich gestehen, das mir da auch nix weiter zu einfällt.
Member: Guenni
Guenni Mar 22, 2012 at 12:24:32 (UTC)
Goto Top
Hi DerWoWusste,

Zu deiner Frage "Kann man auf einer Sambafreigabe auch Domänencomputerkonten als zugriffsberechtigt eintragen?"

eines vorweg: Ich habe einen Samba-DC und einen Windows-Client (pcstation). Entspricht also nicht deiner Umgebung,

aber du kannst ja versuchen, ob das Anlegen eines Computer-Kontos so bei dir funktioniert. Also . . .


. . . um diesen Client in die Samba-Domäne aufzunehmen, habe ich eine Computer-Gruppe erstellt (wclients).

Der Eintrag in der Datei /etc/group sollte dann so aussehen:

wclients:x:1001:

Anschließend wird der Computer wie ein "normaler" Benutzer angelegt, aber mit $-Zeichen am Ende.

Zum zweiten muß das Computer-Konto in der Passwort-Datei des Samba-Servers eingetragen werden.

Beides erledige ich mit dem Script pcadd. Das $-Zeichen muß hierbei im Script maskiert werden.

Inhalt der Datei pcadd:

#!/bin/bash
useradd -g wclients -d /dev/null -s /bin/false -c "NT-Computer" $1\$  
smbpasswd -a -m $1\$


Aufruf: pcadd pcstation

Erklärung der Parameter . . .

. . . beim Befehl useradd:

- g : Zu dieser Gruppe gehört der Computer

- d : Der Computer hat kein Home-Verzeichnis

- s : Der Computer hat keine Shell

- c : Kommentar

- $1 : Ist der Computername, der beim Aufruf des Scripts übergeben wird

- \$ : Computerkonten enden mit einem $-Zeichen, damit Linux "weiss", dass es sich um ein Computer-Konto handelt.

. . . beim Befehl smbpasswd:

- a : hinzufügen

- m : Es handelt sich um ein Computer-Konto

- $1 : Ist der Computername, der beim Aufruf des Scripts übergeben wird

- \$ : Computerkonten enden mit einem $-Zeichen, damit Samba "weiss", dass es sich um ein Computer-Konto handelt.


Nach Aufruf pcadd pcstation ist in der Datei /etc/passwd folgender Eintrag vorhanden:

pcstation$:x:1001:1001:NT-Computer:/dev/null:/bin/false


Nun zu deinen Fragen:

1. Frage im Titel: "Kann man auf einer Sambafreigabe auch Domänencomputerkonten als zugriffsberechtigt eintragen?"

2. Frage im Kommentar: "Kann man denn am Server mit dieser Freigabe ebenso Machine-Accounts anlegen?"

3. Nächste Frage im Kommentar: "Meine Frage zielt also darauf ab, wie man Domänencomputerkonten "richtig" einträgt bzw. ob das überhaupt geht."

zu 3.: Ist beantwortet. Dürfte aber für dein Vorhaben nicht relevant sein, wie du schon selber erkannt hast.

Zu 1. + 2.:

Wenn ich, wie du es versucht hast, chown auf eine Datei anwende, und als Besitzer ein Computerkonto angebe, kann ich die Datei nicht mehr öffnen,

obwohl ich ja mit dem benannten Computer darauf zugreife und mein Zugriff über den Sambaserver auf die Freigabe erlaubt ist. Was ja auch logisch und

bei Windows IMHO auch nicht anders ist: Rechte im Dateisystem gehen vor Rechte in einer Freigabe. Korrigiere mich, wenn ich irre: Ich gebe ein Verzeichnis

frei (zugänglich für alle) auf Dateisystemebene und entscheide dann bei der Freigabe explizit, wer Zugriff hat und wer nicht.

Und nebenbei: Linux ist kein Serversystem. Die Serversysteme, die Dateien/Verzeichnisse als Datenserver im Netz zur Verfügung stellen, sind NIS oder Samba.

Nun zum Zugriff von Computern auf eine Freigabe über Samba.

In der Datei smb.conf kannst du den Zugriff von Computern, Netzen, Teilnetzen auf Freigaben über zwei Parameter steuern:

- hosts allow =

- hosts deny =

Hierbei stehen dir etliche Variationen offen, Zugriffe zu gewähren oder zu verbieten.

Beispiel 1, der Zugriff eines PC's:

- hosts allow = 192.168.179.40/24

- hosts deny = ALL

Beispiel 2, Zugriff eines Netz:

- hosts allow = 192.168.179.0/24

- hosts deny = ALL

Beispiel 3, Kein Zugriff eines Rechners:

- hosts allow =

- hosts deny = 192.168.179.40/24

Zu beachten ist aber die Reihenfolge allow, deny.

allow ist erlaubt.

deny schließt alles aus, was in allow nicht enthalten ist.

Folgendes Beispiel funktioniert deshalb nicht:

- hosts allow = 192.168.179.40/24

- hosts deny = 192.168.179.40/24

Hier hat der Host trotzdem Zugriff, obwohl es ihm verbietet wurde.


Hoffe, ich konnte dir weiter helfen

Gruß
Günni
Member: DerWoWusste
DerWoWusste Mar 22, 2012 at 13:52:47 (UTC)
Goto Top
Hi Günni und danke für die Mühe.

Ich sollte folgendes hinzufügen. Sinn und Zweck ist folgender: Das Kennwort der Domänencomputerkonten (=machine accounts) wird vom Domänencontroller automatisch alle 30 Tage geändert und diese (automatische) Kennwortsicherheit wollen wir haben. Wie soll ich dieses also dem Sambaserver mitteilen? Wird das in Deinem Setup überhaupt auf dem Samba-DC jemals geändert? Wenn nicht, dann ist die Methode für mich wertlos.
Member: Guenni
Guenni Mar 23, 2012 at 02:41:23 (UTC)
Goto Top
Hi DerWoWusste,


das Kennwort ändert der Samba-DC selber. Du kannst über einen Parameter die Zeitperiode (in Sekunden) festlegen.


Betreffender Teil aus der Samba-Hilfe (SWAT) zu Domänenmitgliedschaft:

machine password timeout (G)

If a Samba server is a member of a Windows NT Domain (see the security = domain parameter),

then periodically a running smbd process will try and change the MACHINE ACCOUNT PASSWORD stored in the TDB called private/secrets.tdb.

This parameter specifies how often this password will be changed, in seconds.

The default is one week (expressed in seconds), the same as a Windows NT Domain member server.

See also smbpasswd(8), and the security = domain parameter.

Default: machine password timeout = 604800


Noch ein Artikel:


8.5.2 machine password timeout

Die globale Option machine password timeout legt eine Speicherungsperiode für NT-Domain-Maschinen-Passwörter fest.

Die Vorgabe ist momentan auf dieselbe Zeitspanne gesetzt, die Windows NT 4.0 verwendet: 604.800 Sekunden (eine Woche).

Samba versucht periodisch, das machine account password zu wechseln, welches ein Passwort darstellt, das besonders von einem anderen Server verwendet wird,

um ihm Änderungen zu melden. Diese Option bestimmt die Anzahl Sekunden, die Samba warten sollte, bevor es versucht dieses Passwort zu ändern.

Das folgende Beispiel ändert sie zu einem einzigen Tag, indem Folgendes festgelegt wird:

[global]
machine password timeout = 86400


Hier gefunden --> http://lug.krems.cc/docu/samba/ch08_05.html

Such' mal nach "machine password timeout", da gibt's jede Menge zu lesen.

Ist es das, was du meinst??

Gruß
Günni


PS.: . . . Wird das in Deinem Setup überhaupt auf dem Samba-DC jemals geändert? . . .

Gute Frage, ich wusste gar nicht, dass Passworte für Computer-Konten überhaupt geändert werden.

Aber ich denke nicht, mein Samba-DC ist ja kein Mitglied einer Windows-Domäne.
Member: DerWoWusste
DerWoWusste Mar 23, 2012 at 08:45:31 (UTC)
Goto Top
Moin.

Meine Frage zur Kennwortänderung war: "Wie soll ich dieses also dem Sambaserver mitteilen?". Du antwortest: "das Kennwort ändert der Samba-DC selber" - wir haben aber keinen Samba-DC. Ich bin mir ziemlich sicher, dass wir den einzigen Weg nutzen, der möglich sein sollte, aber dieser funktioniert leider nicht. Vermutlich ein Bug, der niemandem auffällt, weil wenige KLeute Systemkonten via Netzwerk auf Samba-Memberserver zugreifen lassen.
Member: Guenni
Guenni Mar 25, 2012 at 09:56:11 (UTC)
Goto Top
Hi DerWoWusste,

du hast einen Samba-Server, der nur nicht als DC eingerichtet ist. Trotzdem ist Samba ein Server-System.

Und wenn dieser Server Mitglied einer Windowsdomäne ist, dann denke ich, dass der Passwortabgleich mit

einer Windows-Domäne funktioniert. Vorausgesetzt, der Server ist richtig eingebunden und konfiguriert.


Ansonsten würde man bestimmt Gegenteiliges von einschlägigen Foren oder Autoren zu lesen bekommen, die sich drauf spezialisiert haben,

jede Neuerung (z.B. die Einführung des Parameters machine password timeout ) sofort auf Herz und Nieren zu prüfen.


Deinen Einwand, . . .

weil wenige KLeute Systemkonten via Netzwerk auf Samba-Memberserver zugreifen lassen. . . .",

. . . halte ich, sorry vielmals, für haltlos. Es gibt mit Sicherheit viele Umgebungen, die so konfiguriert sind,

dass nur bestimmte Computer-Konten auf bestimmte Freigaben zugreifen dürfen. Und das ist mit Samba durchaus möglich.


Ich bin mir ziemlich sicher, dass wir den einzigen Weg nutzen, der möglich sein sollte, aber dieser funktioniert leider nicht.

Vermutlich ein Bug, der niemandem auffällt, . . .


Wenn du damit auf deinen Versuch, mit chown . . . ein Computer-Konto zum Besitzer von Verzeichnissen und Dateien zu machen, anspielst,

hast du recht. Das funktioniert auch so nicht. Es sei denn, du würdest einen Benutzer in die Gruppe der Computer-Konten aufnehmen, bzw.

eine Gruppe mit Benutzern den Verzeichnissen und Dateien hinzufügen.

Dann kann dieser Benutzer aber auch von jedem anderen Rechner wieder auf diese Verzeichnisse/Dateien zugreifen, weil er zu dieser Gruppe gehört.

Das ist aber kein Bug, sondern einfach nur der falsche Weg. Samba/Linux sind eben nicht Windows und werden deshalb auch anders konfiguriert bzw. eingestellt.

Du solltest dich also nicht darauf versteifen "Unter Windows mach ich das so . . . ", also muß das unter Samba/Linux genauso gehen. Das Ziel ist der Weg.

Gruß
Günni
Member: DerWoWusste
DerWoWusste Mar 26, 2012 at 13:27:32 (UTC)
Goto Top
Hi.

Noch kein Fortschritt. Ich habe am Server wie beschrieben ein Rechnername$-Konto angelegt, wie gehe ich weiter vor? Hosts allow enthielt auch schon zuvor die IP des Zugreifenden.
Member: DerWoWusste
DerWoWusste Mar 30, 2012 at 10:39:00 (UTC)
Goto Top
*bump*
Hallo Didi, noch da?
Member: DerWoWusste
DerWoWusste Mar 30, 2012 at 13:28:49 (UTC)
Goto Top
So! Ich hatte heute endlich mal Zeit, das näher anzuschauen. Es ist gelöst und die Lösung war denkbar einfach:
Alles war schon in Ordnung... ich hatte lediglich vergessen, auf der Freigabe selbst die Rechte ebenso anzupassen! Was für ein Bock! face-smile face-smile face-smile

Also war chown rechnername\$@domäne:domänen-benutzer@domäne Zieldatei schon goldrichtig.