GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo della comunicazione TCP/IP localhost in un programma:sempre sicuro?

  • Traffico verso 127.0.0.0/8 e a ::1/128 viene elaborato internamente dallo stack TCP/IP. Non raggiunge la scheda di rete fisica e non lascia mai il computer, quindi non può essere bloccato dai firewall aziendali.

  • Poiché i socket di loopback sono molto comuni per IPC, i buoni firewall non dovrebbero mai bloccarli. (Windows Firewall no.) Tuttavia, ce ne sono alcuni eccessivamente paranoici... In questi casi, però, darei la colpa al firewall, non al tuo software.

  • Su Unix, è possibile (accidentalmente) disattivare l'interfaccia di loopback (di solito lo ). Ancora una volta, questo è molto insolito.

  • Invece di una porta hardcoded, socketpair() dovrebbe essere utilizzato quando applicabile, per evitare collisioni tra le porte.

  • Ancora meglio sarebbe usare i socket Unix su Linux e le named pipe su Windows.


Tutti questi sistemi operativi supportano l'esecuzione di software firewall. Questi potrebbero bloccare le connessioni localhost, anche se non è molto comune (secondo la mia esperienza).

Ci sono molte applicazioni/servizi che lo fanno. Prova a eseguire netstat -an sulla tua scatola:è probabile che vedrai parecchie applicazioni con prese di ascolto aperte su 127.0.0.1 .

Non conosco le impostazioni utente che potrebbero impedire a questo di funzionare su Linux. Nessuna idea per Windows. Ma ancora una volta, questa è una tecnica comune.


Linux
  1. Comunicazione tra processi in Linux:socket e segnali

  2. Proxy TCP tramite socat

  3. L'uso di Rsync durante l'aggiornamento della sorgente è sicuro?

  4. L'uso di Tar mentre la directory di origine viene aggiornata è sicuro?

  5. Come creare file Proc Linux nel programma C usando LKM

Come tracciare l'esecuzione del programma utilizzando il comando Strace di Linux

Come compilare C, C++ e Java utilizzando Terminal su Linux

Come connettere NGINX a PHP-FPM usando UNIX o TCP/IP Socket

Riavvio sicuro di Linux utilizzando Magic SysRq Key

Come eseguire il debug del programma C utilizzando gdb in 6 semplici passaggi

Nozioni di base del protocollo TCP/IP spiegate con un diagramma