Linux - Security und Firewall Labor
Version vom 13. April 2025, 11:59 Uhr von Thomas.will (Diskussion | Beiträge) (→IP bei zuvielen Anfragen sperren)
Ziel
physischer Netzwerkplan
logischer Netzwerkplan
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
Hostzugriff absichern
- Falls man physischen Zugriff zur Maschine hat, kann die Authentifzierung von root beim Booten umgangen werden
- Bootsicherheit/-hacking
- Das wollen wir an der Firewall verhindern
- GRUB Passwort einrichten
Remotezugriff mit SSH
- Da man nicht immer physisch an einer Maschine anwesend sein kann, empfiehlt es sich Hosts über SSH zu steuern
- Der Datenverkehr ist dabei verschlüsselt, damit es beide Maschinen vor potentiellen Angreifern schützt, die den Verkehr mitschneiden
- Jeder Host soll über das SSH-Protokoll administrierbar sein
- Generieren Sie einen SSH-Schlüssel mit der Passphrase, z.B. 123Start$
- 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
Router Firewall
Firewall
DHCP
Switch
DNS für das Labor einrichten
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
Nameserver
SFTP Server
Strongswan IPSEC
Wireguard
OpenVPN
Crowdsec
- Crowdsec Grundsätzliches
- Crowdsec Einordnung
- Crowdsec Installation und Handling
- Crowdsec SSH Bruteforce Beispiel
Fail2ban für SSH/SFTP einrichten
- apt install iptables fail2ban
- Plan ist es den DNS Server als Angreifer auf den SFTP Server zu starten
- Fail2ban ssh
Proxies
SOCKS Proxy
- SOCKS Proxies verbinden Client und Server protokollunabhängig über einen Proxy
- Eine verschlüsselte SOCKS Verbindung kann man am einfachsten mit SSH erreichen
- ssh -fnN -D 8080 kit@sftp
- curl www.lab1xx.sec
- curl --socks5 localhost:8080 www.lab1xx.sec
- Unterschiedliche IPs sollten unter /var/log/apache2/access.log zu sehen sein
Squid als Standard Proxy
- Ein einfacher Proxy soll eingerichtet werden
- Über die Source-IP wird kontrolliert, ob ein Client den Proxy benutzen darf
- Weitere ACLs können den Zugriff auf bestimmte Webseiten blockieren
Transparenter Proxy
- Clients im LAN sollen nicht die Möglichkeit haben den Proxy zu umgehen, indem sie den Eintrag aus dem Browser entfernen
- Über Firewall-Regeln können die Webanfragen auf den Proxy geleitet werden
Virenscanning mit ClamAV in Squid
- Durch Installieren von Stammzertifikaten auf den Browsern der Clients, soll Squid die Möglichkeit haben die Inhalte der Webseiten zu scannen
- Der Proxy kann so dann verhindern, dass Clients sich Viren herunterladen
Suricata
Mandatory Access Control
Apparmor
SELinux
HIDS
AIDE
Tripwire
Greenbone Security/Vulnerability Manager (Hacking & Security Seite 161)
- Kali Vorlage auf den realen Host ziehen
- Neue Maschine hinzufügen mit Netzwerkbrücke
- Benutzer/Passwort: kali/kali
- sudo -i
- apt update
- apt install gvm
- GVM initialisieren und das Passwort merken, aufschreiben oder in eine Datei speichern
- gvm-setup
- gvm-check-setup
- Die Initialisierung der Datenbank kann einige Stunden dauern
- Die Datenbank kann auch manuell geupdatet werden
- greenbone-feed-sync --type scan-config
- Falls das immernoch nicht funktioniert
- Die User ID des Admins holen...
- runuser -u _gvm -- gvmd --get-users --verbose
- ...und Konfiguration des Benutzers ändern
- runuser -u _gvm -- gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value <uuid_of_user>
Portscanning
- Die Effektivität der Firewall soll mit nmap getestet werden
- Für einen Vergleich scannen wir einmal mit Default-Policy accept und einmal mit drop




