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:
- 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.
- 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.
- 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.
- 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.
- 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)’