Eu pesquisei e li alguns artigos afirmando que todos os portos estão fechados até que sejam abertos manualmente pelo usuário. Está correto?
Depende do que você vê como "usuário". O usuário geralmente não diz "ei, por favor, abra a porta X". Serviços do sistema (como o CUPS para impressão, porta UDP / TCP 631) abrem uma porta para audição. Outros exemplos incluem um servidor HTTP (porta TCP 80), um servidor DNS (porta UDP 53) e um servidor SMTP (correio) (porta TCP 25).
Até agora só mencionei ports, mas um programa também precisa especificar um endereço para começar a escutar. É importante entender que os programas podem ouvir localmente (endereço IPv4 127.0.0.1
, endereço IPv6 ::1
) ou em um endereço de tal forma que o serviço se torne acessível por outros dispositivos no seu nwtwork (usando seu endereço de rede, por exemplo, 10.0.1.4
). Há também um "endereço curinga" ( 0.0.0.0
para IPv4, ::
para IPv6) que também é acessível remotamente.
As portas estão realmente "fechadas" até que um programa comece a ouvi-lo.
O comando sudo netstat -tulpn
pode ser usado para mostrar programas de escuta TCP / UDP. Em uma instalação de desktop padrão do Ubuntu, isso mostra:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2254/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1346/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 1346/cupsd
udp 0 0 0.0.0.0:59296 0.0.0.0:* 1152/avahi-daemon:
udp 0 0 127.0.0.1:53 0.0.0.0:* 2254/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1684/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1152/avahi-daemon:
udp6 0 0 :::5353 :::* 1152/avahi-daemon:
udp6 0 0 :::53537 :::* 1152/avahi-daemon:
Aqui, você pode ver que o avahi-daemon é acessível pela rede nas portas UDP 59296, 5353 e 53537. As duas últimas são padrão para o avahi-daemon, o primeiro é um endereço aleatório que provavelmente é comunicado usando os outros dois. portas. Esse daemon é usado para "descoberta de rede" e permite que você faça coisas como "compartilhamento de arquivos". Há também um cliente DHCP escutando globalmente na porta UDP 68.
Alguns serviços apenas ouvem localmente e não são acessíveis pela rede. Estes são o serviço de cache do DNS dnsmasq (porta UDP 53) e o serviço de impressão CUPS (TCP 631).
E o que você quer dizer com "ouvir em uma porta" e "uma porta é estabelecida" em termos simples?
Não há noção de um "porto estabelecido", apenas uma "conexão estabelecida". Uma porta que está aberta para escuta é submetida a backup por um programa que está interessado em dados fluindo nessa porta. Essas portas são normalmente estáticas, o HTTP é executado na porta TCP 80, o DNS na porta UDP 53. Esses padrões permitem que outros dispositivos de rede encontrem seu serviço rapidamente.
Uma conexão TCP é estabelecida quando os dois dispositivos de rede concordam que desejam conversar entre si.