Warum kann ich SSH nicht von meiner öffentlichen IP-Adresse aus erreichen, aber zufällige Hacker-Bots können dies?

335
Alexandre Cariage

Ich habe einen Raspberry Pi3 mit Raspbian Stretch, der sich hinter einem Heimrouter befindet.

/var/log/auth.log im RPi zeigt durchgängig fehlgeschlagene Anmeldeversuche mit generischen Benutzernamen (root, operator, webmaster usw.) an zufälligen Ports mit hohen Nummern und etwa alle 10 Sekunden von einer chinesischen Adresse aus. Ich weiß, das ist nicht überraschend.

Was ich nicht verstehe ist, warum PuTTY nicht denselben Server erreichen kann, wenn ich versuche, über meine öffentliche IP-Adresse Kontakt mit ihm aufzunehmen?

Ich bin auf diesem Gebiet ein Neuling, aber mit meinem Wissen ist dies ein vollkommenes Paradoxon.

Einige zusätzliche technische Hinweise:

  • iptables bleibt unberührt

  • nmap auf meine öffentliche IP-Adresse gibt an, dass "alle 1000 gescannten Ports gefiltert werden"

  • Ein funktionaler LAMP-Server hostet eine Owncloud, die funktioniert, aber nur von LAN aus, da alle Versuche, meine öffentliche IP-Adresse zu kontaktieren, fehlschlagen.
  • Meine Verbindungsversuche zu meiner öffentlichen IP-Adresse erfolgen aus demselben LAN wie die RPIs.
  • Port 22 wird zum RPi im Router umgeleitet, und die Firewall des Routers ist für die vorliegenden Tests vollständig deaktiviert.
  • Im Router ist mein RPi so eingestellt, dass es sich in der DMZ befindet. Afaik, die Ergebnisse sind bei dieser Einstellung gleich.

Wo werden meine Pakete abgelegt und warum?

Wo könnte ich nach dem Protokoll suchen, das mich anzeigen würde?

Danke im Voraus

0
Vielen Dank, dass Sie darauf hingewiesen haben. Ich werde das Duplikat überprüfen und den Beitrag kommentieren oder auflösen. Alexandre Cariage vor 6 Jahren 0
Versuchen Sie, den gesamten Portbereich von außerhalb Ihres Netzwerks zu steuern. (Wie bei einem Freund zu Hause). Ich glaube, das Problem, das Sie beschreiben, heißt "NAT-Hairpinning". Tim_Stewart vor 6 Jahren 0

1 Antwort auf die Frage

2
Appleoddity

Dies ist ein häufiges Problem, das durch die Unfähigkeit zur Durchführung einer Hairpin-NAT verursacht wird. Die meisten billigen Heimrouter erledigen dies einfach durch Aktivieren der Port-Weiterleitung. Router der oberen Preisklasse benötigen jedoch separate Regeln, um das Problem zu beheben.

Ihre regulären NAT-Regeln funktionieren nur von außerhalb Ihres Netzwerks. Wenn Sie versuchen, von Ihrem Netzwerk aus eine Verbindung herzustellen, liegt ein NAT-Problem vor.

Bedenken Sie...

  • Sie haben Server Ain Ihrem lokalen Netzwerk mit IP 10.10.10.10.
  • Sie haben Computer Ain Ihrem lokalen Netzwerk mit IP 10.10.10.20.
  • Du hast Router Amit einer LANIP von 10.10.10.1und einer WANIP von 11.11.11.11.
  • Sie haben Computer Baußerhalb Ihres Netzwerks IP 12.12.12.12.
  • Sie haben port 22von Ihrem WAN IP an weitergeleitet Server A.

Von außerhalb Ihres Netzwerks sieht der Datenverkehr folgendermaßen aus:

Computer B versucht, eine Verbindung zu Server A herzustellen:

Source IP: 12.12.12.12 Src Port: 12345 Destination IP: 11.11.11.11 Dest Port: 22 

Router A NATs das Paket und schickt es an Server A weiter:

Source IP: 12.12.12.12 Src Port: 12345 Destination IP: 10.10.10.10 Dest Port: 22 

Server A antwortet auf Computer B:

Source IP: 10.10.10.10 Src Port: 22 Destination IP: 12.12.12.12 Dest Port: 12345 

Router A NATs das Paket und schickt es an Computer B:

Source IP: 11.11.11.11 Src Port: 22 Destination IP: 12.12.12.12 Dest Port: 12345 

