Benutzer-Werkzeuge

Webseiten-Werkzeuge


allgemein:howto:samba_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
allgemein:howto:samba_ad [2016/12/08 12:50] richardallgemein:howto:samba_ad [2025/11/19 16:39] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-https://www.dasmagazin.ch/2016/12/03/ich-habe-nur-gezeigt-dass-es-die-bombe-gibt/+====== Samba 4 als Active Directory ======
  
-http://www.rebootrestore.com/+Allgemeine Informationen zu Samba 4 als Acitve Directory bei: [[https://wiki.ubuntuusers.de/Archiv/Howto/Samba4-Server_als_Active-Directory_Domain-Controller/|ubuntuusers.de]]
  
-https://www.packtpub.com/+**HINWEISDie Seite ist noch nicht final überarbeitet wordenSie wurde als Mitschrift während einer Schulung angefertigtEs fehlen daher die Aufgabenstellungen, die  
 +während der Schulung vorgegeben wurden.**
  
-https://gallery.technet.microsoft.com/scriptcenter/56b78004-40d0-41cf-b95e-6e795b2e8a06+===== Buch-Empfehlung =====
  
-http://www.alvestrand.no/objectid/1.2.840.113556.1.8000.2554.html+Ein ausführliches Buch zu Samba 4 und dessen Möglichkeiten findet man in [[https://www.rheinwerk-verlag.de/samba-4_4186/|Rheinwerk-Verlag]]
  
-====== Samba 4 als Active Directory ======+**Achtung:** 2. Auflage ist massiv überarbeitet (blaue Ausgabe)
  
-https://wiki.ubuntuusers.de/Archiv/Howto/Samba4-Server_als_Active-Directory_Domain-Controller/ 
  
-====== Samba-Tools ======+===== Samba-Tools =====
  
 ^Tool ^ Beschreibung^ ^Tool ^ Beschreibung^
-|''testparm''|| +|''testparm''Testen der ''smb.conf''
-|''smbcontrol''||+|''smbcontrol''Steuert den 'Samba-Dienst |
 |''samba-tool''|| |''samba-tool''||
 |''smbstatus''| Status von Verbindungen und Dateien anzeigen| |''smbstatus''| Status von Verbindungen und Dateien anzeigen|
 |''net''|| |''net''||
-|''smbpasswd''|| +|''smbpasswd''Passwort eines Samba-Benutzers setzen
-|''pdbedit''||+|''pdbedit''Samba-Datenbanken einsehen und editieren. VORSICHT!!|
 |''smbcalcs''|| |''smbcalcs''||
-|''smbclient''||+|''smbclient''Samba-Client, um sich auf einem SMB-Server zu verbinden|
 |''mount.cifs''|| |''mount.cifs''||
 |''nmblookup''|| |''nmblookup''||
Zeile 30: Zeile 30:
 |''wbinfo''|| |''wbinfo''||
 |''rpcclient''|| |''rpcclient''||
- 
  
  
 ====== Installationsscript ====== ====== Installationsscript ======
  
-<file bash smb.conf> +Die folgende Dateien können verwendet werden, um eine rudimentäre Konfiguartion vorzunehmen.
-[global] +
- +
-        workgroup = training +
-        netbios name = tsam-fs01 +
-        server string = Training CIFS Server +
-        server role = standalone server +
- +
-[Public] +
- +
-        path = /srv/samba/Public/ +
-        comment = Dateifreigabe +
-        browseable = yes +
-        writeable = yes +
-        guest ok = yes +
-         +
-[homes] +
-        comment = Heimatverzeichnis +
-        browseable = yes +
-        guest ok = yes +
-        writeable = yes +
-        valid users = %S  +
-        # valid users = %S  nur Eigentümer $S darf sich auf ein Home-Ordner verbinden +
-</file> +
 <file python install_samba.py> <file python install_samba.py>
 #!/usr/bin/python3.5 #!/usr/bin/python3.5
Zeile 102: Zeile 77:
 # smbclient SMB-Client für Freigaben # smbclient SMB-Client für Freigaben
 # heimdal Kerberos Implementierung # heimdal Kerberos Implementierung
