GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de la comunicación TCP/IP localhost en un programa:¿siempre seguro?

  • Tráfico a 127.0.0.0/8 y al ::1/128 es procesado internamente por la pila TCP/IP. No llega a la tarjeta de red física y nunca sale de la computadora, por lo que los firewalls corporativos no pueden bloquearlo.

  • Dado que los sockets de loopback son muy comunes para IPC, los buenos firewalls nunca deberían bloquearlos. (Windows Firewall no lo hace). Sin embargo, hay algunos demasiado paranoicos... En tales casos, sin embargo, culparía al firewall, no a su software.

  • En Unix, es posible (accidentalmente) desactivar la interfaz de loopback (generalmente lo ). Nuevamente, esto es muy inusual.

  • En lugar de un puerto codificado, socketpair() debe usarse cuando corresponda, para evitar colisiones en los puertos.

  • Aún mejor sería usar sockets Unix en Linux y canalizaciones con nombre en Windows.


Todos estos sistemas operativos admiten la ejecución de software de firewall. Estos podrían bloquear las conexiones de host local, aunque eso no es muy habitual (según mi experiencia).

Hay muchas aplicaciones/servicios que hacen esto. Intenta ejecutar netstat -an en su caja:es probable que vea bastantes aplicaciones con conectores de escucha abiertos en 127.0.0.1 .

No conozco configuraciones de usuario que puedan evitar que esto funcione en Linux. Ni idea para Windows. Pero de nuevo, esta es una técnica común.


Linux
  1. Proxy TCP usando socat

  2. Cómo crear archivos Proc de Linux en el programa C usando LKM

  3. ¿Cómo obtener la dirección MAC de su máquina usando un programa C?

  4. Usando el signo de arroba (@) en los nombres de usuario de Linux. ¿Es seguro?

  5. Cómo matar una conexión TCP usando la utilidad tcpkill

Cómo rastrear la ejecución del programa usando el comando Strace de Linux

Cómo compilar C, C++ y Java usando Terminal en Linux

Cómo conectar NGINX a PHP-FPM usando UNIX o TCP/IP Socket

Conceptos básicos del protocolo TCP/IP explicados con un diagrama

Unix socket vs host TCP/IP:puerto

¿No se puede conectar a MySQL usando 'localhost' pero usando '127.0.0.1' está bien?