Linux - Netzwerk und Serveradministration - Skript
Lehrgangsziele
- Planung, Dokumentation und Aufbau einer IT-Infrastruktur mit Linux Servern
- Kennenlernen von Netzwerkdebugging-Verfahren und -Tools
- Remotemanagement mit SSH
- Automatische Netzwerkkonfiguration mit DHCP
- Konfiguration von Netzwerkdiensten: DNS, LDAP, SMB, NTP, SFTP
- Einrichten einer einfachen Firewall
Netzwerkpläne
- Das Schulungsnetzwerk wird also Pseudo-Internet verwendet, d.h. wir behandeln das Netzwerk 192.168.HS.0/24 wie ein öffentliches.
- Darin baut jeder sein eigenes LAN-, DMZ-, und Server-Netzwerk auf.
- Am Ende sollen die individuellen Netzwerke miteinander kommunizieren dürfen.
physisch
logisch
Servervorlage
- Für VMs als Server empfiehlt es sich eine Vorlage zu erstellen, die schon minimal konfiguriert ist
- Der Nutzer root soll das Passwort radler haben
- Ein Benutzer kit mit dem Passwort kit soll angelegt werden
- die Vorlage soll keine graphische Oberfläche haben (Bei der Installation abwählen)
- Ein SSH-Server soll aber für die Remoteverwaltung installiert werden
Umsetzung
Firewall
- Die Firewall wird ist zugleich der Router in das Übungsnetzwerk
- Hardwareanpassungen:
- 4 GB RAM
- 4 CPUs
- 4 Netzwerkkarten
- Für den Anfang müssen wir das Netzwerk konfigurieren
Fernzugriff per SSH
- Jeder Host soll über das SSH-Protokoll administrierbar sein
- hinterlegen Sie den öffentlichen Schlüssel für die Nutzer kit und root auf der Firewall
- Der SSH-Server sollte nach Sicherstellung des Zugriffs über autorisierte SSH-Schlüssel keine Passwort-Authentifizierung mehr zulassen: SSH-Server Hardening
- Am Ende sollte jeder Host über ssh user@ip.oder.host.name erreichbar sein
Client Konfiguration
Routing und Masquerading
- Damit die Firewall als Internet-Router fungieren kann, muss die Quell-IP der Pakete umgeschrieben werden
- Dazu müssen Firewall-Regeln unter iptables oder nftables erstellt werden
Firewall Umsetzung
eigener DNS Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- SSH-Schlüssel des Kit Hosts für User kit und root hinterlegen
- statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
- Hostname ändern zu dns
- SSH-Server anpassen
Daten
- NET: DMZ
- IP 10.88.1XX.21/24
- GW 10.88.1XX.1
- NS 192.168.5.88 Vorläufig
- NA ns.it1XX.int
- Zu installieren apt install bind9 - Es könnte nun auch named
- Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration DNS
interne Namensauflösung
- Durch das Domain Name System können wir Namen an IP-Adressen zuweisen und diese auflösen
- Diese sollten einfacher zu merken sein, als IPv4- oder IPv6-Adressen
- Jedes Labor soll eine eigene Domäne mit dem Schema netzxx.lab verwalten
- Erstellen Sie hierzu auch die jeweilige Reverse-Lookup-Zone 0.xx.10.in-addr.arpa
- Der DHCP-Server muss auch angepasst werden, damit Clients den internen DNS-Server bekommen
- Für die Kommunikation zwischen den DNS-Servern müssen entweder die entsprechenden Routen gesetzt werden oder über Firewall-Regeln Portforwarding aktiviert werden
DNS Umsetzung
Pseudo Top-Level-Domain
Pseudo-Top-Level Domäne
- Um die Domänen der anderen Labore aufzulösen ist ein Forwarder nötig
- Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen
DHCP - Automatische Netzwerkkonfiguration
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im LAN-Netzwerk liegen
- statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
- Hostname ändern zu dhcp
- SSH-Zugriff kann durch Benutzung der Firewall als Jump-Host ermöglicht werden
Daten
- NET: LAN
- IP 172.16.1XX.2/24
- GW 172.16.1XX.1
- NS 10.88.1XX.2
- NA dhcp.it1XX.int
- Zu installieren apt install isc-dhcp-server
- Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration
automatische Netzwerkkonfiguration
- Damit wir nicht das Netzwerk bei jedem Rechner manuell konfigurieren müssen setzen wir einen DHCP Server auf.
- Dieser beantwortet Anfragen von Clients in seiner Broadcast-Domäne.
- Der DHCP-Server soll IP-Adressen im Bereich 172.16.xx.50 bis .100 vergeben
- Als Nameserver nehmen wir unseren eigenen 10.88.1XX.2
- Und wir nehmen die eigene Search Domain it1XX.int
- Für die Konfigration kann diese Seite befolgt werden
- Beobachten Sie den Verkehr mit Wireshark oder tcpdump auf UDP Port 67 mit und fahren Sie kali hoch
ISC DHCP Umsetzung
Client
- Erstellt einen Client aus der Vorlage
- Hängt ins LAN Netz
- Gebt ihm den Namen client.it1XX.int
- hostnamectl set-hostname client.it1XX.int
- In der /etc/hosts den Namen von debian-template in client ändern
- Und rebootet ihn noch mal
DHCP-Relay-Server
- Der DHCP-Server beantwortet nur Anfragen innerhalb seiner Broadcast-Domäne
- Damit die DHCP-Konfiguration zentral gehalten werden kann, können andere DHCP-Server als Relay für einen Master-DHCP-Server dienen
- In unserem Fall soll die Firewall die DHCP-Konfiguration an die DMZ- und Server-Netze weitergeben
- Von nun an können neue Server in diesen Netzwerken automatisch über die DHCP-IP erreicht werden
DHCP-Relay-Server Umsetzung
SMB Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im Server-Netzwerk liegen
- statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
- Hostname ändern zu smb
- SSH-Zugriff kann durch Benutzung der Firewall als Jump-Host ermöglicht werden
Daten
- NET: Server
- IP 10.1XX.1.2/24
- GW 10.1XX.1.1
- NS 10.88.1XX.2
- NA smb.it1XX.int
- Zu installieren apt install samba smbclient
- Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration
Netzwerkfreigaben einrichten
- Legen Sie eine Sicherheitskopie der Originalkonfigurationsdatei an
- cp -v /etc/samba/smb.conf{,.orig}
- Diese ist wohl kommentiert und kann als Hilfe/Dokumentation dienen
- Erstellen Sie folgende Arten von Shares:
- öffentlich unter /srv/samba/pub namens public
- Ein Share namens share zugreifbar für kit unter /srv/samba/kit: smb.conf.minimal
- die Heimatverzeichnisse der regulären Nutzer des SMB-Servers sollen zugreifbar sein nach einer Authentifizierung: smb.conf.home
- Ein Share namens admins zugreifbar für die Benutzer der in der Gruppe sudo unter: /srv/samba/admin
- Testen Sie den Zugriff auf die Shares mit einem Client aus dem LAN:
- apt install nemo
- Das Programm kann über SSH Forwarding auf dem KIT Host geöffnet werden
- ssh -Y ip.oder.hostname.client "dbus-run-session nemo"
- Schneiden Sie den Austausch mit Wireshark auf TCP Port 445 mit
SFTP Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten
- NET: DMZ
- IP 10.88.1XX.3/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA sftp.it1XX.int
sichere Datenübertragung
- SFTP benutzt das SSH-Protokoll, um die Daten zu verschlüsseln
- Daher muss nur die Konfiguration des SSH-Servers angepasst werden
- andere FTP-Arten sollten nicht mehr benutzt werden (FTP, TFTP, ...)
- Ein SFTP-Zugang für einen Gast-User soll unter /srv/sftp/gast angelegt werden
- ssh jump-host
SFTP Umsetzung
LDAP Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im Server-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten
- NET: Server
- IP 10.1XX.1.3/24
- GW 10.1XX.1.1
- NS 10.88.1XX.2
- NA ldap.it1XX.int
zentrale Benutzerverwaltung
- Benutzer sollen sich überall mit ihren eigenen Konto anmelden können ohne, dass dieses Konto jedes mal neu angelegt werden muss
- Linux kann für die Benutzerauthentifizierung verschiedene Quellen verwenden
- Neben der lokalen Datei /etc/passwd soll zusätzlich eine LDAP-Datenbank für zusätzliche Benutzerkonten befragt werden
- Konfiguration Openldap-linux-pam-nss
- Die Einträge zu bestimmten Systemkategorien können mit dem Befehl getent abgefragt werden
- getent passwd # sollte lokale und LDAP-Konten anzeigen
- LDAP Server Verwaltung über ldapscripts
- Der LDAP-Server der Domäne soll automatisch über SRV-Einträge auf dem DNS Server gefunden werden können
- Alle Hosts aus dem VirtualBox-Labor sollen an den LDAP-Server gebunden werden
Squid
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten
- NET: DMZ
- IP 10.88.1XX.5/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA squid.it1XX.int
Squid
- Um Bandbreite zu sparen kann ein Caching Proxy wie Squid benutzt werden, um die Antworten von Webanfrangen zu speichern
- Zusätzlich können durch ACLs Webzugriffe kontrollieren
- Der Proxy soll auf der Firewall laufen, da dort die nötigen Hardwareressourcen sind
- Squid Aufgabe
- Squid Aufgabe2
NTP Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten
- NET: DMZ
- IP 10.88.1XX.4/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA ntp.it1XX.int
installieren ntp
- sudo apt install ntp
NGINX
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten
- NET: DMZ
- IP 10.88.1XX.10/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA www.it1XX.int
- sudo apt install nginx
Webserver
Exkrus HA Proxy
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im DMZ-Netzwerk liegen
- IP-Adresse herausfinden über das DHCP-Log oder die Konsole
- statische IP-Adresse nach dem Netzwerkplan setzen
- Hostname ändern
- DNS-Eintrag vornehmen
- SSH-Server anpassen
Daten HAProxy
- NET: DMZ
- IP 10.88.1XX.25/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA www.it1XX.int
- sudo apt install haproxy
Daten Webserver
- NET: DMZ
- IP 10.88.1XX.15/24
- GW 10.88.1XX.1
- NS 10.88.1XX.2
- NA web2.it1XX.int
Webserver
Grundlegendes Firewall-Konzept
- Dienste sollen erreichbar bleiben
- ungenutzte Ports sollen blockiert werden
- etablierte Verbindungen sollen über Connection Tracking freigeschaltet werden












