Firewalls
Zustandsbehaftete Regeln für eingehenden und ausgehenden Traffic, direkt oder per Label auf Server angewendet.
Eine Firewall ist ein Satz von Regeln, den Sie auf Server anwenden. Firewalls sind zustandsbehaftet (stateful): Antworten auf erlaubte Verbindungen werden immer durchgelassen.
Ein Server ohne Firewall akzeptiert sämtlichen eingehenden Traffic. Wenden Sie auf jeden Server, der nicht vollständig offen sein muss, eine Firewall an.
So funktionieren Regeln
- Eingehend (
direction: in): Alles wird blockiert, außer dem, was eine Regel erlaubt. - Ausgehend (
direction: out): Hat die Firewall keine ausgehenden Regeln, ist sämtlicher ausgehender Traffic erlaubt. Sobald sie eine hat, wird nur durchgelassen, was die ausgehenden Regeln erlauben. - Gelten mehrere Firewalls für einen Server, erhält der Server die Regeln aller Firewalls zusammen. Da Regeln Traffic immer nur erlauben, lässt eine Firewall ohne ausgehende Regeln sämtlichen ausgehenden Traffic durch, auch wenn eine andere Firewall auf demselben Server ausgehende Regeln hat.
Jede Regel hat:
| Feld | Werte |
|---|---|
direction | in oder out |
protocol | tcp, udp, icmp, esp oder gre |
port | Nur für tcp und udp, dort aber Pflicht: ein Port ("443") oder ein Bereich ("1000-2000") |
source_ips | Eingehende Regeln: die CIDRs, die sich verbinden dürfen, z. B. 0.0.0.0/0 und ::/0 für alle |
destination_ips | Ausgehende Regeln: die CIDRs, zu denen sich der Server verbinden darf |
description | Optionaler Text |
Eine Firewall kann bis zu 50 Regeln haben. Beim Setzen der Regeln wird die gesamte Liste ersetzt.
[
{ "direction": "in", "protocol": "tcp", "port": "22", "source_ips": ["198.51.100.0/24"], "description": "SSH from the office" },
{ "direction": "in", "protocol": "tcp", "port": "443", "source_ips": ["0.0.0.0/0", "::/0"] },
{ "direction": "in", "protocol": "icmp", "source_ips": ["0.0.0.0/0", "::/0"] }
]odx firewall create --name web --rules-file rules.json
odx firewall add-rule --direction in --protocol tcp --port 80 --source-ips 0.0.0.0/0,::/0 webEine Firewall anwenden
Eine Firewall wird auf eine von zwei Arten auf Ressourcen angewendet (apply_to_resources):
server: auf einen bestimmten Server.label_selector: auf jeden Server im Projekt, dessen Labels zum Selektor passen, z. B.role=web. Server, die Sie später erstellen, deren Labels Sie ändern oder die Sie löschen, werden automatisch berücksichtigt;applied_to_serversder Firewall zeigt, welche Server aktuell passen.
odx firewall apply-to-resource --type label_selector --label-selector role=web web
odx firewall apply-to-resource --type server --server db-1 webSie können beim Erstellen eines Servers auch bis zu fünf Firewalls angeben, sodass er ab dem ersten Start geschützt ist.
Eine Firewall, die noch auf Ressourcen angewendet ist, müssen Sie erst von diesen entfernen, bevor Sie sie löschen können.