Begriff
VPC Flow Logging
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
In deinem Datacenter konntest du ein Kabel anzapfen ("Network Tap").
In der Cloud (AWS, Azure) hast du keine Kabel. Alles ist virtuell.
Wie siehst du, wer mit wem redet?
VPC Flow Logs sind das virtuelle Protokoll des Netzwerks.
AWS schreibt für jedes Paket eine Zeile auf:
src=10.0.0.1 dst=192.168.1.1 port=80 action=ACCEPT.
src=BadIP dst=Server port=22 action=REJECT.
Du brauchst das für Security (Wer scannt meinen Server?) und Troubleshooting (Warum kommt das Paket nicht an?).
Merksatz: Ein Feature von Cloud-VPCs (Virtual Private Clouds), das Informationen über den IP-Verkehr zu und von Netzwerkschnittstellen erfasst und speichert.
Du aktivierst es in der AWS Console (pro VPC oder Subnet).
Die Logs landen in S3 oder CloudWatch.
Du analysierst sie mit Athena (SQL).
SELECT srcAddr, COUNT(*) FROM flow_logs WHERE action='REJECT' GROUP BY srcAddr.
Aha! IP 1.2.3.4 hämmert gegen meine Firewall.
1. Nicht der Payload
Wichtig: Flow Logs zeigen nur die Metadaten (Header). Wer, Wohin, Wann, Wie viel Bytes. Sie zeigen nicht den Inhalt (kein "Passwort" oder "HTML"). Dafür bräuchte man "Traffic Mirroring" (viel teurer).
2. Sampling & Lag
Flow Logs sind nicht "Realzeit" (oft 5-10 Minuten Verzögerung). Und sie aggregieren (Sampling). Wenn 1000 Pakete in 1 Sekunde kommen, steht da nur "1000 Packets, Start: 00:01, End: 00:02".
1. CloudWatch Logs Insights
In der Produktion nutzt man Flow Logs selten als Textdatei. Man nutzt Log Insights.
Dank einer speziellen Query-Sprache (Pipes & Filters) kann man komplexe Fragen stellen:
filter action="REJECT" | stats count(*) as rejectCount by bin(1h), srcAddr | sort rejectCount desc.
Dies erlaubt es, in Sekunden hunderte gigabyte an Logs nach IP-Scanning-Mustern oder Denial-of-Service-Angriffen zu durchsuchen, ohne die Daten erst mühsam in eine SQL-Datenbank (Athena) laden zu müssen.
2. TCP-Status und Rejection-Details
Flow Logs zeigen mehr als nur IP/Port.
- TCP Flags: Man sieht, ob ein
SYNkam, einACKoder einFIN. - Log Status: Zeigt an, ob Daten vollständig oder (wegen Überlastung) nur lückenhaft aufgezeichnet wurden.
Ein Experte kann anhand der Flags sehen, ob eine Verbindung "sanft" geschlossen wurde (
FIN/ACK) oder hart abgebrochen ist (RST). Das ist entscheidend für das Debugging von Microservices, die sporadisch "Connection Refused" Fehler werfen.
3. Subnet- und Interface-Aggreggation
Flow Logs können auf 3 Ebenen aktiviert werden:
- VPC-Ebene: Alles wird geloggt (Massive Datenmenge).
- Subnet-Ebene: Nur Traffic in einem spezifischen Netzwerksegment (z.B. die DMZ).
- ENI-Ebene (Elastic Network Interface): Gezieltes Logging für EINE virtuelle Netzwerkkarte (z.B. von einem kritischen Datenbank-Server). In der Cloud-Architektur nutzt man oft "VPC Mirroring" parallel zu Flow Logs, wenn man den Inhalt der Pakete (Deep Packet Inspection) für Intrusion Detection Systeme (IDS) braucht. Flow Logs sind das "Wer/Wo/Wann", Mirroring ist das "Was".
Quick-Check
Warum sehe ich REJECT?
Weil deine Security Group (Firewall) funktioniert. REJECT heißt: "Jemand hat geklopft, aber wir haben nicht aufgemacht."Kostet es Geld?
Ja. Das Speichern der Logs (Terabytes!) kann teurer sein als der Traffic selbst. Man aktiviert es oft nur bei Bedarf oder speichert nur Errors (REJECT).Unidirektional?
Flows sind bidirektional aggregiert, aber die Logs zeigen oft Hin- und Rückweg separat. Man muss TCP-Verbindungen geistig zusammensetzen.