it-swarm-eu.dev

Gefahren der Öffnung einer Vielzahl von Häfen? (mosh)

Warum konfigurieren wir Firewalls im Allgemeinen so, dass der gesamte Datenverkehr herausgefiltert wird, den wir nicht speziell zulassen? Ist dies nur eine zusätzliche Sicherheitsebene für die Tiefenverteidigung, die uns nichts bringt, wenn wir keine Malware auf unserem System ausführen?

Gibt es Gefahren beim Öffnen der Ports 60000 bis 61000 für eingehende UDP-Verbindungen, die wesentlich weniger sicher sind als das Öffnen einiger Ports?

Ich habe gerade von mosh gehört, das sich als eine bessere Möglichkeit für mobile SSH (über WLAN/Handy) bewirbt. Mosh verwendet UDP anstelle von TCP. Wenn Sie also kurz in einen Tunnel eintreten oder Ihre IP-Adresse ändert (Wechseln der Handytürme), müssen Sie nicht warten, um von der Überlastungskontrolle zurückzukehren oder eine neue SSH-Sitzung einzurichten. Grundsätzlich verwendet mosh ssh, um einen mosh-Server als nicht privilegierten Benutzer remote zu starten, einen AES-OCB-Schlüssel mit ssh auszutauschen und dann verschlüsselte Pakete (mit Sequenznummern) an einen Port im Bereich 60000-61000 zu senden/zu empfangen, den Sie sollten Konfigurieren Sie Ihre Firewall zum Öffnen.

Es ist mir etwas unangenehm, ~ 1000 Ports für eingehende (UDP) Verbindungen zu öffnen, aber ich kann mir keinen sehr guten Grund dafür vorstellen. Wenn keine Software auf Daten an diesem Port wartet, werden sie einfach ignoriert, oder? (Beim Bearbeiten: Nein - Der Server wird angewiesen, eine nicht erreichbare ICMP-Antwort (Ping) zurückzusenden.) Ich denke, wenn auf meinem Server Malware ausgeführt wird, wartet diese möglicherweise darauf, Anweisungen von gefälschten IP-Adressen an einem dieser geöffneten Ports abzuhören. Malware, die auf einem mit dem Internet verbundenen System ausgeführt wird, kann jedoch bereits Verbindungen herstellen/Informationen von anderen Malware-Servern herunterladen (obwohl eine IP-Adresse bekannt sein muss) und Anweisungen abrufen, sodass die Sicherheit dadurch nicht viel weniger sicher wird.

EDIT: Interessant, habe gerade gesehen, dass andere Frage was mich dazu brachte, über DP_flood_attack zu lesen. Ich denke außerdem, ich müsste mein System irgendwie daran hindern, nicht erreichbare Ping-Zielantworten für die neu geöffneten UDP-Ports zu senden.

29
dr jimbob

Denken Sie neben Justins Antwort über das versehentliche Öffnen von Anwendungen für den Remotezugriff daran, dass das Betriebssystem IMMER lauscht, auch wenn nichts speziell auf eine Verbindung wartet - wenn auch nur, um den entsprechenden Prozess weiterzuleiten/zuzuordnen oder abzulehnen oder lassen Sie das Paket stillschweigend fallen. Daher ist das Betriebssystem immer noch ein bestimmter Angriffsvektor, der ungeschützt bleiben kann, wenn eine Firewall den Datenverkehr zu einem "inaktiven" Port zulässt.

Da in diesem Szenario jedoch alle Dinge gleich sind, macht das Öffnen eines inaktiven Ports oder von 1000 inaktiven Ports kaum einen Unterschied. Aber auf jeden Fall den Rat des Prinzips des geringsten Privilegs beachten.

11
logicalscope

Soweit ich weiß, benötigt Mosh nicht wirklich tausend Ports, um zu funktionieren. es braucht nur einen (pro Client). Sie können also jeden einzelnen Port öffnen und Mosh anweisen, ihn zu verwenden (ab Handbuch ):

mosh -p 60000 my.server

Was ist der Grund für die zufällige Auswahl des Ports? Das verstehe ich nicht.

[UPDATE] Es wird kein zufälliger Port ausgewählt. Es durchsucht eine Reihe von Ports, um den ersten offenen zu finden ( siehe Code ). Andernfalls müssten Sie einen freien Port auf einem Mehrbenutzersystem manuell auswählen.

Dies bedeutet, dass Sie nur so viele Ports benötigen, wie Sie Benutzer (Personen, die möglicherweise mosh verwenden) auf Ihrem Server haben . Wenn es sich um Ihre eigene Box handelt, müssen Sie nur Port 60000 öffnen.

11
Leonid Shevtsov

Das Problem besteht darin, dass ein Angreifer durch das Öffnen einer großen Anzahl von Ports möglicherweise eine andere Anwendung verfügbar macht, die diese Ports möglicherweise verwendet. Beispielsweise kann meine EMR-Anwendung, die zum Speichern von Patientenakten verwendet wird, für die Verwendung dieser Portbereiche konfiguriert sein, ich möchte jedoch nicht, dass jemand aus dem nicht vertrauenswürdigen Internet diese Öffnung ausnutzen kann. Es kommt darauf an, so wenig Privilegien wie möglich durchzusetzen. In diesen Szenarien möchten Sie ein VPN nutzen, bei dem dieser Portbereich geöffnet ist. Damit ist das Problem der Authentifizierung und damit der Autorisierung behoben. Wenn Sie über Ihre externe Firewall auf Ihrem DMZ sprechen), vertrauen Sie nur auf Protokoll-/Portebene und müssen daher noch strenger sein.

6
Justin Andrusk

Es sollte durchaus möglich sein, den UDP-Portbereich von mosh in zu minimieren

https://github.com/keithw/mosh/blob/master/src/network/network.h#L77

Wenn ich das richtig verstanden habe, ist dies der Bereich, aus dem der Absenderprozess den UDP-Port auswählt. Daher sollte es möglich sein, eine lokale Mosh-Edition mit "engem Bereich" zu kompilieren und eine passende lokale UDP-Richtlinie für "enge Bereiche" der Firewall für mosh zu haben.

Was mich zu der Meta-Frage bringt: Wie eng ist ein Bereich, der groß genug ist, damit Mosh nützlich ist?

Wenn ich das richtig verstanden habe, wird ein Port pro Mosh-Server benötigt. Im Fall eines Personal Servers und der üblichen Verwendung von tmux (= nur ein Client) ist also einer zum Arbeiten und einer zum Reparieren erforderlich.

Aber ich kann mich irren, ich bin kein C-Codierer und ich habe Mosh erst gestern entdeckt.

4
Peter