Um processo arbitrário pode ler dados que chegam de / para uma porta de rede? Como?

1

Por exemplo, o postgres faz o seguinte, conforme mostrado em lsof -i:

COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 29200 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29202 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29203 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29204 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29205 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29206 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152

Primeiro de tudo, é isso mesmo multicast (como posso dizer)? Em caso afirmativo, algum outro aplicativo também pode se conectar à porta UDP e assinar os dados que passam pela porta? Eu sou novo em redes e não tenho certeza se isso é possível, mas estou apenas curioso , com segurança em minha mente.

EDIT 30/08/13: Algum processo em qualquer parte da rede ou da mesma máquina pode observar os dados entrando e saindo de uma porta (por exemplo, 53152 no caso acima) e com quais privilégios? Como?

    
por trusktr 19.08.2013 / 12:13

2 respostas

3

O fato de dizer que localhost.localdomain se conecta a localhost.localdomain significa que isso não pode ser multicast. Aqui está uma descrição do multicast no IPv6: link

Seria mais fácil ajudá-lo se você descrever o que está tentando alcançar. Você quer usar multicast, em caso afirmativo, para o que exatamente? Ou o seu objetivo é garantir que não seja multicast?

    
por 19.08.2013 / 12:38
2

can some other app also connect to the UDP port and subscribe to the data passing through the port?

Os números das portas são únicos - por ex. você não pode ter mais de um processo para abrir uma porta específica para escutar. No entanto, não há tal limite para o número de conexões que podem ser feitas para a porta. Cabe ao único processo controlar a porta para aceitar tais conexões.

Então, em certo sentido, há apenas um único fluxo de dados, mas ele pode ser composto de várias conexões, e somente o processo que controla a porta vê tudo isso. No entanto, as portas são apenas endereços usados para rotear (essencialmente: classificar) o fluxo de informações: elas não são realmente seguras e privadas. A natureza da rede é tal que, de fato, todo o tráfego em uma rede (incluindo o "loopback local") é visível para todas as máquinas naquela rede (embora para loopback , existe apenas uma, a máquina local) e, pelo menos no * nix, existem meios pelos quais um processo com os privilégios certos pode observar tudo disso. No entanto, isso não é usado como uma técnica de comunicação, já que um observador, nesse sentido, não é um participante (não envolve a conexão com nada).

    
por 19.08.2013 / 15:37