Netzwerk Segmentierung VLANs Server
Netzwerk-Segmentierung mit VLANs – Server und Infrastruktur absichern
Netzwerk-Segmentierung ist ein kritischer Sicherheitsmechanismus, der Ihr Netzwerk in isolierte Zonen aufteilt. Dies begrenzt die laterale Bewegung von Angreifern und schützt kritische Systeme vor Kompromittierungen in weniger kritischen Bereichen. VLANs (Virtual Local Area Networks) sind das primäre Werkzeug für diese Segmentierung.
Warum Netzwerk-Segmentierung wichtig ist
Sicherheitsvorteile
- Breach Containment – Wenn ein Angreifer ein System übernimmt, kann er nicht automatisch auf alle anderen Systeme zugreifen
- Service Isolation – Verschiedene Dienste können isoliert betrieben werden, was die Auswirkungen von Sicherheitslücken begrenzt
- Compliance – Viele Compliance-Standards (PCI-DSS, HIPAA) fordern Netzwerk-Segmentierung
- Performance – Broadcast-Traffic wird reduziert, was bessere Netzwerk-Performance bietet
- Access Control – Sie können Netzwerk-Zugriff granular steuern basierend auf Rollen und Funktionen
VLAN Grundkonzepte
Was ist ein VLAN?
Ein VLAN ist ein logisches Netzwerk, das über ein physisches Netzwerk hinweg existiert. Systeme in verschiedenen VLANs können nicht direkt miteinander kommunizieren, auch wenn sie mit dem gleichen Switch verbunden sind. Dies wird durch VLAN-Tagging (802.1Q Standard) erreicht.
VLAN-Tagging (802.1Q)
802.1Q fügt den Ethernet-Frames einen 4-Byte Tag hinzu, der folgende Informationen enthält:
- TPID (Tag Protocol Identifier) – Standard 0x8100
- PCP (Priority Code Point) – QoS Priorität
- DEI (Drop Eligible Indicator) – Kann für Drop-Entscheidungen verwendet werden
- VLAN ID – Die tatsächliche VLAN-Nummer (1-4094)
Trunk vs Access Ports
| Port-Typ | Zweck | Tagged/Untagged | Typische Nutzung |
|---|---|---|---|
| Access Port | Verbindet End-Geräte (Server, Clients) | Untagged (Single VLAN) | Geräte, die sich auf einem VLAN befinden |
| Trunk Port | Verbindet Switches oder Router | Tagged (Multiple VLANs) | Inter-Switch oder Switch-zu-Router-Verbindungen |
Typische Netzwerk-Segmentierung Zonen
Eine häufige Netzwerk-Segmentierung folgt diesem Modell:
┌─────────────────────────────────────────────────────────────┐
│ Internet │
└──────────────────────────┬──────────────────────────────────┘
│
┌──────┴──────┐
│ Firewall │
└──────┬──────┘
┌───────────────────┼───────────────────┐
│ │ │
┌───┴────┐ ┌─────┴─────┐ ┌────┴────┐
│ DMZ │ │ Internal │ │Mgmt Net │
│VLAN 10 │ │ VLAN 20 │ │VLAN 200 │
└───┬────┘ └─────┬─────┘ └────┬────┘
│ │ │
[Web Server] [DB Server] [Nagios/Admin]
[Reverse Proxy] [App Server]
DMZ (VLAN 10)
- Öffentlich erreichbare Services (Web, Mail, DNS)
- Höchstes Maß an Überwachung und Härtung
- Begrenzte Kommunikation zu internen Netzwerken
Internal Server Network (VLAN 20)
- Datenbanken, Applikations-Server, Worker-Nodes
- Nicht öffentlich erreichbar
- Kommunikation nur innerhalb des Netzwerks und von DMZ aus
Management Network (VLAN 200)
- Monitoring, Logging, Verwaltungs-Tools
- Sehr restriktive Zugriffe
- Keine direkte Internet-Konnektivität
Client Network (VLAN 30)
- Desktop und Laptop Computer
- Begrenzte Zugriffe auf Server
- Outbound-Filtering für Web-Traffic
IoT Network (VLAN 40) – Optional
- IoT-Geräte und Smart Devices
- Strikte Isolation von kritischen Netzwerken
- Minimale Berechtigungen
VLANs auf Linux mit netplan konfigurieren
Schritt 1: Aktuelle Netzwerk-Konfiguration anzeigen
ip addr show ip route show netplan --version
Schritt 2: VLAN-Interface erstellen mit IP Command
Temporär (nach Reboot verloren):
sudo ip link add link eth0 name eth0.10 type vlan id 10 sudo ip addr add 192.168.10.1/24 dev eth0.10 sudo ip link set eth0.10 up
Dies erstellt ein neues Interface eth0.10, das als VLAN 10 über eth0 fungiert.
Schritt 3: Permanent mit netplan konfigurieren
Bearbeiten Sie /etc/netplan/01-netcfg.yaml:
sudo nano /etc/netplan/01-netcfg.yaml
Beispiel-Konfiguration für mehrere VLANs:
network:
version: 2
ethernets:
eth0:
dhcp4: false
mtu: 1500
vlans:
eth0.10:
id: 10
link: eth0
dhcp4: false
addresses:
- 192.168.10.1/24
routes:
- to: 0.0.0.0/0
via: 192.168.10.254
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
eth0.20:
id: 20
link: eth0
dhcp4: false
addresses:
- 192.168.20.1/24
eth0.200:
id: 200
link: eth0
dhcp4: false
addresses:
- 192.168.200.1/24
Schritt 4: Änderungen anwenden
sudo netplan apply
Überprüfen Sie, ob die VLANs korrekt erstellt wurden:
ip -br addr show ip -br link show
Routing zwischen VLANs aktivieren
IP Forwarding aktivieren
Damit das System als Router zwischen VLANs fungiert:
sudo sysctl -w net.ipv4.ip_forward=1 sudo sysctl -w net.ipv6.conf.all.forwarding=1
Permanent speichern:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-routing.conf echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.d/99-routing.conf sudo sysctl -p /etc/sysctl.d/99-routing.conf
Firewall-Regeln zwischen VLANs
iptables-Regeln für VLAN-Segmentierung
Hier ist ein Beispiel, das Traffic zwischen den verschiedenen Segmenten kontrolliert:
#!/bin/bash # VLAN Segmentierung mit iptables # Default Policies iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # VLAN 10 (DMZ) <-> VLAN 20 (Internal): Nur HTTP/HTTPS/SSH von DMZ zu Internal iptables -A FORWARD -i eth0.10 -o eth0.20 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0.10 -o eth0.20 -p tcp --dport 3306 -j ACCEPT # MySQL iptables -A FORWARD -i eth0.10 -o eth0.20 -p tcp --dport 5432 -j ACCEPT # PostgreSQL # VLAN 20 (Internal) -> VLAN 10 (DMZ): Bestätigte Verbindungen iptables -A FORWARD -i eth0.20 -o eth0.10 -m state --state ESTABLISHED,RELATED -j ACCEPT # VLAN 200 (Management) -> Alle: Admin-Zugriff auf alle Netzwerke iptables -A FORWARD -i eth0.200 -j ACCEPT iptables -A FORWARD -o eth0.200 -m state --state ESTABLISHED,RELATED -j ACCEPT # Internet -> VLAN 10 (DMZ): Nur HTTP/HTTPS iptables -A FORWARD -i eth0 -o eth0.10 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth0.10 -p tcp --dport 443 -j ACCEPT # Alles andere zwischen VLANs: Blockiert iptables -A FORWARD -j LOG --log-prefix "VLAN_BLOCK: " iptables -A FORWARD -j DROP # Speichern iptables-save | sudo tee /etc/iptables/rules.v4
UFW Regeln für VLANs
Mit UFW können Sie auch ähnliche Regeln schreiben:
sudo ufw default deny forward sudo ufw allow from 192.168.10.0/24 to 192.168.20.0/24 port 3306 proto tcp sudo ufw allow from 192.168.200.0/24 to any sudo ufw reload
Praktisches Beispiel: Web-zu-Datenbank Segmentierung
Setup
- Web-Server: 192.168.10.10/24 (VLAN 10 - DMZ)
- DB-Server: 192.168.20.20/24 (VLAN 20 - Internal)
- Router/Firewall: Gateway zwischen VLANs
Konfiguration
Auf dem Router/Firewall:
#!/bin/bash # Allowlist nur notwendige Kommunikation # 1. Web-Server kann Datenbankserver erreichen (Port 3306) iptables -A FORWARD -s 192.168.10.10 -d 192.168.20.20 -p tcp --dport 3306 -j ACCEPT # 2. Bestätigte Verbindungen in andere Richtung iptables -A FORWARD -d 192.168.10.10 -s 192.168.20.20 -m state --state ESTABLISHED,RELATED -j ACCEPT # 3. Alles andere blockieren iptables -A FORWARD -j DROP
Test der Konnektivität:
ssh user@192.168.10.10 'mysql -h 192.168.20.20 -u appuser -p'
Sicherheits-Vergleich: Segmentiert vs. Nicht-segmentiert
| Szenario | Nicht-segmentiert | Mit VLAN-Segmentierung |
|---|---|---|
| Web-Server kompromittiert | Angreifer kann alle Server im Netzwerk scannen und angreifen | Angreifer ist isoliert auf VLAN 10, kann nicht direkt auf Datenbank zugreifen |
| Lateral Movement | Unrestricted | Blockiert durch Firewall-Regeln |
| Breach Exposure | Alle kritischen Systeme gefährdet | Nur die Systeme in gleicher oder erworbener Segmente gefährdet |
| Compliance | Nicht erfüllt (PCI-DSS, HIPAA) | Best-Practice Sicherheit |
VLAN-Tagging auf dem Switch konfigurieren
Beispiel mit Cisco-Switches (Befehlssyntax):
interface Gi0/1 description "Server eth0 - Trunk" switchport mode trunk switchport trunk allowed vlan 10,20,200 interface Gi0/2 description "Web Server" switchport mode access switchport access vlan 10 interface Gi0/3 description "Database Server" switchport mode access switchport access vlan 20
Auf Linux-basierten Switches (OpenVSwitch):
ovs-vsctl add-br br0 ovs-vsctl add-port br0 eth0 ovs-vsctl set port eth0 tag=10 ovs-vsctl set port eth1 tag=20
Monitoring von VLAN-Traffic
Mit tcpdump zwischen VLANs sniffing:
sudo tcpdump -i eth0.10 -n | head -20 sudo tcpdump -i eth0.20 -n | head -20
Traffic-Statistiken anzeigen:
cat /proc/net/dev | grep eth0
Zusammenfassung
Netzwerk-Segmentierung mit VLANs ist eine essenzielle Sicherheitsmaßnahme, die:
- Laterale Bewegung von Angreifern begrenzt
- Kritische Systeme besser schützt
- Compliance-Anforderungen erfüllt
- Bessere Netzwerk-Performance ermöglicht
- Granulare Zugriffskontrolle bietet
Mit Linux, netplan und iptables/UFW können Sie eine robuste, segmentierte Netzwerk-Architektur aufbauen.