Skip to content

Dokumentation

Arbeitsblatt 1

Umgebung

Realm: SAM159.IET-GIBB.CH Gateway: 192.168.110.2 PW: sml12345, SmL12345**

vmLS1: DC/KDC, DNS, LDAP Server IP: 192.168.110.61

vmLS2: Member Server Linux IP: 192.168.110.62

vmLP1: Member Client Linux IP: 192.168.110.30

vmWP1: Member Client Windows IP: 192.168.110.10

Samba Domain Controller vmLS1 installieren

Netzwerk konfigurieren

Search domain setzen

vmLS1: /etc/netplan/00-eth0.yaml:

network:
  ethernets:
    eth0:
      addresses:
      - 192.168.110.61/24 
      nameservers:
        addresses:
        - 192.168.110.2
        search:
        - sam159.iet-gibb.ch
      routes:
      - to: default
        via: 192.168.110.2
  version: 2

vmLS1:

sudo netplan apply --debug
Domain in hosts setzen

vmLS1: /etc/hosts:

127.0.0.1       localhost.localdomain   localhost
127.0.1.1       vmLS1.sam159.iet-gibb.ch        vmLS1
192.168.110.61  vmLS1.sam159.iet-gibb.ch        vmLS1

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Hostname anpassen

vmLS1: /etc/hostname:

vmLS1.sam159.iet-gibb.ch

Samba und diverse Packages installieren

Installation

vmLS1:

sudo apt update
sudo apt upgrade -y
sudo snap refresh
sudo apt install -y samba smbclient heimdal-clients
# Default Kerberos version 5 realm: SAM159.IET-GIBB.CH
sudo apt install -y acl attr build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls28-dev libreadline-dev python2-dev python2 python-dev-is-python3 python3-dnspython gdb pkg-config libpopt-dev libldap2-dev libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl ntp ntpdate net-tools git winbind libpam0g-dev dnsutils lsof
Domain provisionieren

vmLS1:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
sudo samba-tool domain provision
# Realm: SAM159.IET-GIBB.CH
# Domain: SAM159
# Server Role: dc
# DNS backend: SAMBA_INTERNAL
# DNS forwarder IP: 8.8.8.8
# Admin PW: SmL12345**
Resolver Dienst deaktivieren

vmLS1:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo rm /etc/resolv.conf

vmLS1: /etc/resolv.conf:

nameserver 192.168.110.61
search sam159.iet-gibb.ch
Samba Dienst aktivieren

vmLS1:

sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc
sudo reboot

vmLS1:

sudo systemctl status samba-ad-dc
Kerberos Konfiguration

vmLS1:

sudo rm /etc/krb5.conf

vmLS1: /etc/krb5.conf:

[libdefaults]
    default_realm = SAM159.IET-GIBB.CH
    fcc-mit-ticketflags = true
[realms]
    SAM159.IET-GIBB.CH = {
        kdc = vmLS1.sam159.iet-gibb.ch
        admin_server = vmLS1.sam159.iet-gibb.ch
    }
[domain_realm]
    .sam159.iet-gibb.ch = SAM159.IET-GIBB.CH
    sam159.iet-gibb.ch = SAM159.IET-GIBB.CH

Netzwerk testen

Aktuelle DNS-Server anzeigen

vmLS1:

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved
sudo systemctl status systemd-resolved
sudo resolvectl status
Resolver-Service wieder ausschalten

vmLS1:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo reboot
Offene Ports anzeigen

vmLS1:

netstat -tlpn
Interner DNS-Service aktualisieren

vmLS1:

sudo samba_dnsupdate --verbose
Wichtige DNS-Einträge testen

vmLS1:

host -t SRV _kerberos._tcp.sam159.iet-gibb.ch
host -t SRV _gc._tcp.sam159.iet-gibb.ch
host -t SRV _ldap._tcp.sam159.iet-gibb.ch
host -t A vmls1.sam159.iet-gibb.ch

Reverse-Lookup-Zone einrichten

Reverse-Lookup-Zone erstellen

vmLS1:

samba-tool dns zonecreate vmLS1 110.168.192.in-addr.arpa -U administrator --password SmL12345**
PTR-Record für vmls1 eintragen

vmLS1:

