SXAccessSXAccessDoku
Dashboard öffnen

Zugriffsregeln

Zugriffsregeln entscheiden, wer was erreicht. Sie sind Positivlisten zwischen Gruppen, eingeschränkt nach Protokoll und Port und optional an Geräteanforderungen gebunden.

Eine Zugriffsregel benennt eine Quelle, ein Ziel, ein Protokoll und - bei TCP und UDP - die Ports, die sie öffnet. Als Quelle dienen eine oder mehrere Gruppen, als Ziel eine oder mehrere Gruppen oder eine einzelne Netzwerkressource. Zugriffsregeln sind Positivlisten: Nichts erreicht irgendetwas, bis eine Zugriffsregel es erlaubt, und Verkehr, den keine aktive Zugriffsregel erlaubt, kommt nicht durch.

Sie legen sie im Dashboard unter Access → Access rules an oder über die API unter https://app.sxaccess.com/api/access-rules (siehe Über die API).

Die Seite Access mit den Zugriffsregeln und den Quell- und Zielgruppen, die jede Regel verbindet.
Eine Zugriffsregel benennt eine Quellgruppe, eine Zielgruppe und die Ports dazwischen.

Aufbau einer Zugriffsregel

TeilIm DashboardÜber die API
NameAccess rule namename
QuelleDie Gruppen nach Allowrules[0].sources: Gruppen-IDs
ZielDie Gruppen nach to reach oder eine einzelne Netzwerkressource, wenn Sie den Editor von dieser Ressource aus öffnenrules[0].destinations: Gruppen-IDs oder rules[0].destinationResource
Protokollany protocol, TCP, UDP oder ICMP. Eine neue Zugriffsregel beginnt mit any protocolrules[0].protocol: all, tcp, udp oder icmp
PortsNur bei TCP und UDP sichtbar. Leer bedeutet: jeder Portrules[0].ports oder rules[0].port_ranges, nie beides in einer Zugriffsregel
RichtungOne-way oder Two-wayrules[0].bidirectional
GeräteanforderungenBrowse oder New requirementsource_device_requirements: Anforderungs-IDs
AktivAccess rule is active unter Advanced options oder der Schalter Status in der Listeenabled und rules[0].enabled; beide müssen true sein
AktionNicht angezeigt: Das Dashboard schreibt immer eine erlaubende Regelrules[0].action: accept oder drop, das es nur über die API gibt

Die erste echte Zugriffsregel schreiben

  1. 1

    Die beiden Gruppen anlegen

    Geprüft wird die Regel am Ende vom Notebook einer Person aus dem Engineering-Team. Halten Sie eines bereit, auf dem SXAccess installiert und die Person angemeldet ist.

    Sie brauchen eine Gruppe für die Personen, Engineering, und eine für die Datenbankserver, Produktionsdatenbanken. Öffnen Sie People → Groups → Create group, geben Sie den Namen ein und wählen Sie Create group, einmal für jede Gruppe. Sie können einen neuen Namen auch in ein beliebiges Gruppenfeld tippen und die Eingabetaste drücken; die Gruppe wird dann beim Speichern angelegt. Siehe Gruppen.

  2. 2

    Das Engineering-Team in die Gruppe aufnehmen

    Öffnen Sie für jede Person aus dem Engineering-Team People → Members, wählen Sie die Person aus und fügen Sie im Reiter Access unter Auto-assigned groups die Gruppe Engineering hinzu. Wählen Sie Save Changes. Geräte, die die Person ab jetzt registriert, kommen in die Gruppe, ihre vorhandenen Geräte ebenfalls, solange die Gruppenweitergabe eingeschaltet ist; das ist der Standard.

  3. 3

    Die Datenbankserver in die Gruppe aufnehmen

    Öffnen Sie für jeden Datenbankserver Devices, wählen Sie ihn aus, fügen Sie unter Assigned groups die Gruppe Produktionsdatenbanken hinzu und wählen Sie Save changes. Für Server, die Sie später registrieren, tragen Sie die Gruppe stattdessen unter Auto-assigned groups des Registrierungsschlüssels ein; so kommen sie bei der Registrierung automatisch in die Gruppe.

  4. 4

    Eine enge Zugriffsregel anlegen

    Öffnen Sie Access → Access rules → Create access rule und geben Sie unter Access rule name Engineering zu Produktionsdatenbanken ein. Vervollständigen Sie den Satz: Engineering darf Produktionsdatenbanken über TCP erreichen. Tippen Sie in das Feld für die Ports 5432 und drücken Sie die Eingabetaste; das Feld zeigt dann 5432 statt All. Belassen Sie die Richtung auf One-way, sehen Sie sich die Preview an und wählen Sie Create access rule.

  5. 5

    Prüfen

    Öffnen Sie im Dashboard unter Devices das Gerät einer Person aus dem Engineering-Team: Der Reiter Accessible devices listet die Datenbankserver auf. Auf einer Maschine aus dem Team mit dem CLI-Agenten zeigt auch sxaccess info -d sie an.

    Eine One-way-Zugriffsregel verbirgt die beiden Seiten nicht voreinander: Jede steht in der Geräteliste der anderen. Versucht die Datenbank, eine Verbindung aufzubauen, lehnt die Firewall auf der Maschine der Person sie ab.

    shell
    sxaccess info -d
  6. 6

    Die Schnellstart-Regel entfernen

    Wenn Sie die ICMP-Testregel aus dem Schnellstart angelegt haben, löschen Sie sie jetzt. Sobald eine echte Zugriffsregel besteht, hängt nichts mehr von ihr ab. Solange sie bleibt, können sich die Rechner in quickstart gegenseitig anpingen; ein Ping zwischen ihnen sagt Ihnen dann nichts über die Regeln, die Sie als Nächstes schreiben.

