Ich habe keine Erfahrung mit Netzwerken und beherrsche viele der Grundlagen, verstehe aber nicht, warum das Internet keinen direkten Kontakt mit Ihren Geräten in Ihrem lokalen Netzwerk herstellen kann.
Ich weiß, dass Router und NATs allen Ihren Geräten die gleiche IP für Ihr Netzwerk ermöglichen und die Anforderungen an das Web und zurück an den Client weiterleiten, der sie angefordert hat. Meine Frage ist jedoch folgende:
Angenommen, ich möchte den Computer einer Person hacken und kenne die IP-Adresse seines Heimnetzwerks (Routers). Könnte ich dann nicht einfach Daten an diese IP-Adresse senden, die so verschlüsselt sind, dass sie an eine der gängigsten privaten Adressen (z. B. 192.168.1.1-80) gehen, und tatsächlich Daten an ein „privates“ Gerät senden?
IPs übertragen Daten normalerweise direkt zu und von den Geräten, die eine Anfrage gestellt haben. Wenn ich also die IP eines Routers kenne und die private IP richtig erraten habe, was hindert mich dann daran, mich in dieses Gerät zu hacken?
Ich gehe davon aus, dass es im Router/NAT eine andere Möglichkeit gibt, Daten an den richtigen Client weiterzuleiten, die nicht nur auf IP basiert, aber ich bin nicht sicher, wie das geht.
Oder liegt es einfach daran, dass Sie auf diese Weise Daten mit böswilliger Absicht senden KÖNNTEN, es aber keinen Vorteil brächte, wenn die gesamte Software ohnehin nichts mit den Daten macht (keine Anfrage sendet).
In den Informationen, die ich finde, geht es normalerweise nur darum, dass durch private IPs insgesamt weniger öffentliche IPs verwendet werden können. Es wird jedoch nie wirklich erwähnt, was den Zugriff Ihrer privaten IP-Clients auf die Außenwelt unterbricht.
Kann mir das jemand erklären?
Antwort1
Ich verstehe nicht, warum das Internet keinen direkten Kontakt zu Ihren Geräten in Ihrem lokalen Netzwerk herstellen konnte.
IPs transportieren Daten normalerweise direkt zu und von den Geräten, die eine Anfrage gestellt haben.
Bedenken Sie, dass das Internet ursprünglich so konzipiert war, dass die Dinge so funktionieren sollten: Das Internet sollte „Ende-zu-Ende“ sein und IP-Adressen sollten im wahrsten Sinne des Wortes global sein, d. h., egal, wo auf der Welt sich eine bestimmte IP-Adresse befindet, ich kann mit ihr kommunizieren und sie kann mit mir kommunizieren.
Das Problem ist, dass uns die IPv4-Adressen ausgegangen sind, sodass Schemata wie NAT verwendet werden mussten.
NAT war nicht die vorgesehene Vorgehensweise und obwohl es als Nebeneffekt Vorteile für die Sicherheit mit sich bringt, unterbricht es das Ende-zu-Ende-Prinzip des Internets und fördert Dienste, die nichts anderes tun, als als Mittelsmänner zu fungieren – gut für die Sicherheit/das Eintreiben von Mieteinnahmen, schlecht für die Freiheit/die Armen.
Ich weiß, dass Router und NATs es allen Ihren Geräten ermöglichen, die gleiche IP für Ihr Netzwerk zu haben
So wird es nur außerhalb Ihres Netzwerks angezeigt.
Hinter Ihrem Netzwerk hat jedes System eine eindeutige IP – aus einem der privaten IP-Bereiche.
NAT verwaltet diese Illusion auf Ihrem Router, sodass Systeme hinter Ihrem Router andere IPs erreichen können und IPs mit Systemen hinter Ihrem Router kommunizieren können, wenn die Ports richtig weitergeleitet werden.
Könnte ich nicht einfach Daten an diese IP-Adresse senden, die so codiert sind, dass sie an einige der gängigsten privaten Adressen (z. B. 192.168.1.1-80) gesendet werden, und tatsächlich Daten an ein "privates" Gerät senden?
Nein.
192.168.1.80 existiert nicht im Internet. Es existiert nur hinter NAT-Routern. Sie müssen zuerst hinter einen NAT-Router gelangen. Die einzige Möglichkeit, dies zu tun, besteht darin, zuerst mit der öffentlichen IP des NAT-Routers zu sprechen.
Tatsächlich – wenn sich die IP 192.168.1.80 und Ihre eigene IP im selben Subnetz befinden, wird der Datenverkehr Ihr Netzwerk nicht einmal verlassen. Ihr System wird versuchen, 192.168.1.80 von der lokalen Netzwerkkarte aus zu erreichen, und wird nicht einmal Ihren Router erreichen.
Wenn ich also die IP-Adresse eines Routers kenne und die private IP richtig erraten habe, was hindert mich dann daran, mich in dieses Gerät zu hacken?
NAT-Router überwachen und verfolgen eingehende Verbindungen.
Wenn eine neue TCP-Verbindung versucht, eine Verbindung zu einem weitergeleiteten Port herzustellen, dann und nur dann werden die Daten an das System hinter dem Router weitergeleitet.
UDP ist verbindungslos, daher wird ein NAT-Router, wenn er seine Aufgabe richtig erfüllt, keinen UDP-Verkehr, den er seit einiger Zeit nicht mehr gesehen hat, an ein dahinterliegendes System weiterleiten. Aufgrund seiner verbindungslosen Natur ist es möglich, NAT-Router mit UDP auszutricksen, aber nur, wenn Sie zuerst das dahinterliegende System dazu bringen können, etwas über diesen Port zu senden und den NAT-Router davon zu überzeugen, dass eingehender Verkehr möglicherweise zurückkommt. Es gibt einige Protokolle, die von so etwas abhängen, wie zum Beispiel STUN.
Antwort2
Nur weil Sie sowohl die öffentliche IP-Adresse des Routers als auch eine interne Adresse kennen, bedeutet dies nicht automatisch, dass die interne Adresse öffentlich adressierbar ist.
Über IP können Sie eine Verbindung zu einer öffentlichen Adresse herstellen. Dies bedeutet jedoch nicht automatisch, dass sich hinter dieser öffentlichen Adresse Adressen verbergen, und es besteht auch keine Möglichkeit zur Datenweiterleitung, selbst wenn dies der Fall wäre.
Die Adresse lautet "gehe zu dieser Maschine und diesem Port", nicht "gehe zu dieser Maschine und diesem Port und gehe dort weiter zu einer anderen Maschine und einem anderen Port und von dort weiter zu diesemandereAdresse und Port"
Stellen Sie sich vor, jemand schickt Ihnen einen Brief. Die Post kümmert sich nicht darumWHOist an der Adresse, nur dass sie den Brief in den richtigen Schlitz werfen. Wenn der Brief durch den Schlitz geht, muss jemand an der Adresse den Brief ansehen und herausfinden, an wen der Brief gehen muss.
Dasselbe passiert in einem Netzwerk, aber NAT lässt „Jim“ nicht als permanente interne Adresse zu. Die Zuordnungen von intern nach extern erfolgen, wenn etwas innerhalb des Netzwerks das Internet kontaktiert und eine Verbindung anfordert. Zu diesem Zeitpunkt wird effektiv ein Postfach „jimTmp12345@PublicIP“ erstellt, das verwendet wird, bis die Verbindung geschlossen wird. Ab diesem Zeitpunkt ist die Adresse ungültig und alles, was an sie adressiert ist, wird auf der lokalen Mülldeponie abgelegt.
Antwort3
Die meisten NAT-Router werden so konfiguriert, dass sie nicht nur als Router, sondern auch als Firewall fungieren.
Betrachten Sie das folgende Netzwerk:
Ohne NAT müssen die Geräte direkt kommunizieren:
192.168.1.2
möchte sprechen mit192.168.0.2
- Die Standardroute ist
192.168.1.1
(Router A) - Router A weiß, dass er über (Router B)
192.168.0.0/24
erreichbar ist198.51.100.2
- Router B ist direkt verbunden
192.168.0.0/24
und liefert das Paket
- Die Standardroute ist
192.168.0.2
möchte antworten auf192.168.1.2
- Die Standardroute ist
192.168.0.1
(Router B) - Router B weiß, dass
192.168.1.0/24
er erreichbar ist über198.51.100.1
- Router A ist direkt verbunden
192.168.1.0/24
und liefert das Paket
- Die Standardroute ist
Mit NAT auf Router A, abernichtRouter B, die Dinge ändern sich leicht:
192.168.1.2
möchte sprechen mit192.168.0.2
- Die Standardroute ist
192.168.1.1
(Router A) - Router A ist konfiguriert für "IP-Maskierung", also schreibt man die Quelladresse um als
192.51.100.1
(ihre externe Schnittstelle) - Router A weiß, dass er über (Router B)
192.168.0.0/24
erreichbar ist198.51.100.2
- Router B ist direkt verbunden
192.168.0.0/24
und liefert das Paket
- Die Standardroute ist
192.168.0.1
möchte antworten auf198.51.100.1
- Die Standardroute ist
192.168.0.1
(Router B) - Router B ist direkt verbunden
198.51.100.0/24
und liefert das Paket - Router A überprüft seine Übersetzungstabelle und schreibt das Ziel neu als
192.168.1.1
- Router A ist direkt verbunden
192.168.1.0/24
und liefert das Paket
- Die Standardroute ist
An diesem Punkt gibt esNichtsum die Verwendung eines Hosts als Router zu verhindern und ihn aufzufordern, ein Paket an ... 192.51.100.1
weiterzuleiten .192.168.1.2
Nichts. Antworten werden wahrscheinlich maskiert, daher könnte die Kommunikation ein wenig "herausfordernd", aber Kommunikation ist Kommunikation.
Erweitern wir dies zu „das Internet" könnte mein " ändernEs gibt nichts, was einen aufhalten könnte..."-Aussage etwas. Ich habe keine Belege, aber es würde mich sehr überraschen, wenn Internet-Router tatsächlich so konfiguriert wären, dass sie Verkehr weiterleiten, der an eine private Netzwerkadresse gerichtet ist. Stattdessen würden sie solche Pakete wahrscheinlich einfach verwerfen. Das Fazit ist, dass ein Versuch im Internet wahrscheinlich nicht funktionieren wird, selbst wenn der Router schlecht konfiguriert wäre.
Darüber hinaus gibt es aufgrund der Funktionsweise des Routings (d. h. wenn sich ein Host nicht im lokalen Netzwerk befindet, zielt die MAC-Adresse auf den Router, während die IP-Adresse auf den endgültigen Host zielt) keine Möglichkeit, ihn 192.51.100.1
als Router zu verwenden, es sei denn, A) Sie sind mit ihm verbunden oder B) vorhandene Routen leiten Ihren Datenverkehr in seine Richtung.
Um zu verhindern, dass andere Hosts sie lediglich 198.51.100.1
als einfache Router verwenden, sind Firewall-Regeln erforderlich.
Ein Ansatz besteht darin, eingehende Pakete an der externen Schnittstelle () von Router A abzulehnen (oder zu löschen), 198.51.100.1
die nicht explizit auf dessen Adresse ausgerichtet sind.
Dies löst auch dasschwaches Wirtsmodelldie Linux implementiert (z. B.: Router B kann mit Router A über seinen eigenen Router kommunizieren).externSchnittstelle, mit der Adresse, die deminternSchnittstelle).
Antwort4
[NAT] leitet die Anfragen an das Web und zurück an den Client, der sie angefordert hat.
richtig, aber zur Klarstellung, wie das funktioniert: NAT sorgt dafür, dass Ihre privaten IP-Adressen wie eine öffentliche IP-Adresse aussehen, normalerweise bevor der Datenverkehr Ihr Netzwerk verlässt. Das Web leitet den Datenverkehr also nicht an Ihre private IP-Adresse zurück. Das Web leitet den Datenverkehr an die öffentliche IP-Adresse zurück, unter der Sie angezeigt werden.
Problem Nummer 1:
Ich denke, wenn Sie verstehen, wie NAT im Detail funktioniert, wird dies einige Ihrer Fragen beantworten können. Die typischste Implementierung, die ich gesehen habe, ist NAPT („Network Address Port“-basierte Übersetzung). Wenn Sie Daten von einer privaten Adresse senden, nimmt der Router diese private Adresse und fügt diese Informationen einem Diagramm/einer Tabelle im Speicher des Routers hinzu. Der Router wählt auch eine TCP- oder UDP-Portnummer (wahrscheinlich eher zufällig ausgewählt) und verfolgt diese in demselben Diagramm/dieser Tabelle. Der Router sendet die Informationen dann unter Verwendung der öffentlichen IP-Adresse an das Internet und identifiziert die „Quellport“-Nummer als die von ihm gewählte Nummer. (Sowohl TCP als auch UDP verwenden zwei Portnummern: eine „Quell“-Nummer und eine „Ziel“-Nummer.) Wenn das Ziel (z. B. ein Webserver, der auf TCP-Port 443 lauscht) bemerkt, dass der Datenverkehr zu TCP-Port 443 geht und von einem anderen TCP-Port (z. B. TCP-Port 53874) kommt, kann dieser Server antworten, indem er den Datenverkehr an die öffentliche IP-Adresse des ursprünglichen Routers auf demselben TCP-Port (z. B. TCP-Port 53874) zurücksendet. Der Router sucht dann in seiner Tabelle/seinem Diagramm nach Informationen und weiß, an welche private IP-Adresse die Informationen gesendet werden müssen.
Wenn Sie einfach zufällig eine private IP-Adresse auswählen, sollte diese private IP-Adresse nicht in der Tabelle/dem Diagramm des Routers enthalten sein, sodass das nicht funktionieren würde.
Ich gehe davon aus, dass es im Router/NAT eine andere Möglichkeit gibt, Daten an den richtigen Client weiterzuleiten, die nicht nur auf IP basiert, aber ich bin nicht sicher, wie das geht.
NEIN.
Ich meine, nun ja, das gibt es. Es gibt noch ein anderes Routing, das vorkommen kann, und deshalb werde ich das nur kurz ansprechen. Es gibt die Verwendung von 802.1q „VLAN“-Tagging und anderen Technologien, die für einige Daten-/Signalisierungs-Clouds verwendet werden können und die beeinflussen könnten, wie der Datenverkehr letztendlich durch ein Netzwerk läuft. Diese zusätzlichen Routing-Methoden werden jedoch normalerweise aus Gründen der Geschwindigkeit, Sicherheit oder Kompatibilität eingesetzt (hauptsächlich bei Nicht-IP-Netzwerken, wie vielleicht einigen älteren Netzwerken innerhalb einer Telefongesellschaft). Sie müssen nicht wirklich glauben, dass diese fortgeschrittenen Netzwerktechniken auf professionellem Niveau einen neuen und notwendigen Teil des Verständnisses der Funktionsweise des grundlegenden Routings einführen werden, denn einfaches IP-Routing kann verwendet werden, um zu erklären, wonach Sie fragen.
Problem Nr. 2: Die internen Abwehrmechanismen des Routers
Nun tun wir einfach so, als ob der Router kein NAPT ausführt, und ignorieren daher die gesamte Tabelle/das Diagramm, das öffentliche TCP/UDP-Portnummern privaten Adressen zuordnet. Tun wir einfach so, als ob Sie beim ISP des Kunden sitzen und das Paket in böswilliger Absicht über den Router an die privaten IP-Adressen des Kunden senden möchten.
Die meisten Router, die einige sehr grundlegende Firewall-ähnliche Aktionen ausführen, erkennen, dass der eingehende Datenverkehr über den Port mit der Bezeichnung „WAN“ (was für „Wide-Area Network“ steht) eingeht. Um einen gewissen Schutz zu bieten, erkennen die Router, dass der eingehende Datenverkehr über diesen Netzwerkport die öffentliche IP-Adresse des Routers verwenden sollte und auf keinen Fall einen der üblichen „privaten“ IP-Adressbereiche.
Daher schützt der Router das Netzwerk, indem er das Paket verwirft.
Problem 3: ISPs schützen uns besser
Der Standard für jeden ISP besteht darin, keinen Datenverkehr zu oder von den privaten IP-Adressbereichen zuzulassen (das sind die Netzwerkadressbereiche, die inIETF RFC 1918 Abschnitt 3für IPv4 oder Adressen, die mit „fd“ beginnen, für IPv6).
Wenn Sie also versuchen, Datenverkehr von Ihrem Zuhause über Ihren ISP und dann über den Rest des Haupt-Internet-Backbones der ISPs, dann über den ISP des Opfers, dann über den Router Ihres Opfers und schließlich an die „private IP“-Adresse Ihrer Wahl zu senden, dann sollte dies fehlschlagen. Dies liegt daran, dass ISPs normalerweise der Konvention folgen, Datenverkehr mit privaten IP-Adressen zu blockieren. (ISPs wären verrückt, wenn sie dies nicht täten.)
Im obigen Szenario wird der Schutz nicht vom ISP des Zielopfers bereitgestellt. Zugegeben, der ISP des Zielopfers ist wahrscheinlich so eingerichtet, dass er die Pakete verwirft und so den Router des Zielopfers schützt. Ihr ISP wird die Pakete jedoch wahrscheinlich auch verwerfen, sodass die Pakete den ISP des Zielopfers nicht einmal erreichen.
Problem 4: ISP-Motivation
Warum wären ISPs verrückt und würden Datenverkehr mit privaten IPs zulassen?
Bedenken Sie, dass alle Organisationen private IP-Adressen für ihre eigenen internen Netzwerke verwenden dürfen. Das gilt auch für ISPs. Ihr ISP verwendet möglicherweise private Adressen für einige seiner lokalen Geräte. Sie sollten nicht feststellen können, ob er das tut oder nicht.
Die Art und Weise, wie ISPs den Datenverkehr weiterleiten, besteht darin, dass sie sich auf „Routing-Tabellen“ verlassen, die bestimmen, wohin der Datenverkehr als nächstes gehen soll. Diese „Routing-Tabellen“ geben nicht an, welcher andere ISP Datenverkehr mit einer privaten Adresse als Ziel gerne empfängt. Der ISP kann den Datenverkehr nirgendwohin senden, außer möglicherweise an einige seiner eigenen internen Geräte. Da ein Großteil des Datenverkehrs mit privaten IP-Adressen wahrscheinlich bösartig oder anderweitig problematisch ist (möglicherweise handelt es sich um Datenverkehr von einem falsch eingerichteten Gerät), möchte der ISP sicherlich nicht, dass dieser Datenverkehr an seine eigenen internen Geräte gesendet wird (und möglicherweise Probleme für den ISP verursacht). Daher möchte der ISP Pakete blockieren, die an eine private Adresse gehen.sofort, bevor der Datenverkehr weiter durch das Netzwerk des ISPs zugelassen wird.
Würde ein ISP diese Regeln brechen, würde er wahrscheinlich bösartigen Datenverkehr einladen, der vermutlich keinerlei Auswirkungen hätte (außer der Nutzung von Bandbreite); wenn es jedoch Auswirkungen gäbe, wären diese wahrscheinlich schlecht für den ISP.
Problem 5: Was würde wirklich passieren
Bisher habe ich erklärt, warum das Internet den Datenverkehr blockieren wird. Aber schauen wir uns an, was wirklich passieren wird.
Was passiert, wenn Sie an Ihrem Computer sitzen und beschließen, ein bösartiges Paket an eine private IP-Adresse zu senden?
Wenn der Datenverkehr bis zu Ihrem lokalen ISP gelangen würde, würde dieser den Datenverkehr, wie bereits erläutert, sofort blockieren.
Es ist jedoch sehr wahrscheinlich, dass der Datenverkehr nicht bis zu Ihrem lokalen ISP gelangt. Stattdessen entscheidet Ihr lokaler Router, was mit dem Datenverkehr zu tun ist.
Wenn Sie selbst nicht dieselbe „private“ IP-Adresse verwenden, weiß Ihr eigener Router wahrscheinlich nicht, was er mit dem Datenverkehr tun soll, und der Datenverkehr wird verworfen.
Andernfalls, wenn Sie selbst dieselbe „private IP“-Adresse verwenden, greifen Sie wahrscheinlich ein Gerät in dem Netzwerk an, in dem Sie sich befinden. Wenn Sie der Administrator dieses Netzwerks sind, greifen Sie Ihr eigenes Netzwerk an!
In jedem Fall ist es unwahrscheinlich, dass Ihr Router (bei Verwendung gängiger Standardkonfigurationen) den Datenverkehr über das Internet weiterleitet.
Rezension:
Bei all diesen Problemen geht es darum, warum das Internet Ihren Angriff auf eine private IP-Adresse nicht zulässt. Wenn Sie sich tatsächlich im selben lokalen Netzwerk wie Ihr Ziel befinden, müssen Sie möglicherweise nicht einmal einen Router verwenden, sodass Ihnen keine dieser Abwehrmaßnahmen im Weg steht. Wenn Sie sich jedoch an einem anderen Ort im Internet befinden, werden diese Abwehrmaßnahmen einem solchen Angriffsversuch wahrscheinlich im Weg stehen.
Obwohl Sie mit (zumindest einigen) Routertypen, die Sie möglicherweise kontrollieren, gegen bestimmte Standardregeln verstoßen können, blockieren wahrscheinlich auch andere Organisationen private IP-Adressen und verhindern so wirksam Angriffe auf Remote-Systeme.