Sicher, hohe Portnummern zu verwenden? (bezüglich: Verschleierung von Webdiensten)


9

Ich habe ein kleines Heimnetzwerk und versuche, das Bedürfnis nach Sicherheit und Komfort in Einklang zu bringen. Der sicherste Weg, interne Webserver zu sichern, besteht darin, nur eine Verbindung über VPNs herzustellen. Dies scheint jedoch zu viel zu sein, um beispielsweise die Remote-Weboberfläche eines DVR zu schützen.

Wäre es als Kompromiss besser, sehr große Portnummern zu verwenden? (zB fünf Ziffern bis 65531)

Ich habe gelesen, dass Port-Scanner normalerweise nur die ersten 10.000 Ports scannen, sodass die Verwendung sehr hoher Portnummern etwas sicherer ist.

Ist das wahr?

Gibt es bessere Möglichkeiten, Webserver zu schützen? (dh Web-Guis für Anwendungen)


Nein, das ist nicht wahr. Moderne (sogar Desktop-) Multi-Core-CPU-Computer mit Breitbandzugang können alle 65535-Ports in Sekunden scannen. Und selbst wenn der Angreifer beschlossen hat, sie auf zwei pro Sekunde zu verteilen, um ein DoS-Tor zu vereiteln, wen interessiert das, lassen Sie Ihr System länger als einen Tag in Betrieb, oder? Eine alte Maxime ist, wie andere weiter unten gesagt haben, dass "Sicherheit durch Dunkelheit" in der digitalen Welt im Wesentlichen nutzlos ist.
Msanford

Antworten:


9

Ich habe gelesen, dass Port-Scanner normalerweise nur die ersten 10.000 Ports scannen, sodass die Verwendung sehr hoher Portnummern etwas sicherer ist.

Viele Leute glauben das. Ich nicht.

Vielleicht ist es ein bisschen sicherer, aber nicht viel. Die Ports mit der niedrigen Nummer sind häufiger anzutreffen, daher werden einige Scanner zuerst dort suchen.

Wenn ich ein Cracker wäre, würde ich zuerst die High-Ports scannen, um Leute zu fangen, die sich aus Sicherheitsgründen auf diese Methode verlassen. Menschen, die sich auf Sicherheit durch Dunkelheit verlassen, haben wahrscheinlich ein schlechtes Verständnis von Sicherheit und vergessen eher, andere Sicherheitsmethoden zu verwenden. Daher sind diese Dienste möglicherweise anfälliger und leichter zu knacken.

Einige Scanner nutzen diesen Glauben aus und beginnen oben und arbeiten sich durch die Liste. Bei anderen Scans werden zufällige Ports im gesamten Bereich ausgewählt, sodass alle Ports die gleiche Chance haben, gescannt zu werden.

Testen Sie dies selbst mit NMAP . Führen Sie einen nmap-Scan für die Ports 1-10.000 durch und suchen Sie nach einem HTTP-Server. Vergleichen Sie diesen mit einem Scan, der alle 1-65 xxx-Ports scannt. Sie werden sehen, dass der Unterschied normalerweise 3-10 Minuten beträgt. Wenn ich mit etwas wie Nessus einen detaillierten Scan mache, beträgt der Unterschied manchmal 20-60 Minuten.

Ein guter Cracker ist ein geduldiger Cracker. Sie werden warten.


1
Wäre es unter der Annahme, dass alle anderen relevanten Sicherheitsmaßnahmen umgesetzt wurden, besser oder schlechter, die Portnummern zu verschleiern? Meiner Meinung nach wäre es etwas besser, wenn der Server nicht speziell ausgerichtet wäre.
wag2639

2
+1 "Ein guter Cracker ist ein geduldiger Cracker. Sie werden warten."
Msanford

@ wag2639 Sie tun nicht wirklich etwas, indem Sie die Portnummer eines Dienstes ändern, sondern einen Script-Kiddie dazu bringen, ein etwas besseres Skript zu finden. Es ist trivial, einen Block von IPs und AUCH Ports zu wählen, die jeden einzelnen Port scannen.
Msanford