Der Zugriffsregel-Editor als Satz: Eine Gruppe darf eine andere über TCP auf benannten Ports erreichen, mit ausgewählter Option „One-way“.
Der Editor ist ein Satz. „One-way“ ist die Vorgabe und fast immer die richtige.

Wie Zugriffsregeln angewendet werden

Jede Zugriffsregel, die Sie im Dashboard schreiben, erlaubt etwas. Ein Gerät erhält die Summe dessen, was die aktiven Zugriffsregeln erlauben: Regeln haben keine Prioritäten und überdecken einander nicht, es gibt also keine Reihenfolge zu durchdenken. Was keine aktive Zugriffsregel erlaubt, wird abgewiesen; eine Verbotsregel müssen Sie deshalb nicht schreiben.

Der Management-Dienst macht daraus für jedes Gerät zweierlei: die Liste der Geräte, mit denen es kommunizieren darf, und die Firewall-Regeln dafür. Ein Gerät, das keine Zugriffsregel mit Ihrem verbindet, steht gar nicht erst in Ihrer Liste: Es lässt sich über SXAccess weder anpingen noch per Portscan untersuchen noch entdecken. Ein Gerät in der Liste wird dennoch von den Firewall-Regeln gefiltert; so verhindert eine One-way-Zugriffsregel, dass das Ziel Verbindungen aufbaut.

Eine Ausnahme gibt es nur über die API: Eine Zugriffsregel, deren rules[0].action den Wert drop hat, weist den Verkehr ab, auf den sie passt. Setzen Sie sie nur für Verkehr ein, den ein Routing-Gerät weiterleitet. Dort werden drop-Regeln vor den erlaubenden Regeln geprüft, sodass eine solche Regel eine Ausnahme aus geroutetem Zugriff herausschneiden kann. Zwischen zwei Geräten haben eine drop-Regel und eine erlaubende Regel für denselben Verkehr keine feste Reihenfolge; schränken Sie dort besser die erlaubende Regel ein.

An Geräteanforderungen binden

Eine Zugriffsregel kann Geräteanforderungen enthalten, die ein Quellgerät erfüllen muss, damit die Regel für dieses Gerät gilt. Im Editor hängt Browse vorhandene Anforderungen an, New requirement legt direkt eine neue an. Ein Notebook, dessen Betriebssystem unter der Mindestversion liegt oder das sich aus einem nicht erlaubten Land verbindet, verliert den Zugriff, den diese Regel gewährt, stillschweigend - ohne jede Änderung an seinen Gruppen. Ziele werden nicht geprüft.

Die Prüfungen beschreibt die Seite Geräteanforderungen.

Mit der Liste arbeiten

Der Schalter Status in jeder Zeile schaltet eine Zugriffsregel ein oder aus, ohne sie zu öffnen. Um mehrere auf einmal zu ändern, kreuzen Sie sie an und wählen Enable, Disable oder Delete. Vor dem Löschen erscheint eine Rückfrage, und die Verbindungen, die diese Zugriffsregeln erlaubt haben, enden sofort.

Bewährte Muster

  • Geringste Rechte beim Protokoll. Die meisten Zugriffe brauchen eine Handvoll TCP-Ports. any protocol stehen zu lassen, weil es schneller geht, gibt jeder erlaubten Maschine dauerhaft ICMP, UDP und jeden Port.
  • Eine Zugriffsregel je Absicht, nicht je Gruppenpaar. Eine Zugriffsregel namens Engineering erreicht Staging für drei Dienste lässt sich leichter prüfen als neun nach Gruppenpaaren benannte Zugriffsregeln.
  • Administrativen Zugriff trennen. RDP gehört in eine eigene, an Geräteanforderungen gebundene Zugriffsregel, damit sie sich verschärfen lässt, ohne den Anwendungszugriff zu berühren.
  • Erst deaktivieren, dann löschen. Eine Zugriffsregel auszuschalten, wirkt wie Löschen, bewahrt aber die Definition - das zählt, wenn Sie sich geirrt haben.

Über die API

Die API verwaltet dieselben Zugriffsregeln unter https://app.sxaccess.com/api/access-rules, mit einem Zugriffstoken im Header Authorization: Token. Eine Zugriffsregel speichert, was sie erlaubt, in einer Liste rules; geben Sie ihr genau einen Eintrag, denn das Dashboard zeigt und bearbeitet nur den ersten. Gruppen und Geräteanforderungen werden über ihre ID angegeben, und auf ein unbekanntes Feld antwortet der Server mit HTTP 400. Siehe die API-Referenz.

shell - Zugriffsregel über die API anlegen
curl -sS -X POST https://app.sxaccess.com/api/access-rules \  -H "Authorization: Token $SXACCESS_TOKEN" \  -H 'Content-Type: application/json' \  -d '{    "name": "Engineering zu Produktionsdatenbanken",    "enabled": true,    "rules": [{      "name": "Postgres",      "enabled": true,      "action": "accept",      "protocol": "tcp",      "ports": ["5432"],      "bidirectional": false,      "sources": ["<engineering-gruppen-id>"],      "destinations": ["<datenbank-gruppen-id>"]    }]  }'