-os.system ("mkdir -p /srv/samba/Publlic")+os.system ("mkdir -p /srv/samba/Public")
 os.system ("chmod 1777 /srv/samba/Public") os.system ("chmod 1777 /srv/samba/Public")
 os.system ("mv /etc/samba/smb.conf /etc/samba/smb.conf.org") os.system ("mv /etc/samba/smb.conf /etc/samba/smb.conf.org")
Zeile 111: Zeile 86:
                                                                                                                                                                                  
 </file> </file>
 +
 +Im vorangegangen Script wird eine erste ''smb.conf'' abgelegt. Die folgende Datei ist etwas ausführlicher.
 +<file bash smb.conf>
 +[global]
 +
 +        workgroup = training
 +        netbios name = tsam-fs01
 +        server string = Training CIFS Server
 +        server role = standalone server
 +
 +[Public]
 +
 +        path = /srv/samba/Public/
 +        comment = Dateifreigabe
 +        browseable = yes
 +        writeable = yes
 +        guest ok = yes
 +        
 +[homes]
 +        comment = Heimatverzeichnis
 +        browseable = yes
 +        guest ok = yes
 +        writeable = yes
 +        valid users = %S 
 +        # valid users = %S  nur Eigentümer $S darf sich auf ein Home-Ordner verbinden
 +</file>
 +
  
  
Zeile 521: Zeile 523:
 ====== Aufgabe 12: Wiederherstellung gelöschter Objekte (AD spezifisch) ====== ====== Aufgabe 12: Wiederherstellung gelöschter Objekte (AD spezifisch) ======
  
 +<file python enablerecyclebin>
 +#!/usr/bin/env python
 +#
 +# enabled the Recycle Bin optional feature
 +#
 +import optparse
 +import sys
  
