GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Localhost-TCP/IP-Kommunikation in einem Programm verwenden - immer sicher?

  • Verkehr zu 127.0.0.0/8 und bis ::1/128 wird intern vom TCP/IP-Stack verarbeitet. Es erreicht die physische Netzwerkkarte nicht und verlässt den Computer nie, sodass es nicht von Unternehmens-Firewalls blockiert werden kann.

  • Da Loopback-Sockets für IPC sehr verbreitet sind, sollten gute Firewalls diese niemals blockieren. (Die Windows-Firewall tut dies nicht.) Es gibt jedoch einige übermäßig paranoide ... In solchen Fällen würde ich jedoch der Firewall die Schuld geben, nicht Ihrer Software.

  • Unter Unix ist es möglich, (versehentlich) die Loopback-Schnittstelle (normalerweise lo ). Auch dies ist höchst ungewöhnlich.

  • Anstelle eines fest codierten Ports socketpair() sollte gegebenenfalls verwendet werden, um Portkollisionen zu vermeiden.

  • Noch besser wäre es, Unix-Sockets unter Linux und Named Pipes unter Windows zu verwenden.


Alle diese Betriebssysteme unterstützen das Ausführen von Firewall-Software. Diese könnten Localhost-Verbindungen blockieren, obwohl das (meiner Erfahrung nach) nicht sehr üblich ist.

Es gibt viele Anwendungen/Dienste, die dies tun. Versuchen Sie einfach, netstat -an auszuführen auf Ihrer Box:Wahrscheinlich werden Sie einige Anwendungen mit Open Listening Sockets auf 127.0.0.1 sehen .

Ich kenne keine Benutzereinstellungen, die verhindern könnten, dass dies unter Linux funktioniert. Keine Ahnung für Windows. Aber auch dies ist eine gängige Technik.


Linux
  1. Kommunikation zwischen Prozessen in Linux:Sockets und Signale

  2. Ist die Verwendung von Rsync während der Aktualisierung der Quelle sicher?

  3. Sicherer Neustart von Linux mit Magic SysRq Key

  4. Wie man ein C-Programm mit gdb in 6 einfachen Schritten debuggt

  5. TCP/IP-Angriffe – ARP-Cache-Poisoning-Grundlagen erklärt

So verfolgen Sie die Programmausführung mit dem Linux-Strace-Befehl

So kompilieren Sie C, C++ und Java mit Terminal unter Linux

So verbinden Sie NGINX mit PHP-FPM über UNIX oder TCP/IP Socket

Grundlagen des TCP/IP-Protokolls anhand eines Diagramms erklärt

Unix-Socket vs. TCP/IP-Host:Port

Kann keine Verbindung zu MySQL mit „localhost“ herstellen, aber mit „127.0.0.1“ ist es in Ordnung?