Zwei Client-Gruppen in verschiedene Subnetze zu legen sieht nach Isolation aus und ist es nicht. Adressen beschreiben, woher ein Paket scheinbar kommt, während Erlaubnis eine Entscheidung dessen ist, was es weiterleitet. Diese Frage beantwortet die Konfiguration und nicht die Maske, also entscheiden Sie, welche Komponente Peer-Verkehr weiterleitet, bevor Sie irgendeine Regel schreiben.

Ein Subnetz ist ein Etikett, keine Regel

Ein Pool pro Gruppe zuweisen liefert lesbare Adressen und sonst nichts. Ein Client, der eine zusätzliche Route akzeptiert, hat Erreichbarkeit gewonnen, und Erreichbarkeit ist keine Autorisierung. Die Erlaubnis zu sprechen liegt in der Weiterleitungsentscheidung, die je nach Serverkonfiguration im Daemon oder im Kernel leben kann.

Adresseigentum macht ein Präfix als Gruppenauswahl nutzbar. Jede authentifizierte Identität muss auf eine vorhersagbare Adresse oder einen Bereich abgebildet werden, und diese Zuordnung scheitert, sobald mehrere Geräte ein Zugangsdatum und eine Zuweisung teilen. Klären Sie Identität und Nebenläufigkeit, bevor Sie sich auf ein Quellpräfix verlassen, denn eine Richtlinie, die errät, welche Maschine anruft, autorisiert im schlechtesten Moment die falsche.

Wählen Sie den Pfad, der Peer-Verkehr trägt

Wenn der Daemon Peer-Pakete innerhalb seines eigenen Prozesses weiterleitet, erreichen diese Pakete nie den Weiterleitungshaken des Hosts, sodass eine Kernel-Regel sie nicht sehen kann. Deaktivieren Sie diese interne Weiterleitung, und der Kernel wird zum Weiterleitungspunkt, an dem gewöhnliche Weiterleitungsregeln gelten.

# peer forwarding inside the daemon: enforce with per-group policy instead of FORWARD rules
client-to-client
# kernel forwarding path: remove the line above, then filter in the forward chain

Ausgelagerte Datenkanäle und produktverwaltete Server veröffentlichen ihre eigenen Durchsetzungsmodelle, also prüfen Sie, welches Sie betreiben, statt das Verhalten der Community anzunehmen. Der Fehler, den es zu vermeiden gilt, ist eine Regel, die in einer Überprüfung korrekt aussieht und zur Laufzeit nie konsultiert wird.

Schreiben Sie die Matrix, bevor Sie Regeln schreiben

Eine kurze Matrix ist leichter zu prüfen als ein Regelsatz, und sie ist der Vertrag, den die Umsetzung erfüllen muss: Peers derselben Gruppe erlaubt, Peers über Gruppen hinweg verweigert, beiden Gruppen erlaubt zu einem benannten gemeinsamen Dienst, alles andere verweigert. Schreiben Sie diese vier Zeilen auf, bevor Sie einen Firewall-Editor öffnen. Ein Prüfer, der keine Regelsyntax liest, kann die Matrix trotzdem kontrollieren. Die Umsetzung muss dann nur noch zu den Zeilen passen.

SourceDestinationDecision
Group A addressAnother Group A addressAllow
Group A addressA Group B addressDeny
Either groupThe shared internal serviceAllow
Either groupAnything not listedDeny

Halten Sie die drei Zielklassen beim Schreiben auseinander. Ein Dienst auf dem VPN-Host ist lokale Eingabe, ein anderer Client ist Peer-Transit, und eine Maschine hinter dem Gateway ist ein anderer Weiterleitungspfad. Eine großzügige Regel kann alle drei versehentlich gewähren, und so wird aus einer Gruppenrichtlinie ein flaches Netz mit zusätzlichen Schritten. Schreiben Sie die Klasse neben jede Zeile, damit die Absicht die nächste Bearbeitung überlebt.

Setzen Sie die Regeln dorthin, wo sie überleben

Fügen Sie die Entscheidungen an derselben Stelle hinzu, an der der Rest der Firewall gepflegt wird, vor jeder erlaubenden Regel, die sie sonst verschlucken würde. Die Regelreihenfolge ist Teil der Richtlinie, und eine korrekte Regel nach einer breiten Freigabe setzt überhaupt nichts durch. Notieren Sie die Regelnummern vor und nach der Änderung. Eine Richtlinie, die in einem Editor existiert, aber nicht im laufenden Regelsatz, ist ein Plan, keine Kontrolle.

Entscheiden Sie, was mit bereits bestehenden Flows geschieht, wenn sich die Richtlinie ändert, denn eine vor der Änderung geöffnete Sitzung kann danach weiterlaufen. Wenn ein ausgeschiedenes Mitglied sofort den Zugang verlieren muss, braucht der Regelsatz eine Möglichkeit, diesen Zustand zu beenden, statt zu warten, bis die Verbindung von selbst schließt.

Machen Sie die Regeln über den Mechanismus dauerhaft, der den Rest der Firewall besitzt, und zeichnen Sie die Matrix daneben auf. Eine nicht aufgezeichnete Richtlinie wird beim nächsten Vorfall aus dem Gedächtnis neu abgeleitet, meist von jemandem in Eile.

Beweisen Sie es von beiden Seiten

Testen Sie Erreichbarkeit innerhalb derselben Gruppe, Fehlschlag über Gruppen hinweg und den gemeinsamen Dienst von je einem Client pro Gruppe. Ein einzelner Test von einem einzelnen Client beweist die Hälfte der Matrix, und die Hälfte, die er auslässt, ist meist die falsche. Wiederholen Sie die Verweigerungsrichtung zweimal, weil eine zwischengespeicherte Sitzung einen Durchsetzungsfehler verbergen kann. Notieren Sie, welches Paar Sie getestet haben, damit die nächste Person es nicht wiederholt.

Wiederholen Sie die Prüfung auf IPv6, wenn der Tunnel es trägt, und behalten Sie die gewöhnliche Anwendungsauthentifizierung bei. Ein Quellpräfix ist kein Konto, also bedeutet das Bestehen der Netzwerkrichtlinie nicht, dass ein Dienst dem Aufrufer vertrauen sollte.

Ähnliche Artikel