-====== Kerberos =======+# Find right directory when running from source tree 
 +sys.path.insert(0, "bin/python"
 + 
 +import samba 
 +from samba import getopt as options, Ldb 
 +from ldb import SCOPE_BASE 
 +import sys 
 +import ldb 
 +from samba.auth import system_session 
 + 
 +parser optparse.OptionParser("enablerecyclebin <URL>"
 +sambaopts options.SambaOptions(parser) 
 +parser.add_option_group(sambaopts) 
 +credopts options.CredentialsOptions(parser) 
 +parser.add_option_group(credopts) 
 +parser.add_option_group(options.VersionOptions(parser)) 
 + 
 +opts, args parser.parse_args() 
 +opts.dump_all True 
 + 
 +if len(args) !1: 
 +    parser.print_usage() 
 +    sys.exit(1) 
 + 
 +url = args[0] 
 + 
 +lp_ctx = sambaopts.get_loadparm() 
 + 
 +creds = credopts.get_credentials(lp_ctx) 
 +sam_ldb = Ldb(url, session_info=system_session(), credentials=creds, lp=lp_ctx) 
 + 
 +# get the rootDSE 
 +res = sam_ldb.search(base="", expression="", scope=SCOPE_BASE, attrs=["configurationNamingContext"]) 
 +rootDse = res[0] 
 + 
 +configbase=rootDse["configurationNamingContext"
 + 
 +# enable the feature 
 +msg = ldb.Message() 
 +msg.dn = ldb.Dn(sam_ldb, ""
 +msg["enableOptionalFeature"] = ldb.MessageElement( 
 +     "CN=Partitions," +  str(configbase) + ":766ddcd8-acd0-445e-f3b9-a7f9b6744f2a", 
 +     ldb.FLAG_MOD_ADD, "enableOptionalFeature"
 +res = sam_ldb.modify(msg) 
 + 
 +print "Recycle Bin feature enabled" 
 + 
 +</file> 
 +====== Aufgabe 14: Kerberos =======
  
 Kerberos Folien Kerberos Folien
Zeile 543: Zeile 600:
   - Möchte der User einen zweiten Dienst nutzen, dann muss er für diesen ein neues ST beim TGS holen   - Möchte der User einen zweiten Dienst nutzen, dann muss er für diesen ein neues ST beim TGS holen
  
 +===== Linux-Konfiguration =====
 +
 +<code>
 +cat /var/lib/samba/private/krb5.conf 
 +[libdefaults]
 + default_realm = TRAINING.EXAMPLE
 + dns_lookup_realm = false
 + dns_lookup_kdc = true
 +</code>
 +
 +Ticket am Kerbos holen:
 +<code>
 +kinit Administrator@TRAINING.EXAMPLE
 +klist 
 +
 +Ausgabe:
 +Credentials cache: FILE:/tmp/krb5cc_0
 +        Principal: Administrator@TRAINING.EXAMPLE
 +
 +  Issued                Expires               Principal
 +Dec  8 13:53:27 2016  Dec  8 23:53:24 2016  krbtgt/TRAINING.EXAMPLE@TRAINING.EXAMPLE
 +</code>
 +
 +Die letzte Zeile zeig t das TGT als ''krbtgt'' an.
 +
 +Man kann pro User nur ein TGT erhalten. Will man sich mit unterschiedlichen Usernamen an einem AD anmelden, dann kann folgendes verwendet werden:
 +<code>
 +kinit -c testfile schueler1@TRAINING.EXAMPLE
 +klist -c testfile
 +
 +Ausgabe:
 +Credentials cache: FILE:testfile
 +        Principal: schueler1@TRAINING.EXAMPLE
 +
 +  Issued                Expires               Principal
 +Dec  8 13:55:02 2016  Dec  8 23:54:58 2016  krbtgt/TRAINING.EXAMPLE@TRAINING.EXAMPLE
 +</code>
 +
 +Pro Anmeldung erhält man ein eigenes Ticket:
 +<code>
 +smbclient -L tsam-fs01 -k
 +
 +Ausgabe:
 +Domain=[TRAINING] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]
 +
 + Sharename       Type      Comment
 + ---------       ----      -------
 + Public          Disk      Dateifreigabe
 + homes           Disk      Heimatverzeichnis
 + Gruppe1         Disk      Gruppe 1 Austausch
 + IPC$            IPC       IPC Service (Training CIFS Server)
 + administrator   Disk      Heimatverzeichnis
 +Domain=[TRAINING] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]
 +
 + Server               Comment
 + ---------            -------
 + TSAM-FS01            Training CIFS Server
 +
 + Workgroup            Master
 + ---------            -------
 + TRAINING             TSAM-FS01
 +
 +>> klist 
 +
 +Ausgabe:
 +Credentials cache: FILE:/tmp/krb5cc_0
 +        Principal: Administrator@TRAINING.EXAMPLE
 +
 +  Issued                Expires               Principal
 +Dec  8 13:53:27 2016  Dec  8 23:53:24 2016  krbtgt/TRAINING.EXAMPLE@TRAINING.EXAMPLE
 +Dec  8 13:58:24 2016  Dec  8 23:53:24 2016  cifs/tsam-fs01@TRAINING.EXAMPLE
 +</code>
 +
 +In der letzten Zeile ist nun ein neues Ticket für die CIFS-Freigabe
 +
 +Unter Windows funktioniert der ''klist''-Befehl ebenfalls.
 +Ausgabe:
 +<code>
 +Aktuelle Anmelde-ID ist 0:0x2a443
 +
 +Zwischengespeicherte Tickets: (2)
 +
 +#0>     Client: Administrator @ TRAINING.EXAMPLE
 +        Server: krbtgt/TRAINING.EXAMPLE @ TRAINING.EXAMPLE
 +        KerbTicket (Verschlüsselungstyp): AES-256-CTS-HMAC-SHA1-96
 +        Ticketkennzeichen 0x40e00000 -> forwardable renewable initial pre_authent
 +        Startzeit: 12/8/2016 14:02:01 (lokal)
 +        Endzeit:   12/9/2016 0:02:01 (lokal)
 +        Erneuerungszeit: 12/15/2016 14:02:01 (lokal)
 +        Sitzungsschlüsseltyp: AES-256-CTS-HMAC-SHA1-96
 +        Cachekennzeichen: 0x1 -> PRIMARY
 +        KDC aufgerufen: tsam-dc01.training.example
 +
 +#1>     Client: Administrator @ TRAINING.EXAMPLE
 +        Server: cifs/tsam-fs01 @ TRAINING.EXAMPLE
 +        KerbTicket (Verschlüsselungstyp): RSADSI RC4-HMAC(NT)
 +        Ticketkennzeichen 0x40a80000 -> forwardable renewable pre_authent 0x80000
 +        Startzeit: 12/8/2016 14:02:01 (lokal)
 +        Endzeit:   12/9/2016 0:02:01 (lokal)
 +        Erneuerungszeit: 12/15/2016 14:02:01 (lokal)
 +        Sitzungsschlüsseltyp: RSADSI RC4-HMAC(NT)
 +        Cachekennzeichen: 0
 +        KDC aufgerufen: tsam-dc01.training.example
 +</code>
 +
 +
 +====== Aufgabe 15: GPOs bearbeiten ======
 +
 +<code>
 +samba-tool gpo listall
 +
 +Ausgabe:
 +GPO          : {31B2F340-016D-11D2-945F-00C04FB984F9}
 +display name : Default Domain Policy
 +path         : \\training.example\sysvol\training.example\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}
 +dn           : CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=training,DC=example
 +version      : 0
 +flags        : NONE
 +
 +GPO          : {6AC1786C-016F-11D2-945F-00C04FB984F9}
 +display name : Default Domain Controllers Policy
 +path         : \\training.example\sysvol\training.example\Policies\{6AC1786C-016F-11D2-945F-00C04FB984F9}
 +dn           : CN={6AC1786C-016F-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=training,DC=example
 +version      : 0
 +flags        : NONE
 +
 +GPO          : {CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF}
 +display name : Schüler Policy
 +path         : \\training.example\SysVol\training.example\Policies\{CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF}
 +dn           : CN={CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF},CN=Policies,CN=System,DC=training,DC=example
 +version      : 589824
 +flags        : NONE
 +</code>
 +
 +Man kann Geltungsbereich eines GPO-Containers gezielt ansehen. Hier: Alles unterhalb der ''OU=Schüler''
 +<code>
 +samba-tool gpo listcontainers CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF
 +
 +Ausgabe:
 +Container(s) using GPO CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF
 +    DN: OU=Schüler,OU=Schule,DC=training,DC=example
 +</code>
 +
 +Für einzelne Accounts:
 +<code>
 +samba-tool gpo list schueler1
 +
 +Ausgabe:
 +GPOs for user schueler1
 +    Schüler Policy {CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF}
 +    Default Domain Policy {31B2F340-016D-11D2-945F-00C04FB984F9}
 +    
 +samba-tool gpo list cschmidt
 +
 +Ausgabe:
 +GPOs for user cschmidt
 +    Default Domain Policy {31B2F340-016D-11D2-945F-00C04FB984F9}
 +</code>
 +
 +Beim Benutzer ''cschmidt'' kann man sehen, dass die zuvor angelegte GPO ''Schüler Policy'' nicht eingebunden ist.
 +
 +Auf Verzeichnisebene kann man die Policies unter:
 +<code>/var/lib/samba/sysvol/training.example/Policies/{CD2C83FD-4EEB-4DCD-88F9-97FE462C8CAF}</code> 
 +
 +finden.
 +
 +
 +
 +====== Aufgabe 16: DNS im Active Directory ======
 +
 +Im ADSI-Editor eine neue Verbindung herstellen über den ''Definierten Namen und Namenskontext..''
 +mit folgendem Ziel:
 +<code>
 +DC=DomainDNSZones, DC=training,DC=example
 +</code>
 +
 +
 +====== Aufgabe 17: ACLs ======
 +
 +Access Control Lists verwalten.
 +
 +Über die eigentlichen Filesystem-Zugriffsrechte hinaus weitere Berechtigungen verwalten. Z.B. Zugriff von 
 +verschiedenen Gruppen auf einen Ordner. Dies ist über die regulären Berechtigungen nicht möglich.
 +
 +
 +====== Aufgabe 18: Roaming Profiles ======
 +
 +====== Aufgabe 19: Distributed File System (DFS) ======
 +
 +====== Aufgabe 20: Konfiguration per Registry  ======
  
  
  
  
allgemein/howto/samba_ad.1481201459.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki