[Eisfair] Domänenanmeldung von Windows PC's nicht möglich

Thomas Bork tom at eisfair.org
Fr Jul 25 11:21:23 CEST 2014


Am 25.07.2014 um 07:49 schrieb Daniel Heide:

 > Den Fehler habe ich gefunden, die PDC-ID vom Server hat nicht mehr
 > gestimmt nach der Serverinstallation, dadurch konnten dich die alten
 > PC's nicht mehr anmelden (Profile nicht laden).
 > Neu an der Domäne registrierte PC's haben sich nach dem Willkommen
 > vom Windows sofort wieder abgemeldet.

Du musst Dir angewöhnen, bei Fragen mehr Informationen mit zu liefern 
und das Problem genauer zu beschreiben. Du hast geschrieben:

 > Bestehende Windowsrechner lassen sich nur mit dem Linuxnamen
 > anmelden nicht mit dem Alias und neue Rechner, die ich versuche in
 > die Domäne zu nehmen, lassen sich nicht anmelden.

1.
Es gibt bei Rechnern im Samba-Kontext keinen "Linuxnamen" und keinen 
"Alias". Eventuell meintest Du hier

SAMBA_USERMAP_N
SAMBA_USERMAP_X_ACTIVE
SAMBA_USERMAP_X_EISNAME
SAMBA_USERMAP_X_WINNAME_N
SAMBA_USERMAP_X_WINNAME_Y

aus der Samba-Konfiguration.
Wie die Variablennamen, die Hilfe dazu und die Dokumentation aussagen, 
handelt es sich hier um _User_ die sich anmelden und nicht um Rechner.

2.
Bei Samba als PDC spielt natürlich die SID (nicht "PDC-ID") eine Rolle. 
Das wird auch in meiner Dokumentation beschrieben:

Startet Samba das erste Mal als PDC, so wird eine eindeutige SID 
(Security ID) für diesen PDC erzeugt. Diese SID identifiziert die Domäne 
eindeutig. Bei Integration von Clients in die Domäne wird diesen die SID 
zugeordnet. Daraus ergibt sich, dass es nicht ausreicht, einen Client 
als Domänenmitglied einfach identisch zu benennen, um wieder in die 
Domäne zu kommen, da der Client diese SID nicht kennt. Das ist aus 
Sicherheitsgründen absolut sinnvoll!

Setzt man bei irgendwelchen Tests später einmal SAMBA_PDC='no' und 
danach wieder SAMBA_PDC='yes', kann es passieren, dass wiederum eine 
eindeutige SID generiert wird, welche von der vorigen abweicht. Das 
Ergebnis ist verheerend: Kein Client kommt mehr in die Domäne, da die 
Clients ihren PDC mit einer anderen SID assoziieren. Es ist in diesem 
Fall notwendig, alle Clients wieder neu in die Domäne zu integrieren. 
Das gleiche Problem ergibt sich auch bei einer Namensänderung des PDC, 
also genau dann, wenn man den Hostnamen des eisfair-Rechners ändert! Man 
kann das Problem umgehen, indem man vor Änderung von SAMBA_PDC='yes' auf 
SAMBA_PDC='no' und vor einer Namensänderung die SID abspeichert und nach 
Änderung von SAMBA_PDC='no' auf SAMBA_PDC='yes' oder Änderung des Namens 
wieder in Samba einliest. Siehe dazu

             Save Samba SID to /root/MACHINE.SID

und

             Restore Samba SID from /root/MACHINE.SID

3.
Ich habe hier schon einmal beschrieben, welche Samba-Dateien man bei dem 
Transfer auf einen anderen Rechner mitnehmen muss (Thread "E1 und Samba" 
in spline.eisfair):

[...]
Die Samba-User-Accounts stecken je nach Version in /etc/smbpasswd oder 
/etc/passdb.tdb. Dazu gehören die korrespondierenden System-Accounts in 
/etc/passwd und /etc/shadow.
Die Gruppen stecken im System in /etc/group. User-Mappings werden beim 
Aufruf der Samba-Konfiguration nach den Vorgaben der 
Konfigurations-Datei und Gruppen-Mappings bei Samba als PDC beim 
Samba-Start erzeugt.

Bei Samba als PDC ist /etc/secrets.tdb mit zu sichern. 
/etc/schannel_store.tdb ist zu sichern.

Bei hochgeladenen Druckertreibern sind /samba_printer_drivers, 
/var/lock/samba/printing (unterschiedlich je nach Version) sowie 
/var/lock/samba/registry.tdb (unterschiedlich je nach Version) zu sichern.

Bei Verwendung von Samba als Wins-Server sind /var/lock/samba/wins.dat 
und /var/lock/samba/wins.tdb (unterschiedlich je nach Version) zu sichern.

Und eventuell weitere Dinge, die ich vergessen habe...

Ein Auszug aus der Sicherungs-Routine der aktuellsten Samba-Version, die 
nur dazu dient, Samba in einer älteren Version auf dem selben Rechner 
wieder herzustellen und deswegen die System-Accounts und Gruppen nicht 
umfasst:

if [ -f /usr/sbin/smbd ]
then
     samba_version=`cat /usr/share/doc/$package_name/version`
     samba_intversion=`/usr/sbin/smbd -V | cut -d' ' -f2`
     samba_full_version="$samba_version ($samba_intversion)"

     # only save samba versions earlier 4.x
     if ! `echo $samba_intversion | grep -q '4.'`
     then
         p_tarfiles='etc/fstab-smbfs
         etc/secrets.tdb
         etc/schannel_store.tdb
         etc/smb.conf
         etc/smbpasswd
         etc/passdb.tdb
         etc/smbwebclient
         etc/user.map
         root/MACHINE.SID
         samba_printer_drivers
         var/log/log.nmbd
         var/log/log.smbd
         var/log/log.smbinfo
         var/log/log.winshook
         var/lock/samba
         var/spool/samba'


backup_tarname="/root/${samba_version}_${samba_intversion}_${EISDATE}_${EISTIME}.tar.gz"

         echo "Saving your samba configuration in $backup_tarname:"
         cd /
         for p_tarfile in $p_tarfiles
         do
             if [ -e "$p_tarfile" ]
             then
                 tarfiles="$tarfiles $p_tarfile"
                 echo " /$p_tarfile"
             fi
         done

         tar czf $backup_tarname $tarfiles
         echo "Done."
     fi

     mecho --info "Deinstalling old $package_name $samba_full_version ..."
fi

Generell sollte man beachten, dass man möglichst nur ein Samba aus der 
selben Familie (interne Version) installiert, wenn man Teile davon 
manuell sichert und zurück sichert...

-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair