Erlaubt mir die SSH-Verweigerungsregel SSH?

Erlaubt mir die SSH-Verweigerungsregel SSH?

Ich lerne AWS VPC, wo ich NACL Inbound/Outbound-Regeln wie folgt zuweise: Im Moment mache ich das für alle IPs

Rule #    Type           Allow/Deny
100       All Traffic    Allow
200       SSH            Deny
 *        All Traffic    Deny


Outbound
Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny

Ich frage mich, wie mein SSH funktioniert, da die Regel besagt, dass die niedrigere Zahl zuerst ausgewertet wird, und in der Ausgangsregel habe ich SSH verweigert. Kann jemand erklären, wie die Regel in AWS tatsächlich funktioniert?

Antwort1

Eingehender SSH-Verkehr wird zugelassen, da die eingehende Regel Nr. 100 (200 wird praktisch ignoriert) und die ausgehende Regel nicht mit der bereits hergestellten SSH-Verbindung übereinstimmt …


Bezogen aufAWS-Dokumentation:

Netzwerk-ACLs sind zustandslos, was bedeutet, dass Antworten auf zulässigen eingehenden Datenverkehr den Regeln für ausgehenden Datenverkehr unterliegen (und umgekehrt).

  • Eingehende Regel

Nach dem, was ich sehe, haben Sie die Regeln in der falschen Reihenfolge angeordnet.

Rule #    Type           Allow/Deny
100       All Traffic    Allow
200       SSH            Deny
 *        All Traffic    Deny

Das ergibt einfach keinen Sinn, da Sie mit Regel 100 allen Datenverkehr zulassen, sodass Regel 200 zu keinem Zeitpunkt angewendet werden würde (der Datenverkehr wird bereits auf Grundlage von Regel 100 zugelassen, sodass für Regel 200 nichts „übrig“ bleibt). Ich denke, eine andere Reihenfolge macht mehr Sinn (falls Sie den SSH-Dienst verweigern möchten:

Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny
  • Ausgehend

Hier ist SSH-Verkehr mit niedrigerer Regelnummer:

Rule #    Type           Allow/Deny
100       SSH            Deny
200       All Traffic    Allow
 *        All Traffic    Deny

Dadurch wird der Datenverkehr für SSH verweigert, für den Rest wird er jedoch zugelassen ...

Typ SSH ist Datenverkehr mit Port TCP/22 - dieser wird normalerweise als Zielport verwendet. Falls Sie einen SSH-Server kontaktieren möchten, stellen Sie eine Verbindung zu TCP/22 her, aber Ihr Quellport ist TCP/X, wobei X „zufällig“ (nicht wirklich, aber der Einfachheit halber sagen wir zufällig) ausgewählt wird, sagen wir >10000.

Sobald der Server auf Ihre Verbindung antwortet, ist der Zielport „Ihr“ TCP/X, sodass die Regel nicht unbedingt auf diesen Datenverkehr zutrifft …

Ausgehender Datenverkehr mit dem Ziel TCP/22 wäre die Verbindung, die auf dem Server mit Ziel einem anderen Gerät initiiert wird und nicht bereits eine SSH-Verbindung hergestellt hat.

Antwort2

Sie lassen den gesamten Datenverkehr auf Ihren Host zu, verweigern jedoch den SSH-Ausgang von dort.

Soweit ich weiß, führen die NACLs keine Deep Packet Inspection durch. Das bedeutet, dass die Protokolle einfache Aliase für ihreZugewiesene Ports.

Sofern Sie nicht etwas wirklich Bizarres tun, wie zum Beispiel einen SSH-VersuchausPort 22, Ihre eingehende SSH-Sitzung sollte einwandfrei funktionieren.

verwandte Informationen