05 - Identificação e Portas
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:
- O SO lê o cabeçalho IP para descobrir o protocolo (TCP=6, UDP=17).
- Lê o cabeçalho TCP/UDP e extrai a porta de destino.
- Consulta a tabela de sockets ativos (no Linux, em
/proc/net/tcpe/proc/net/udp). - Entrega o payload ao processo dono daquele socket (via
recv()ouread()).
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_SERVICEouauthbindpara evitar rodar daemon como root. - Tunneling: serviços podem ser ofuscados via SSH tunnel, DNS tunnel ou steganografia — auditoria via ferramentas como
ntopngeZeek. - 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