Wenn ein Hacker ein bestimmtes Ziel verfolgt, kann er möglicherweise 20 bis 60 Minuten warten, um hohe Portnummern zu scannen. Wenn sie jedoch versuchen, Hunderte oder Tausende von IP-Adressen zu scannen, um anfällige Systeme zu finden, scannen sie keine hohen Ports. Außerdem müssen sie wissen, dass es dort ein System gibt, bevor sie es ins Visier nehmen können. Wenn die Firewall ihre Arbeit erledigt, ist das System im Grunde genommen unsichtbar, bis sie auf einen offenen Port stößt.
user1751825

3

Die Verwendung ungerader Portnummern ist überhaupt keine Sicherheit, es sei denn, Sie gehen davon aus, dass Sie Ihre Anwendung als Nicht-Root-Benutzer ausführen können.

Diese Art von Dingen kann als Sicherheit durch Dunkelheit betrachtet werden, aber es ist eigentlich keine Sicherheit.


Gibt es dann Alternativen zur Verwendung eines vollständigen VPN? Vielleicht eine Art Reverse-Web-Proxy mit zusätzlichem Login- / Passwortschutz? (Tintenfisch tut dies nicht)
SofaKng

@sofakng: Sie könnten an einem SSL-Wrapper wie Stunnel interessiert sein: stunnel.org
Maxwell

3

Sie können auch einen SSH-Tunnel verwenden, wenn Sie Linux an beiden Enden verwenden:

ssh -f -N -L 9090:localhost:9090 user@remote-host

Auf diese Weise leite ich beispielsweise Port 9090 auf dem Remote-Host an meinen lokalen Port 9090 weiter cherokee-adminund verwende ähnliche Setups für andere Web-GUIs. Sie können Anwendungen auf diese Weise schützen, indem Sie in der App-Konfiguration angeben, dass sie nur auf localhost ausgeführt werden, dh auf 127.0.0.1. Auf diese Weise sind sie von außen nicht erreichbar, aber Sie können sie weiterleiten ssh. Suchen Sie man sshmithilfe der Portweiterleitung nach weiteren Optionen (einschließlich X, wodurch Ihr Problem möglicherweise auf andere Weise vollständig gelöst wird.)

Dies kann je nach Einrichtung ein geeigneter Weg sein, um Ihr Ziel zu erreichen, ohne zusätzliche Software zu installieren / konfigurieren.


1

Wenn Ihre Firewall dies zulässt, können Sie die Authentifizierung zuerst auf Firewall-Ebene durchführen. Wenn die Komplexität Ihrer Kennwörter ausreichend ist, sollte dies die Sicherheit der offengelegten Dienste erhöhen. Sie können auch SSL-Tunneling verwenden, indem Sie beispielsweise Stunnel und gegenseitige Authentifizierung verwenden.

In Anbetracht der Tatsache, dass die Verwendung einer höheren Portnummer in gewisser Weise sicherer ist, möglicherweise in Bezug auf Bots, die Ihre IP-Adresse scannen und einige Exploits ausprobieren. Wenn jedoch jemand wirklich einbrechen möchte, bietet die Verwendung höherer Portnummern keine erhöhte Sicherheit.


Ich verwende pfsense und einige meiner Webdienste verfügen über eine integrierte SSL-Unterstützung (HTTPS). Ist es noch besser, Stunnel zu verwenden? Ist die Verwendung von stunnel die "Authentifizierung auf der Firewall" -Ebene?
SofaKng

1
Wie macht man "Authentifizierung an der Firewall"?
wag2639

Ich weiß nicht, ob pfsense diese Funktionalität hat, aber auf Junipers-Routern können Sie lokale Benutzer (sogar RADIUS) verwenden, um Zugriff auf HTTP-übersetzten Verkehr zu gewähren. In Bezug auf Stunnel können Sie die gegenseitige Authentifizierung mit Zertifikaten verwenden. Stunnel kapselt den HTTP-Verkehr mit SSL und übernimmt die Authentifizierung.
Maxwell
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.