Alles funktioniert wie beabsichtigt. Stellen Sie sich nun das gleiche Szenario vor, jedoch aus Ihrem Netzwerk heraus:

Computer A versucht, eine Verbindung zu Server A herzustellen:

Source IP: 10.10.10.20 Src Port: 12345 Destination IP: 11.11.11.11 Dest Port: 22 

Router A NATs das Paket und schickt es an Server A weiter:

Source IP: 10.10.10.20 Src Port: 12345 Destination IP: 10.10.10.10 Dest Port: 22 

Server A antwortet auf Computer A:

Source IP: 10.10.10.10 Src Port: 22 Destination IP: 10.10.10.20 Dest Port: 12345 

Die Quell-IP befindet sich in demselben Subnetz wie die Ziel-IP. Server Asendet das Paket nicht zurück an den Router, es sendet es direkt an Computer A. Computer Alegt das Paket ab, weil es von kam 10.10.10.10und das Originalpaket an gesendet hat 11.11.11.11. Es erwartet, dass das Paket zurückkommt 11.11.11.11.

Um das Problem zu beheben, müssen Sie eine zweite, spezifischere NAT-Regel erstellen, die mit dem Datenverkehr in Ihrem Netzwerk übereinstimmt. Es kommt nach Ihrer ursprünglichen NAT-Regel. Sie müssen ein Quell-NAT machen, das folgendermaßen aussieht:

srcnat src-address=10.10.10.0/24 dst-address=10.10.10.10 dst-port=22 out-interface=LAN action=masquerade 

Nun wollen wir uns das noch einmal ansehen:

Computer A versucht, eine Verbindung zu Server A herzustellen:

Source IP: 10.10.10.20 Src Port: 12345 Destination IP: 11.11.11.11 Dest Port: 22 

Router A NATs das Paket und schickt es an Server A weiter:

Source IP: 10.10.10.1 Src Port: 12345 Destination IP: 10.10.10.10 Dest Port: 22 

Server A antwortet auf Computer A:

Source IP: 10.10.10.10 Src Port: 22 Destination IP: 10.10.10.1 Dest Port: 12345 

Router A NATs das Paket und schickt es an Computer A:

Source IP: 11.11.11.11 Src Port: 22 Destination IP: 10.10.10.20 Dest Port: 12345 

Alles funktioniert wie beabsichtigt.

Wie Sie diese zweite NAT-Regel implementieren, hängt von der Hardware und Software Ihres Routers ab. Ihre Laufleistung kann variieren.

"häufiges Problem durch Haarnadel-NAT" - Was genau ist "Haarnadel-NAT"? Ich dachte, es wäre eine * Lösung *, du sagst es ist eine Ursache. Bitte richten Sie meine Zweifel an. Mir fehlt das Wissen, um sicher zu sein, dass Ihre Antwort technisch richtig ist. Trotzdem denke ich, dass es von Vorteil wäre zu erwähnen, dass einige Heimrouter standardmäßig die richtige Lösung implementieren. Sie müssen lediglich eine Portweiterleitungsregel wie bei einer Webschnittstelle des Routers definieren. Offensichtlich gehört der Router des OP nicht dazu. Kamil Maciorowski vor 6 Jahren 0
@KamilMaciorowski NAT-Hairpinning (auch NAT-Loopback genannt) ist das, was Sie versuchen - einen Port nach vorne aus dem privaten Netzwerk an einen anderen Computer im privaten Netzwerk weiterzuleiten. Das Problem ist, dass nicht alle Router dies unterstützen. Je nach Router können Sie ihn möglicherweise aktivieren, oder Sie müssen zu einem Router wechseln, der ihn unterstützt. Gordon Davisson vor 6 Jahren 2
Es ist ein dummes Problem. Verwenden Sie entweder die lokale IP-Adresse, mit der Sie kommunizieren möchten, oder richten Sie einen DNS-Datensatz auf dem Host-Computer ein, der intern auf die IP-Adresse verweist, an die Sie weitergeleitet werden sollen. Das ist schon ganz nach BTW. Tim_Stewart vor 6 Jahren 0
Danke an @Appleoddity für die klare Erklärung, die mich verstehen ließ, was paketweise geschieht! Aber für die NAT-Regel weiß ich nicht, wie ich sie in meinem Router einstellen werde (ich kann mich nicht über Telnet anmelden), also benutze ich die DNS-Record-Lösung von Tim_Stewart, danke Tim. Alexandre Cariage vor 6 Jahren 0