Linux - Netzwerk und Serveradministration - Skript

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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

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

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

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

Linux - Netzwerk und Serveradministration