Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

05 - Identificação e Portas

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Identificação e Portas

Para que a comunicação de rede funcione, não basta apenas saber o endereço IP de um computador. Em um único servidor (como o 10.0.0.1), podem estar rodando simultaneamente um servidor web, um servidor de e-mail e um servidor de banco de dados.

A Identificação e Portas é o mecanismo da camada de transporte (usado pela camada de aplicação) que permite o direcionamento correto de cada dado para o processo (software) correspondente.

1. O Conceito de Porta Lógica

Uma Porta é um número de 16 bits (variando de 0 a 65535) que serve como um identificador lógico para um serviço ou processo de rede.

  • Analogia: Se o endereço IP é o número do prédio, a porta é o número do apartamento.
  • Socket: A combinação de um endereço IP + um número de porta é chamada de Socket (ex: 192.168.1.10:80). É através do socket que a aplicação "escreve" e "lê" dados da rede.
  • Capacidade teórica: 65.536 portas por protocolo (TCP e UDP têm espaços independentes).

2. Categorias de Portas (IANA)

A IANA (Internet Assigned Numbers Authority) divide as portas em três faixas, conforme RFC 6335:

Faixa de Portas Nome Descrição
0 a 1023 Bem-Conhecidas (Well-Known / System) Reservadas para serviços universais (HTTP, SSH, DNS). Em sistemas Unix, exigem privilégios de root para serem abertas.
1024 a 49151 Registradas (User) Usadas por aplicações específicas de fabricantes (MySQL 3306, RDP 3389, PostgreSQL 5432).
49152 a 65535 Dinâmicas / Efêmeras (Private) Usadas temporariamente por clientes para iniciar uma conexão e receber a resposta do servidor.

2.1 Portas Mais Conhecidas

Porta Protocolo Serviço
20 / 21 TCP FTP (controle e dados)
22 TCP SSH
23 TCP Telnet
25 TCP SMTP
53 TCP/UDP DNS
67 / 68 UDP DHCP (server / client)
80 TCP HTTP
110 TCP POP3
123 UDP NTP
143 TCP IMAP
161 / 162 UDP SNMP / SNMP Trap
389 / 636 TCP LDAP / LDAPS
443 TCP HTTPS
445 TCP SMB
3306 TCP MySQL
3389 TCP RDP
5432 TCP PostgreSQL
5900 TCP VNC

3. Multiplexação e Demultiplexação

  • Multiplexação: A capacidade do computador de enviar dados de diferentes aplicações (Navegador, Skype, Spotify) através de uma única conexão física (placa de rede). A pilha TCP/IP agrega segmentos de múltiplos sockets no mesmo fluxo IP.
  • Demultiplexação: A capacidade de receber dados da rede e entregá-los exatamente à aplicação correta, baseando-se no número da porta de destino contido no cabeçalho TCP ou UDP. O SO consulta uma tabela interna para encontrar o socket dono da porta.

3.1 Mecanismo Interno do SO

Quando um segmento chega via placa de rede:

  1. O SO lê o cabeçalho IP para descobrir o protocolo (TCP=6, UDP=17).
  2. Lê o cabeçalho TCP/UDP e extrai a porta de destino.
  3. Consulta a tabela de sockets ativos (no Linux, em /proc/net/tcp e /proc/net/udp).
  4. Entrega o payload ao processo dono daquele socket (via recv() ou read()).

Se nenhuma aplicação estiver escutando na porta, o SO responde com:
- TCP: flag RST (reset) — visível em scanners como nmap -sS.
- UDP: mensagem ICMP Port Unreachable (tipo 3, código 3).

4. Portas Efêmeras e o Lado Cliente

Toda conexão TCP tem duas pontas: servidor (porta fixa, bem-conhecida) e cliente (porta efêmera, escolhida dinamicamente pelo SO). A faixa exata varia por sistema:

Sistema Operacional Faixa Efêmera Padrão
Linux (kernel 4.x+) 32768–60999
Windows 10/11 49152–65535
macOS 49152–65535
FreeBSD 49152–65535

Em Linux, pode ser ajustada via sysctl:

cat /proc/sys/net/ipv4/ip_local_port_range
echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range

5. Sockets e a 4-Tupla

Uma conexão TCP é identificada univocamente pela combinação de quatro valores (4-tupla):

(IP origem, Porta origem, IP destino, Porta destino)

Isso significa que um servidor na porta 80 pode manter milhares de conexões simultâneas, cada uma única pela combinação de origem. Em UDP, o conceito é semelhante, mas sem estado de conexão.

6. Comandos Práticos de Inspeção

# Ver todas as conexões TCP e UDP ativas (Linux)
ss -tunlp

# Equivalente legado
netstat -tunlp

# Descobrir qual processo escuta em uma porta
sudo lsof -i :443

# Scanner de portas (auditoria)
nmap -sS -p 1-1000 192.168.1.10

# Detecção de serviço (banner grabbing)
nmap -sV -p 22,80,443 192.168.1.10

7. Segurança e Hardening

  • Princípio do menor privilégio: abrir apenas portas estritamente necessárias; fechar todas as outras no firewall.
  • Portas < 1024 em Unix: exigem root — usar setcap CAP_NET_BIND_SERVICE ou authbind para evitar rodar daemon como root.
  • Tunneling: serviços podem ser ofuscados via SSH tunnel, DNS tunnel ou steganografia — auditoria via ferramentas como ntopng e Zeek.
  • Firewall L4: filtragem por porta é básica; combinar com inspeção L7 (WAF/IDS) para maior eficácia.

8. RFCs de Referência

RFC Título
RFC 768 UDP
RFC 793 TCP
RFC 6335 IANA Port Assignments
RFC 6056 Ephemeral Port Selection (algoritmos)

9. Resumo Técnico

Atributo Valor
Tamanho do campo porta 16 bits
Total de portas por protocolo 65.536
Well-Known 0–1023
Registradas 1024–49151
Dinâmicas 49152–65535
Autoridade IANA

10. Conclusão

Sem portas lógicas, a Internet moderna seria inviável: um único IP não conseguiria hospedar múltiplos serviços simultaneamente. A combinação de IP + porta (socket) é o alicerce da comunicação entre processos remotos, e a divisão canônica das faixas pela IANA garante interoperabilidade entre sistemas. Compreender categorias, faixas efêmeras, mecanismos de demultiplexação e estratégias de inspeção é fundamental para qualquer engenheiro de redes, seja para diagnóstico, segurança ou projeto de arquiteturas distribuídas.


Subtópicos

  • O Estabelecimento da Conexão e Sockets
  • Lista de Portas e Serviços Comuns
  • Segurança e Escaneamento de Portas