Usando a comunicação TCP / IP do host local em um programa - sempre seguro?

4

Eu tenho um aplicativo que é separado para várias partes (processos) se comunicando por TCP / IP, usando uma porta predefinida no host local.

Isso é sempre seguro? Pode algum tipo de firewall (corporativo, instalado localmente, firewall do Windows, etc) bloquear esse tráfego? Ou algumas configurações do usuário no sistema operacional podem bloquear esse tráfego?

Os sistemas operacionais que me interessam são Windows (XP a 7) e Linux (Ubuntu, RHEL, SUSE)

    
por Eli Bendersky 27.03.2011 / 16:24

2 respostas

7
  • O tráfego para 127.0.0.0/8 e ::1/128 é processado internamente pela pilha TCP / IP. Ele não alcança a placa de rede física e nunca sai do computador, por isso não pode ser bloqueado por firewalls corporativos.

  • Como soquetes de loopback são muito comuns para IPC, bons firewalls nunca devem bloqueá-lo. (O Firewall do Windows não funciona.) No entanto, existem alguns excessivamente paranóicos ... Em tais casos, porém, eu culparia o firewall, não o seu software.

  • No Unix, é possível (acidentalmente) derrubar a interface de loopback (geralmente lo ). Mais uma vez, isso é altamente incomum.

  • Em vez de uma porta codificada, socketpair() deve ser usado quando aplicável, para evitar colisões de portas.

  • Melhor ainda seria usar soquetes Unix no Linux e pipes nomeados no Windows.

por 27.03.2011 / 17:18
2

Todos esses SOs suportam o uso de software de firewall. Estes poderiam bloquear conexões localhost, embora isso não seja muito usual (na minha experiência).

Existem muitos aplicativos / serviços que fazem isso. Apenas tente executar netstat -an na sua caixa: é provável que você veja alguns aplicativos com sockets de escuta abertos em 127.0.0.1 .

Eu não sei das configurações do usuário que podem impedir que isso funcione no Linux. Nenhuma ideia para o Windows. Mas, novamente, esta é uma técnica comum.

    
por 27.03.2011 / 17:17