samba-tool dns add 192.168.110.61 110.168.192.in-addr.arpa 61 PTR vmls1.sam159.iet-gibb.ch -U administrator --password SmL12345**

A- und PTR-Records eintragen

A-Record für vmls2 eintragen

vmLS1:

samba-tool dns add vmLS1.sam159.iet-gibb.ch sam159.iet-gibb.ch vmLS2 A 192.168.110.62 -U administrator --password SmL12345**
A-Record für vmlp1 eintragen

vmLS1:

samba-tool dns add vmLS1.sam159.iet-gibb.ch sam159.iet-gibb.ch vmLP1 A 192.168.110.30 -U administrator --password SmL12345**
Pointer-Record in Reverse-Zone für vmlp1 eintragen

vmLS1:

samba-tool dns add vmLS1.sam159.iet-gibb.ch 110.168.192.in-addr.arpa 30 PTR vmlp1.sam159.iet-gibb.ch -U administrator --password SmL12345**
Pointer-Record in Reverse-Zone für vmls2 eintragen

vmLS1:

samba-tool dns add vmLS1.sam159.iet-gibb.ch 110.168.192.in-addr.arpa 62 PTR vmls2.sam159.iet-gibb.ch -U administrator --password SmL12345**

Testen der Verbindung

vmLS1:

ping vmLP1 -c 3
ping vmLS2 -c 3
ping vmLS1 -c 3
dig -x 192.168.110.61
dig -x 192.168.110.62
dig -x 192.168.110.30
smbclient -L localhost -U administrator --password SmL12345**

Aufgaben

Portnummern

Port Beschreibung Protokoll Verwendung
53 DNS TCP/UDP Domain Name System für Namensauflösung
88 Kerberos TCP/UDP Authentifizierungsdienst für sichere Kommunikation
135 RPC (Dynamisch) TCP Remote Procedure Call für Dienstaufrufe
137 NetBIOS Name Service UDP Namensauflösung im NetBIOS-Netzwerk
138 NetBIOS Datagram Service UDP Austausch von Datagrammen im NetBIOS-Netzwerk
139 NetBIOS Session Service TCP Sitzungssteuerung im NetBIOS-Netzwerk
389 LDAP TCP/UDP Leichtgewichtiger Verzeichnisdienst für LDAP
445 Microsoft-DS (SMB) TCP Datei- und Druckerfreigabe, Active Directory
464 Kerberos Change/Set Password TCP/UDP Passwortänderung und -setzung über Kerberos
636 LDAPS (Secure LDAP) TCP Gesichertes LDAP für verschlüsselte Kommunikation
3268 Global Catalog LDAP TCP LDAP-Zugriff auf den globalen Katalog
3269 Global Catalog LDAPS TCP Gesicherter LDAP-Zugriff auf den globalen Katalog
49152-49157 RPC (Dynamisch) TCP Dynamische RPC-Bereiche für Dienstaufrufe

Ticket lösen

vmLS1:

kinit administrator@SAM159.IET-GIBB.CH

Verbindung testen mit Kerberos Ticket

Der folgende Befehl benutzt das gelöste Kerberos Ticket für die Authentifizierung.

vmLS1:

smbclient -N --use-kerberos=required -L vmLS1

Credential Cache

Der Credential Cache enthält das gelöste TGT und ein cifs Ticket.

vmLS1:

klist

Verbindungsaufbau zu localhost

Der Verbindungsaufbau mit der Kerberos Authentifizierung funktioniert nur, wenn es einen entsprechenden Service Principal gibt. vmLS1:

smbclient -N --use-kerberos=required -L vmLS1

Passwortrichtlinien setzen

vmLS1:

