Linux - Security und Firewall Labor: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 34: Zeile 34:
  
 
= Router Firewall =
 
= Router Firewall =
* Hardwareanpassungen, damit die Dienste später auch genug Ressourcen haben:
+
*[[Router Firewall - Linux - Security und Firewall Labor]]
** 4 GB RAM
 
** 4 CPUs
 
** 3 Netzwerkkarten
 
* Als nächstes setzen wir den Hostnamen der äußeren '''Router Firewall''' und konfigurieren die statischen IP
 
* '''hostnamectl set-hostname firewall.lab1xx.int'''
 
* für die statische IP muss die Datei ''/etc/network/interfaces'' bearbeitet werden (Distributions abhängig)
 
* '''vim ''/etc/network/interfaces'' '''
 
<pre>
 
auto lo
 
iface lo inet loopback
 
 
auto enp0s3
 
iface enp0s3 inet static
 
  address 192.168.''HS''.1''xx''/24
 
  gateway 192.168.''HS''.254
 
 
 
auto enp0s8
 
iface enp0s8 inet static
 
  address 172.18.1''xx''.1/24
 
 
auto enp0s9
 
iface enp0s9 inet static
 
  address 10.88.1''xx''.1/24
 
auto enp0s10
 
 
 
iface enp0s10 inet static
 
  address 172.16.1''xx''.1/24
 
</pre>
 
 
 
* '''ifdown -va ; ifup -va'''
 
* bzw.
 
* '''systemctl restart networking'''
 
* Als Kontrolle kann man '''ip addr show''' ausführen
 
  
 
=Firewall=
 
=Firewall=

Version vom 13. April 2025, 11:49 Uhr

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

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

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

IP bei zuvielen Anfragen sperren

table inet filter {
    set blackhole {
        type ipv4_addr;
        flags dynamic, timeout;
        size 65536;
    }

    chain input {
        ...
        ct state new tcp dport 80 \
                meter flood size 128000 { ip saddr timeout 10s limit rate over 10/minute } \
                add @blackhole { ip saddr timeout 1m }

        ip saddr @blackhole counter drop
    }
    ...
}