[Howto] Tipps und Tricks zu SAMBA incl. PDC-Erweiterung

  • Diese Sammlung von Tipps und Anleitungen werde ich unregelmäßig erweitern.


    Bitte antwortet nicht direkt auf meine Beiträge, sondern erstellt einen neuen Beitrag mit einem Bezug/link auf diesen. Danke.


    1. Interessante Anleitungen und tools (in englisch)
    - http://de4.samba.org/samba/docs/man/manpages-3/net.8.html :net-Befehl, sehr wichtig für die Konfiguration zum PDC
    - http://de4.samba.org/samba/doc…anpages-3/smb.conf.5.html smb.conf, alle Parameter übersichtlich aufgeführt
    - http://de4.samba.org/samba/doc…npages-3/smbpasswd.8.html smbpasswd, Paßwort und Benutzerverwaltung
    - http://de4.samba.org/samba/docs/man/manpages-3/wbinfo.1.html


    - http://www.microsoft.com/downl…FBA0F42DE2&displaylang=en UserManager
    - http://www.microsoft.com/downl…47c7117d1c&DisplayLang=en ServerManager


    2. Abschnitte aus meinem Script:




    Beta 3:
    ua.
    + Benutzer und Gruppen-Verwaltung
    + weitere Statusausgaben
    + SAMBA-Status


    2a. Grundeinstellungen zum PDC


    - Erstellt Gruppen unter Linux für die windows Domain Groups

    Code
    addgroup -g 512 ntdomadminsaddgroup -g 513 ntdomusersaddgroup -g 514 ntdomguestsaddgroup -g 515 ntdomcomputeraddgroup -g 516 ntdomcontrollersaddgroup -g 544 ntadminsaddgroup -g 545 ntusersaddgroup -g 546 ntguestsaddgroup -g 547 ntpowerusersaddgroup -g 548 ntaccountaddgroup -g 549 ntserveraddgroup -g 550 ntprintaddgroup -g 551 ntbackupaddgroup -g 552 ntreplicatoraddgroup -g 553 ntrasserver


    - Erstellt die Zuordnung der Windows Domain Groups zu den Linuxgruppen:

    Code
    /usr/local/samba/bin/net groupmap add rid=512 type=domain unixgroup=ntdomadmins ntgroup="Domain Admins"/usr/local/samba/bin/net groupmap add rid=513 type=domain unixgroup=ntdomusers ntgroup="Domain Users"/usr/local/samba/bin/net groupmap add rid=514 type=domain unixgroup=ntdomguests ntgroup="Domain Guests"/usr/local/samba/bin/net groupmap add rid=515 type=domain unixgroup=ntdomcomputer ntgroup="Domain Computers"/usr/local/samba/bin/net groupmap add rid=516 type=domain unixgroup=ntdomcontrollers ntgroup="Domain Controllers"


    - Erstellt die Zuordnung der Windows Builtin Groups zu den Linuxgruppen (Standard Windowsgruppen)

    Code
    /usr/local/samba/bin/net groupmap add rid=546 type=builtin unixgroup=ntguests ntgroup="Guests"/usr/local/samba/bin/net groupmap add rid=547 type=builtin unixgroup=ntpowerusers ntgroup="Power Users"/usr/local/samba/bin/net groupmap add rid=548 type=builtin unixgroup=ntaccount ntgroup="Account Operators"/usr/local/samba/bin/net groupmap add rid=549 type=builtin unixgroup=ntserver ntgroup="Server Operators"/usr/local/samba/bin/net groupmap add rid=550 type=builtin unixgroup=ntprint ntgroup="Print Operators"/usr/local/samba/bin/net groupmap add rid=551 type=builtin unixgroup=ntbackup ntgroup="Backup Operators"/usr/local/samba/bin/net groupmap add rid=552 type=builtin unixgroup=ntreplicator ntgroup="Replicator"/usr/local/samba/bin/net groupmap add rid=553 type=builtin unixgroup=ntrasserver ntgroup="RAS Servers"


    - Erstellt die Windows Builtin Groups

    Code
    /usr/local/samba/bin/net sam createbuiltingroup "Guests"/usr/local/samba/bin/net sam createbuiltingroup "Power Users"/usr/local/samba/bin/net sam createbuiltingroup "Account Operators"/usr/local/samba/bin/net sam createbuiltingroup "Server Operators"/usr/local/samba/bin/net sam createbuiltingroup "Print Operators"/usr/local/samba/bin/net sam createbuiltingroup "Backup Operators"/usr/local/samba/bin/net sam createbuiltingroup "Replicator"


    - Zuweisung der Windows groups zu den Windows Domain Groups

    Code
    /usr/local/samba/bin/net sam addmem "Power Users" "Domain Users"/usr/local/samba/bin/net sam addmem "Guests" "guest"/usr/local/samba/bin/net sam addmem "Guests" "Domain Guests"/usr/local/samba/bin/net sam addmem "Account Operators" "Domain Admins"/usr/local/samba/bin/net sam addmem "Backup Operators" "Domain Admins"/usr/local/samba/bin/net sam addmem "Print Operators" "Domain Admins"/usr/local/samba/bin/net sam addmem "Server Operators" "Domain Admins"/usr/local/samba/bin/net sam addmem "Replicator" "Domain Admins"


    - Zuweisung der Windows Benutzer (smbpasswd) zu der Windows Benutzergruppe

    Code
    /usr/local/samba/bin/net sam list users > /tmp/userlist.lstUSERS=`cat /tmp/userlist.lst` for USER in $USERSdo  /usr/local/samba/bin/net sam addmem "Users" "$USER"done


    - Setzen der Administrator-Berechtigungen

    Code
    $SAMBA_BIN_FOLDER/net rpc rights grant "Domain Admins" SeMachineAccountPrivilege \       SePrintOperatorPrivilege SeAddUsersPrivilege \       SeDiskOperatorPrivilege SeRemoteShutDownPrivilege -U$username%$password$SAMBA_BIN_FOLDER/net rpc rights grant "Administrators" SeMachineAccountPrivilege -U$username%$password


    -U$username%$password , $username = admin , $password = admin password vom NAS


    -Anpassungen in der smb.conf

    Code
    setcfg global "domain logons" "yes" -f /etc/smb.conf -c    # Schalte SAMBA auf Anmeldeserversetcfg global "domain master" "yes" -f /etc/smb.conf -c   # Macht SAMBA zum PDCsetcfg global "idmap uid" "10000-20000" -f /etc/smb.conf -c  # SAMBA interen Zuordnung der Windows-UIDssetcfg global "idmap gid" "10000-20000" -f /etc/smb.conf -c  # SAMBA interne Zuordnung der Windows-GIDs


    Freigabe für die Benutzeranmeldung

    Code
    setcfg netlogon "comment" "Network Logon Service" -f /etc/smb.conf -csetcfg netlogon "path" "/share/HDA_DATA/Netlogon" -f /etc/smb.conf -csetcfg netlogon "guest ok" yes -f /etc/smb.conf -csetcfg netlogon "browseable" no -f /etc/smb.conf -ctouch /share/HDA_DATA/Netlogon/login.cmdchmod 744 /share/HDA_DATA/Netlogon/login.cmdchown admin:administrators /share/HDA_DATA/Netlogon/login.cmdsetcfg global "logon script" "login.cmd" -f /etc/smb.conf -csetcfg global "logon path" "\\%N\profiles\%u" -f /etc/smb.conf -c


    - Aktivierung der WINS-Servers

    Code
    setcfg global "wins support" "yes" -f /etc/smb.conf -c


    2c. Workstation der Domäne hinzufügen

    Code
    adduser -h /temp -s /bin/sh -G ntdomcomputer -D -H [Name_des_PCs]/usr/local/samba/bin/smbpasswd -L -a -m -n [Name_des_PCs]


    Um Windows Vista bzw. Windows 7 in die Domäne aufzunehmen,
    sind SAMBA Version 3.3.9 bzw. 3.4.3 und ein paar Registry-Änderungen notwendig:

    Code
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters]"DomainCompatibilityMode"=dword:00000001"DNSNameResolutionRequired"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"LMCompatibilityLevel"=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]"CompatibleRUPSecurity"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters] "RequireStrongKey"=dword:00000001"RequireSignOrSeal"=dword:00000000"signsecurechannel"=dword:00000000


    2d. NAS als Member einer Windows-Domäne hinzufügen

    Code
    setcfg global "domain master" "no" -f /etc/smb.conf -csetcfg global "password server" $server -f /etc/smb.conf -csetcfg global "security" "domain" -f /etc/smb.conf -c/usr/local/samba/bin/net rpc join type MEMBER



    2e. NAS als BDC einer SAMBA-Domäne hinzufügen

    Code
    setcfg global "domain logons" "yes" -f /etc/smb.conf -c    # Schalte SAMBA auf Anmeldeserver
    setcfg global "domain master" "no" -f /etc/smb.conf -c
    setcfg global "password server" $server -f /etc/smb.conf -c
    setcfg global "security" "domain" -f /etc/smb.conf -c
    setcfg global "idmap uid" "10000-20000" -f /etc/smb.conf -c  # SAMBA interen Zuordnung der Windows-UIDs
    setcfg global "idmap gid" "10000-20000" -f /etc/smb.conf -c  # SAMBA interne Zuordnung der Windows-GIDs
    /usr/local/samba/bin/net rpc join type BDC
    /usr/local/samba/bin/net rpc vampire


    Vorsicht:
    Man kann aus einem NAS einen BDC einer Domäne erstellen,
    jedoch hat man noch das Problem, das die Linux/SAMBA-Benutzer/Gruppen/Paßwörter nicht syncronisiert werden.
    Evtl. hat jemand anderes dazu eine Lösung.


    Fortsetzung folgt ....

  • SAMBA Vista Kompatibel machen (keine Windows-Einstellungen seitens XP/Vista nötig)


    Code
    setcfg global "client ntlmv2 auth" yes -f /etc/smb.conf -c


    Theoretisch sollte es funktionieren, habe es mit XP ohne Probleme getestet,
    in dem ich dort die Sicherheit höher (auf NTLM V2) eingestellt habe.

  • Ein paar Beispiele für den net-Befehl:


    Listet alle Benutzer in der smbpasswd auf:

    Code
    /usr/local/samba/bin/net sam list users


    Listet alle registrierte Workstations der SAMBA-Domäne des NAS auf:

    Code
    /usr/local/samba/bin/net sam list workstations


    Übersicht des List-Parameters:

    Code
    /usr/local/samba/bin/net sam listnet sam list users           List SAM usersnet sam list groups          List SAM groupsnet sam list localgroups     List SAM local groupsnet sam list builtin         List builtin groupsnet sam list workstations    List domain member workstations


    Listet die SID des NAS (bzw. der Domäne) auf:

    Code
    /usr/local/samba/bin/net getlocalsid


    Listet aktive Benutzer-Verbindungen auf:

    Code
    /usr/local/samba/bin/net status sessions


    Listet genutzte Freigaben/Shares zum NAS auf:

    Code
    /usr/local/samba/bin/net status shares


    Listet die System-Berechtigungen von Benutzer/Gruppen auf:

    Code
    /usr/local/samba/bin/net rpc rights list accounts


    Listet die vorhandenen/verfügbaren System-berechtigungen auf:

    Code
    /usr/local/samba/bin/net rpc rights list privileges
  • Ermitteln des Standard-Datenträgers:

    Code
    if [ `/sbin/getcfg "VOLUME 1" status -f /etc/config/storage.conf -d "-1"` = 0 ] &&  [ `/sbin/getcfg "VOLUME 1" "device name" -f /etc/config/storage.conf` = /dev/md0 ]; then  Qfolder=/share/MD0_DATAelse  Qfolder=/share/HDA_DATAfi


    Erstellen des (Home-) Ordners für die Benutzer-Daten

    Code
    if [ ! -d $SAMBA_PATH_USERS ]; then  mkdir $SAMBA_PATH_USERS  echo "---> Folder $SAMBA_PATH_USERS created"else  echo "---> Folder $SAMBA_PATH_USERS exists"fi


    Erstellen einer Liste aller SAMBA-Benutzer

    Code
    /usr/local/samba/bin/net sam list users > /tmp/userlist.lstUSERS=`cat /tmp/userlist.lst` for USER in $USERSdo


    und Erstellen dessen Home-Ordner nur mit eigenen Zugriffsberechtigungen

    Code
    mkdir $SAMBA_PATH_USERS/$USERchmod 700 $SAMBA_PATH_USERS/$USERchown $USER:administrators $SAMBA_PATH_USERS/$USERdone


    Anpassen der nötigen Samab-Config

    Code
    setcfg global "Logon drive" "P:" -f /etc/smb.conf -c
    setcfg global "logon home" "\\%N\%U" -f /etc/smb.conf -c
    
    
    setcfg homes "comment"  "Home Directories" -f /etc/smb.conf -c
    setcfg homes "path" "$Qfolder/User"  -f /etc/smb.conf -c
    setcfg homes "read only" no -f /etc/smb.conf -c
    setcfg homes "browseable" no -f /etc/smb.conf -c


    Achtung:
    Der Code ist als ein zusammenhängendes Script zu nutzen.

  • Dem NAS kann man weitere Namen zuweisen, in dem man in die smb.conf einen weiteren Parameter unter "global" angibt:

    Code
    setcfg global "netbios aliases" "myNAS2" -f /etc/smb.conf -c


    myNAS2 ist der Zweitname (Alias).


    Zudem ist es möglich, jedem Alias seine eigene Freigaben zuzuweisen.
    Diese Freigaben werden jedoch nicht in der Admin-WebOberfläche angezeigt bzw. verwaltbar sein.


    Code
    setcfg global "include" "/etc/config/smb.%L.conf" -f /etc/smb.conf -c


    %L ist eine SAMBA-Variable, die den Netbios-Namen beinhaltet, zB: myNAS1, myNAS2, usw.
    Dementsprechend könnte dann für myNAS2 eine SAMBA-Konfiguration unter "/etc/config/smb.myNAS2.conf" angelegt werden.