samba-tool domain passwordsettings set --complexity=off
samba-tool domain passwordsettings set --history-length=24
samba-tool domain passwordsettings set --min-pwd-age=1
samba-tool domain passwordsettings set --max-pwd-age=90
samba-tool domain passwordsettings set --min-pwd-length=8
samba-tool user setexpiry Administrator --noexpiry
Option Beschreibung
--complexity=COMPLEXITY Die Passwortkomplexität (an, aus, Standard). Standard ist 'an'
--store-plaintext=STORE_PLAINTEXT Speichere Klartextpasswörter dort, wo Konten 'Passwörter mit umkehrbarer Verschlüsselung' haben (an, aus, Standard). Standard ist 'aus'
--history-length=HISTORY_LENGTH Die Passwortverlaufslänge (ganze Zahl, Standard). Standard ist 24
--min-pwd-length=MIN_PWD_LENGTH Die minimale Passwortlänge (ganze Zahl, Standard). Standard ist 7
--min-pwd-age=MIN_PWD_AGE Das minimale Passwortalter (ganze Zahl in Tagen, Standard). Standard ist 1
--max-pwd-age=MAX_PWD_AGE Das maximale Passwortalter (ganze Zahl in Tagen, Standard). Standard ist 43
--account-lockout-duration=ACCOUNT_LOCKOUT_DURATION Die Dauer der Kontosperre nach Überschreiten des Limits für fehlerhafte Passwortversuche (ganze Zahl in Minuten, Standard). Standard ist 30 Minuten
--account-lockout-threshold=ACCOUNT_LOCKOUT_THRESHOLD Die Anzahl der zulässigen fehlerhaften Passwortversuche vor der Sperrung des Kontos (ganze Zahl, Standard). Standard ist 0 (nie sperren)
--reset-account-lockout-after=RESET_ACCOUNT_LOCKOUT_AFTER Nach Ablauf dieser Zeit beginnt die aufgezeichnete Anzahl der Versuche wieder bei null (ganze Zahl, Standard). Standard ist 30

DNS Records anlegen mit samba-tool

vmLS1:

samba-tool dns add <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <data>

DNS Records löschen

vmLS1:

samba-tool dns delete <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <data>

Samba Flexible Single Master Operations

vmLS1:

sudo samba-tool fsmo show

Der Befehl zeigt die FSMO-Rollen der REALM an. Der Befehl zeigt normalerweise Informationen zu den folgenden FSMO-Rollen an:

  1. Schema Master: Zeigt den Server an, auf dem der Schema-Master-Rolle liegt. Der Schema-Master ist für die Aktualisierung und Pflege des Active Directory-Schemas verantwortlich.
  2. Domain Naming Master: Zeigt den Server an, auf dem der Domain Naming Master liegt. Der Domain Naming Master ist für die Hinzufügung und Entfernung von Domänen in der Gesamtstruktur verantwortlich.
  3. RID Pool Manager: Zeigt den Server an, auf dem der RID Pool Manager liegt. Der RID Pool Manager ist für die Generierung von RIDs (Relative Identifiers) in einer Domäne verantwortlich.
  4. PDC Emulator: Zeigt den Server an, auf dem der PDC Emulator liegt. Der PDC Emulator ist für die Behandlung von Legacy-Anforderungen von Windows NT 4.0-Betriebssystemen, die in der Domäne vorhanden sein können, sowie für die Synchronisierung von Passwortänderungen verantwortlich.
  5. Infrastructure Master: Zeigt den Server an, auf dem der Infrastructure Master liegt. Der Infrastructure Master ist für die Synchronisierung von Sicherheitsprinzipalnamen (Security Principal Names, SPNs) zwischen Domänencontrollern in verschiedenen Domänen verantwortlich.

Arbeitsblatt 2

Aufgaben

User, Gruppen und DNS mit RSAT Tools verwalten

Installation RSAT Tools

Nach der Installation stehen Tools wie das "Active Directory Users and Computers" oder das "Group Policy Management" und die DNS und DHCP Tools. vmWP1:

Get-WindowsCapability -Online | Where-Object {$_.Name -like 'Rsat*'} | Add-WindowsCapability -Online

DNS Server setzen

vmWP1:

Set-DnsClientServerAddress -InterfaceAlias "eth0" -ServerAddresses ("192.168.110.61")

Domain Join

vmWP1:

Add-Computer -DomainName sam159.iet-gibb.ch
# Administrator / SmL12345**

Active Directory mit ldapsearch abfragen

Ldap-utils installieren

vmLP1:

sudo apt update
sudo apt install -y ldap-utils

Ldap query

vmLP1:

ldapsearch -x -LLL -H ldap://vmls1.sam159.iet-gibb.ch -b dc=sam159,dc=iet-gibb,dc=ch -D CN=administrator,CN=Users,DC=sam159,DC=iet-gibb,DC=ch -w SmL12345** ’(cn=administrator)’