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).

Aufbau einer Zugriffsregel
| Teil | Im Dashboard | Über die API |
|---|---|---|
| Name | Access rule name | name |
| Quelle | Die Gruppen nach Allow | rules[0].sources: Gruppen-IDs |
| Ziel | Die Gruppen nach to reach oder eine einzelne Netzwerkressource, wenn Sie den Editor von dieser Ressource aus öffnen | rules[0].destinations: Gruppen-IDs oder rules[0].destinationResource |
| Protokoll | any protocol, TCP, UDP oder ICMP. Eine neue Zugriffsregel beginnt mit any protocol | rules[0].protocol: all, tcp, udp oder icmp |
| Ports | Nur bei TCP und UDP sichtbar. Leer bedeutet: jeder Port | rules[0].ports oder rules[0].port_ranges, nie beides in einer Zugriffsregel |
| Richtung | One-way oder Two-way | rules[0].bidirectional |
| Geräteanforderungen | Browse oder New requirement | source_device_requirements: Anforderungs-IDs |
| Aktiv | Access rule is active unter Advanced options oder der Schalter Status in der Liste | enabled und rules[0].enabled; beide müssen true sein |
| Aktion | Nicht angezeigt: Das Dashboard schreibt immer eine erlaubende Regel | rules[0].action: accept oder drop, das es nur über die API gibt |
Die erste echte Zugriffsregel schreiben
- 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
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
Engineeringhinzu. 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
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
Produktionsdatenbankenhinzu 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
Eine enge Zugriffsregel anlegen
Öffnen Sie Access → Access rules → Create access rule und geben Sie unter Access rule name
Engineering zu Produktionsdatenbankenein. Vervollständigen Sie den Satz:EngineeringdarfProduktionsdatenbankenüber TCP erreichen. Tippen Sie in das Feld für die Ports5432und 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
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 -dsie 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.
sxaccess info -d - 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
quickstartgegenseitig anpingen; ein Ping zwischen ihnen sagt Ihnen dann nichts über die Regeln, die Sie als Nächstes schreiben.

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 Stagingfü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.
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>"] }] }'
