Erarbeiten Sie zuerst die Idee, und nutzen Sie dann die nächste Aktivität, um sie zu überprüfen.
Nach Dienst filtern, nicht nur nach Host
Protokoll und Port zu einer Regel hinzufügen, und die drei Antworten, die ein blockierter Port Ihnen geben kann.
Was Sie können werden
- Eine Regel schreiben, die einen Dienst statt einen Host zulässt
- Erklären, warum ein portspezifisches Permit die Least-Privilege-Form ist
- Einen offenen, abgelehnten und gefilterten Port anhand der Antwort unterscheiden
- Sagen, warum Verwerfen besser ist als Ablehnen für eine Regel, die still sein soll
Zuvor: Sie benötigen First-Match-Reihenfolge und den impliziten Deny aus "Verkehr mit einer ACL filtern" sowie Ports aus "TCP, UDP und Ports".
Warum es wichtig ist: Eine Regel, die einem Host erlaubt, einen anderen zu erreichen, erlaubt jeden Dienst darauf - die Datenbank, die Management-Schnittstelle, was auch immer nächstes Jahr installiert wird. Den Dienst zu benennen ist der Unterschied zwischen einer Zugriffsliste, die eine Absicht ausdrückt, und einer, die sie nur annähert.
Eine Zugriffsliste, die nur Adressen benennt, beantwortet die Frage „Können diese beiden Maschinen sprechen“. Das ist selten die Frage, die tatsächlich jemand gestellt hat. Bei der eigentlichen Anfrage geht es fast immer um einen Service — das Webteam benötigt den Anwendungs-Port, der Auditor muss ein System lesen, das Gastnetzwerk benötigt das Internet und nichts Internes.
Den Dienst zu einer Regel hinzufügen
Eine Regel kann für das Transportprotokoll und den Zielport sowie für die Adressen übereinstimmen. Gleiche Reihenfolge beim ersten Treffer, gleiches implizites Ablehnen am Ende — ein weiteres Feld zum Abgleichen.
# Permits everything between these two hosts
permit src 10.30.10.25 dst 10.30.30.10
# Permits one service, and nothing else, between the same two
permit src 10.30.10.25 dst 10.30.30.10 tcp dport 443
Der Zielport ist derjenige, der den Dienst identifiziert, da es sich um den Port handelt, auf dem der Server lauscht. Der Quellport wird vom Client für jede Verbindung nach dem Zufallsprinzip ausgewählt und es ist nicht sinnvoll, ihn abzugleichen. Eine Zuordnung ist ein häufiger Fehler in der Anfangsphase und führt zu einer Regel, die nur einmal funktioniert und dann beendet wird.
Verkehr zurückgeben
Für eine ausgehende Anfrage muss eine Antwort zurückkommen, und die Antwort kommt an dem zufälligen Quellport an, den der Client ausgewählt hat. Eine statusfreie Liste muss eine Vielzahl von eingehenden Ports zulassen, um Antworten überhaupt zuzulassen, was einen Großteil der gerade gewonnenen Genauigkeit zunichte macht.
Das Abgleichen des Verbindungsstatus löst dieses Problem ordnungsgemäß. Die Firewall verfolgt, welche ausgehenden Verbindungen sie zugelassen hat, und lässt die zugehörigen Antworten zu, ohne dass es eine Regel gibt, die es jedem ermöglichen würde, eine neue eingehende Verbindung aufzubauen.
# Replies to connections we already allowed out
permit ct state established,related
# One service, inbound, from one source
permit src 10.30.10.25 dst 10.30.30.10 tcp dport 443
Die drei Antworten
Wenn eine Verbindung zu einem Port nicht erfolgreich ist, sagt Ihnen die Art und Weise, wie sie fehlschlägt, etwas Bestimmtes aus. Dies ist sowohl für die Diagnose als auch für die Entscheidung wichtig, wie eine Ablehnungsregel geschrieben werden soll.
| Ergebnis | Was ist passiert | Was bedeutet das |
|---|---|---|
| Offen | Die Verbindung wurde abgeschlossen | Etwas hört zu und nichts hat es gefiltert |
| Abgelehnt | Ein Reset kam sofort zurück | Das Paket hat den Host erreicht und eine Antwort erhalten - entweder hört nichts zu oder eine Regel hat es abgelehnt |
| Gefiltert | Überhaupt keine Antwort, bis zum Timeout | Etwas hat es stillschweigend weggeworfen |
Das Unterscheidungssignal ist Zeit. Eine Ablehnung kehrt sofort zurück, weil etwas geantwortet hat. Ein Drop nimmt die volle Zeitüberschreitung in Anspruch, weil nichts passiert ist. Beide sehen aus, als ob „keine Verbindung hergestellt wurde“, wenn Sie nicht auf den Unterschied achten.
Fallenlassen gegen Ablehnen
| Aktion | Antwort gesendet | Wirkung auf einen Scanner | Auswirkung auf einen legitimen Kunden |
|---|---|---|---|
| Fallenlassen | Keine | Langsam — jeder Port kostet einen vollen Timeout | Langsamer Ausfall, weniger klarer Fehler |
| Ablehnen | Eine sofortige Reset- oder ICMP-Meldung | Schnell — der Scan ist schnell abgeschlossen | Schneller Ausfall, klarerer Fehler |
Dropping ist die richtige Standardeinstellung an einer Grenze gegenüber allem, was nicht vertrauenswürdig ist: Es kostet einen Angreifer Zeit und verrät nichts darüber, was da ist. Ablehnen ist in einem Netzwerk, das Sie kontrollieren, freundlicher, wo eine schnelle Behebung eines Fehlers jemandem einen Nachmittag mit der Diagnose erspart und es keinen Scanner gibt, den man frustrieren könnte.
Ein Audit, bei dem mehr als die Regel feststellte
Die Regel, die es der Webebene erlaubt, die Anwendungsebene zu erreichen, wurde nach Adresse geschrieben, da zu dem Zeitpunkt auf dem Anwendungsserver ein Dienst ausgeführt wurde. Es führt jetzt auch die Datenbank auf ihrem Standardport aus. Nichts in der Zugriffsliste hat sich geändert und nichts sieht falsch aus — die Webserver erhielten einfach an dem Tag, an dem der Dienst gestartet wurde, direkten Datenbankzugriff, und die Regel, die das gewährte, wurde Jahre zuvor aus einem anderen Grund geschrieben.
Überprüfung anhand des Verhaltens
Eine Regel, die richtig liest, kann immer noch nicht funktionieren, und ein Lernender, der dasselbe Ergebnis auf andere Weise erzielt hat, sollte nicht als falsch markiert werden. Einen Filter zu überprüfen bedeutet zu testen, was tatsächlich von der Maschine aus passiert, worauf es ankommt.
# Should connect
nc -w 3 10.30.30.10 443
# Should time out with no response at all
nc -w 3 10.30.30.10 3306
Fachbegriffe
- Zielport
- Der Port, auf dem der Server lauscht, und der Port, der einen Dienst in einer Regel identifiziert.
- Zustandsbehaftete Filterung
- Verfolgt zulässige Verbindungen, sodass Antworten zugelassen werden, ohne dass eine Regel neue eingehende Verbindungen zulässt.
- Gefiltert
- Ein Port, dessen Verkehr stillschweigend verworfen wird und keine Antwort gibt.
- Abgelehnt
- Ein Port, der mit einem Reset antwortete — entweder nichts zuhörend oder eine Ablehnungsregel.
Wichtigste Erkenntnisse
- Ordnen Sie den Zielport zu, um einen Dienst zuzulassen. Der Quellport ist zufällig und es ist nutzlos, ihn abzugleichen.
- Eine reine Adressberechtigung gewährt jeden Dienst auf diesem Host, auch zukünftige.
- Ein übereinstimmender Verbindungsstatus lässt Antworten zu, ohne neue eingehende Verbindungen zuzulassen.
- Offen, Abgelehnt und Gefiltert sind drei verschiedene Ergebnisse, die sich danach unterscheiden, ob etwas beantwortet wurde.
- Über TCP kann eine Ablehnung nicht von einem gestoppten Dienst unterschieden werden.
- Gehen Sie an eine unsichere Grenze; lehnen Sie innerhalb eines Netzwerks ab, in dem die Beseitigung von Fehlern mehr hilft, als sie kosten.
Bereit weiterzumachen?
Erstellen Sie ein kostenloses Konto, um Ihren Fortschritt zu speichern und den Wissenscheck zu absolvieren.
