Zum Inhalt springen
>_<
AI EngineeringWiki

Firewall & Netzwerksegmentierung

Security · 6 min

📋 Auf einen Blick

Nur nötige Ports öffnen, Services segmentieren, SSH nur mit Key-Auth. UFW als Firewall, Fail2ban gegen Brute-Force, Traefik als Reverse Proxy. Interne Services (Prometheus, Docker API) niemals direkt von außen erreichbar machen.

Netzwerk-Segmentation für lokale AI-Infrastruktur
Netzwerk-Segmentation: DMZ, internes Netz, AI-Stack isoliert

Netzwerksicherheit ist die erste Verteidigungslinie. Ohne Firewall und Segmentierung ist ein kompromittierter Service der Einstieg für alles andere.

Diagramm wird geladen...

Grundprinzipien

  • Minimal: Nur nötige Ports öffnen
  • Segmentierung: Services trennen
  • Auth: Kein Zugang ohne Login
  • Logging: Alles protokollieren

Port-Bereiche

BereichPortsNutzung
SSH22Nur intern
HTTP/S80, 443Öffentlich
Docker2375, 2376Nur intern
Swarm2377, 7946Cluster
Prometheus9090Nur intern

Docker Network

# Eigenes Netzwerk erstellen
docker network create --driver overlay ai-network

# Service in Netzwerk
services:
  ollama:
    networks:
      - ai-network

# Nur interne Services
networks:
  internal:
    driver: overlay
    internal: true

# Mehrere Netzwerke
services:
  nginx:
    networks:
      - public    # Internet
      - internal  # Backend
  database:
    networks:
      - internal  # Nur Backend

UFW Regeln (Ubuntu)

# UFW aktivieren
ufw enable
ufw default deny incoming
ufw default allow outgoing

# SSH einschränken - nur internes Netzwerk
ufw allow from 10.0.0.0/8 to any port 22
ufw allow from 192.168.1.0/24 to any port 22

# HTTP/S öffnen
ufw allow 80/tcp
ufw allow 443/tcp

# Docker Swarm
ufw allow 2377/tcp
ufw allow 7946/tcp
ufw allow 7946/udp

# Logging
ufw logging low
ufw status verbose

# Alle Regeln anzeigen
ufw status numbered

Traefik als Reverse Proxy

Alle Services hinter Traefik verstecken:

# docker-compose.yml für Traefik
services:
  traefik:
    image: traefik:v3.0
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"  # Dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik.yml:/etc/traefik/traefik.yml:ro
      - ./certs:/certs
    networks:
      - internal

  whoami:
    image: traefik/whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.local`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls=true"
    networks:
      - internal

Best Practices

  1. Alle Services hinter Reverse Proxy (Traefik, Nginx)
  2. Interne Services NICHT direkt von außen erreichbar
  3. SSH nur mit Key, kein Password
  4. Fail2ban für brute-force Schutz
  5. Regelmäßig Ports scannen

Fail2ban Konfiguration

# /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log

# Fail2ban neustarten
sudo fail2ban-client reload

# Status prüfen
sudo fail2ban-client status

Port-Scan regelmäßig

# nmap Installation
sudo apt install nmap

# Offene Ports scannen
nmap -sT -p- 192.168.1.100

# Nur wichtige Ports
nmap -sT -p 22,80,443,3000,8080,9090 192.168.1.100

# Von außen testen (online tools)
# https://www.shodan.io/
# https://www.grc.com/
⚠️ Docker und UFW

Docker manipuliert iptables direkt und umgeht UFW-Regeln. Ports die in docker-compose.yml mit ports: exponiert werden, sind trotz UFW von außen erreichbar. Lösung: Ports nur auf 127.0.0.1 binden (z.B. 127.0.0.1:9090:9090) oder Docker-interne Netzwerke nutzen.

Security Layers — Mehrschichtige Absicherung
Defense in Depth: Firewall, Fail2ban, Docker Network, Application Security

Zusammenfassung

Firewall ist Pflicht. So wenig wie möglich öffnen, alles andere über VPN oder Proxy.

Quellen

Verwandte Artikel

War dieser Artikel hilfreich?

Weiter im Lernpfad

Der Lernpfad bringt diese Artikel in eine Reihenfolge, und der Hub führt die Bausteine, die wir im eigenen Betrieb geprüft haben.

Warum AI Engineering
  • Lokal und selbst gehostet
  • Dokumentiert und prüfbar
  • Aus eigenem Betrieb
  • Made in Austria
Kein Ersatz für Rechtsberatung.