Linux - Netzwerk und Serveradminstration: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 5: | Zeile 5: | ||
*[[Linux - Netzwerk und Serveradminstration Themen]] | *[[Linux - Netzwerk und Serveradminstration Themen]] | ||
*[[Linux Cheatsheet]] | *[[Linux Cheatsheet]] | ||
| + | = 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 == | ||
| + | {{#drawio:5102-physisch}} | ||
| + | == logisch == | ||
| + | {{#drawio:5102-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 [[:Kategorie:SSH|SSH]]-Server soll aber für die Remoteverwaltung installiert werden | ||
| + | ==Umsetzung== | ||
| + | * [[Debian Template]] | ||
| + | * [[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | = Firewall = | ||
| + | {{#drawio:5102-firewall-01}} | ||
| + | * 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 [[Debian Netzwerkkonfiguration|Netzwerk konfigurieren]] | ||
| + | |||
| + | = Fernzugriff per [[:Kategorie:SSH|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 = | ||
| + | * [[Client Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | = Routing und Masquerading = | ||
| + | {{#drawio:5102-masquerade}} | ||
| + | * 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 Masquerade|nftables]] erstellt werden | ||
| + | ==Firewall Umsetzung== | ||
| + | *[[Firewall-Nat-Linux - Netzwerk und Serveradministration]] | ||
| + | *[[Firewall-NAT-Linux-nftables - Netzwerk und Serveradminsitration]] | ||
| + | *[[Firewall-ssh-key Dozent - Netzwerk und Serveradministration]] | ||
| + | *[[Firewall skript autostart]] | ||
| + | |||
| + | = eigener DNS Server = | ||
| + | {{#drawio:5102-dns}} | ||
| + | |||
| + | == 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 Konsol | ||
| + | * statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'') | ||
| + | * Hostname ändern zu ''ns'' | ||
| + | * SSH-Server anpassen | ||
| + | * SSH-Schlüssel des Kit Hosts für User ''kit'' hinterlegen | ||
| + | ===Daten=== | ||
| + | *NET: DMZ | ||
| + | *IP 10.88.1XX.21/24 | ||
| + | *GW 10.88.1XX.1 | ||
| + | *NS 192.168.6.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 [[DNS|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 '''netz''xx''.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 [[ip route|Routen]] gesetzt werden oder über [[DNAT|Firewall-Regeln]] Portforwarding aktiviert werden | ||
| + | ==DNS Umsetzung== | ||
| + | *[[DNS Linux - Netzwerk und Serveradministration - Skript]] | ||
| + | |||
| + | ==DNS Aufgabe Reverse Lookup Zone LAN & SERVERS== | ||
| + | *[[DNS Linux - Netzwerk und Serveradministration - Reverse Aufgabe]] | ||
| + | |||
| + | =Pseudo Top-Level-Domain= | ||
| + | {{#drawio: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 | ||
| + | |||
| + | |||
| + | = [[:Kategorie:DHCP|DHCP]] - Automatische Netzwerkkonfiguration = | ||
| + | {{#drawio:5102-01}} | ||
| + | |||
| + | == 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.21 | ||
| + | *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 Grundlagen|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 [[ISC DHCP|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== | ||
| + | *[[ISC DHCP]] | ||
| + | *[[KEA DHCP - Netzwerk und Servreadministration]] | ||
| + | |||
| + | = Wichtiger Hinweis zu ISC DHCP = | ||
| + | |||
| + | * '''ISC DHCP ist End-of-Life (EOL) seit Ende 2022''' | ||
| + | * Kea DHCP bietet selbst keinen Relay-Agent | ||
| + | * '''Empfohlene moderne Alternative: dnsmasq als DHCP-Relay''' | ||
| + | * dnsmasq unterstützt sowohl DHCPv4 als auch DHCPv6 Relay | ||
| + | |||
| + | ==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 = | ||
| + | {{#drawio:5102-dhcp-relay-01}} | ||
| + | * 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= | ||
| + | *[[DHCP-Relay-Server]] | ||
| + | *[[KEA DHCP-Relay-Server - Netzwerk und Serveradministration]] | ||
| + | |||
| + | = [[Samba|SMB]] Server = | ||
| + | {{#drawio:5102-smb-01}} | ||
| + | |||
| + | == 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.21 | ||
| + | *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: | ||
| + | ** [[Samba Public Share|ö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 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 = | ||
| + | {{#drawio:5102-sftp-01}} | ||
| + | |||
| + | == 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 | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | == sichere Datenübertragung == | ||
| + | * SFTP benutzt das SSH-Protokoll, um die Daten zu verschlüsseln | ||
| + | * Daher muss nur die [[SFTP-Server|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== | ||
| + | *[[SFTP-Server|Konfiguration des SSH-Servers]] | ||
| + | |||
| + | = [[:Kategorie:LDAP|LDAP]] Server = | ||
| + | {{#drawio:5102-ldap-01}} | ||
| + | |||
| + | == 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.21 | ||
| + | *NA ldap.it1XX.int | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | == 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 [[:Kategorie:LDAP|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 [[LDAP SRV Record|SRV-Einträge]] auf dem DNS Server gefunden werden können | ||
| + | * Alle Hosts aus dem VirtualBox-Labor sollen an den LDAP-Server gebunden werden | ||
| + | *[[LDAP Client SSSD - Netzwerk und Serveradministration]] | ||
| + | |||
| + | = [[Squid_from_the_scratch|Squid]] = | ||
| + | {{#drawio:5102-squid-01}} | ||
| + | |||
| + | == 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.21 | ||
| + | *NA squid.it1XX.int | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | ==Squid Konfiguration Hilfestellung== | ||
| + | *[[Squid_ACL_Basic]] | ||
| + | |||
| + | ==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]] | ||
| + | |||
| + | ==Proxy PAC über DHCP== | ||
| + | *[[KEA Proxy PAC - Netzkwerk und Serveradministration]] | ||
| + | |||
| + | = [[:Kategorie:NTP|NTP]] Server = | ||
| + | {{#drawio:5102-ntp-01}} | ||
| + | |||
| + | == 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.21 | ||
| + | *NA ntp.it1XX.int | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | installieren ntp | ||
| + | *sudo apt install ntpsec | ||
| + | |||
| + | ===NTP mit DHCP verteilen=== | ||
| + | *[[KEA DHCP NTP-Konfiguration - Netzwerk und Serveradministration]] | ||
| + | |||
| + | =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.21 | ||
| + | *NA www.it1XX.int | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | * sudo apt install nginx | ||
| + | |||
| + | ==Webserver== | ||
| + | *[[Nginx]] | ||
| + | *[[Nginx https]] | ||
| + | *[[phpldapadmin nginx]] | ||
| + | |||
| + | =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 | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | |||
| + | * 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== | ||
| + | *[[HAProxy]] | ||
| + | *[[HAProxy Umsetzung Linux - Netzwerk Serveradministration]] | ||
| + | |||
| + | =Exkrus checkmk= | ||
| + | == Vorbereitungen == | ||
| + | * VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen | ||
| + | * Der Host soll im ''Servers''-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 checkmk=== | ||
| + | *NET: Servers | ||
| + | *IP 10.1XX.1.25/24 | ||
| + | *GW 10.1XX.1.1 | ||
| + | *NS 10.88.1XX.21 | ||
| + | *NA checkmk.it1XX.int | ||
| + | |||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]] | ||
| + | === Docker === | ||
| + | *[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration Docker]] | ||
| + | |||
| + | = Grundlegendes Firewall-Konzept = | ||
| + | * Dienste sollen erreichbar bleiben | ||
| + | * ungenutzte Ports sollen blockiert werden | ||
| + | * etablierte Verbindungen sollen über [[Connection Tracking]] freigeschaltet werden | ||
| + | |||
| + | =Linux - Netzwerk und Serveradministration= | ||
| + | *[[Linux - Netzwerk und Serveradministration Probleme]] | ||
=Weiteres= | =Weiteres= | ||
*[[Linux - Netzwerk und Serveradminstration Misc]] | *[[Linux - Netzwerk und Serveradminstration Misc]] | ||
Version vom 27. März 2026, 13:14 Uhr
Überblick
- Thomas Will
- Zeiten
- Linux - Netzwerk und Serveradministration - Skript
- Linux - Netzwerk und Serveradminstration Themen
- Linux Cheatsheet
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
- Firewall-Nat-Linux - Netzwerk und Serveradministration
- Firewall-NAT-Linux-nftables - Netzwerk und Serveradminsitration
- Firewall-ssh-key Dozent - Netzwerk und Serveradministration
- Firewall skript autostart
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 Konsol
- statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
- Hostname ändern zu ns
- SSH-Server anpassen
- SSH-Schlüssel des Kit Hosts für User kit hinterlegen
Daten
- NET: DMZ
- IP 10.88.1XX.21/24
- GW 10.88.1XX.1
- NS 192.168.6.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
DNS Aufgabe Reverse Lookup Zone LAN & SERVERS
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.21
- 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
Wichtiger Hinweis zu ISC DHCP
- ISC DHCP ist End-of-Life (EOL) seit Ende 2022
- Kea DHCP bietet selbst keinen Relay-Agent
- Empfohlene moderne Alternative: dnsmasq als DHCP-Relay
- dnsmasq unterstützt sowohl DHCPv4 als auch DHCPv6 Relay
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.21
- 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 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.21
- 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
- LDAP Client SSSD - Netzwerk und Serveradministration
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.21
- NA squid.it1XX.int
Squid Konfiguration Hilfestellung
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
Proxy PAC über DHCP
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.21
- NA ntp.it1XX.int
installieren ntp
- sudo apt install ntpsec
NTP mit DHCP verteilen
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.21
- 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
Exkrus checkmk
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Der Host soll im Servers-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 checkmk
- NET: Servers
- IP 10.1XX.1.25/24
- GW 10.1XX.1.1
- NS 10.88.1XX.21
- NA checkmk.it1XX.int
Docker
Grundlegendes Firewall-Konzept
- Dienste sollen erreichbar bleiben
- ungenutzte Ports sollen blockiert werden
- etablierte Verbindungen sollen über Connection Tracking freigeschaltet werden
Linux - Netzwerk und Serveradministration












