05 - Atribuição de Portas
video: https://youtu.be/... no frontmatter da nota.Atribuição de Portas (IANA)
A Atribuição de Portas na Camada de Aplicação é o sistema de governança de endereçamento lógico que mantém a ordem técnica na Internet mundial. Gerenciado pela IANA (Internet Assigned Numbers Authority), atualmente operada pela ICANN, seguindo as diretrizes da RFC 6335 (Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry), este modelo utiliza um cabeçalho de 16 bits para definir um espectro finito de 65.535 portas lógicas de comunicação. De uma correta atribuição de portas depende a interoperabilidade de softwares de milhares de fabricantes e a segurança administrativa e soberana de infraestruturas críticas que processam os dados da empresa.
1. A Hierarquia Global da IANA: Três Pilares de Endereçamento
A escala de portas de 16 bits não é um bloco único e desordenado, mas um sistema hierárquico dividido em três categorias estratégicas:
Portas Bem Conhecidas (Well-Known Ports: 0 a 1023)
São os endereços permanentes e rigorosamente padronizados para os serviços de infraestrutura e protocolos essenciais do sistema operacional.
- Lógica de Autoridade: Elas exigem privilégios de root (UID 0) para serem ativadas no Linux/Unix. No Windows, exigem privilégio de Administrador.
- Exemplos mandatórios: SSH (22), DNS (53), DHCP (67/68), HTTP (80), POP3 (110), NTP (123), IMAP (143), HTTPS (443), SMTPS (465), LDAPS (636), IMAPS (993), POP3S (995).
- Garantia de Interoperabilidade: Esta categoria garante que um cliente em qualquer lugar do mundo saiba onde "bater" para encontrar o serviço padrão, sem erros de interpretação de soquete.
Portas Registradas (Registered Ports: 1024 a 49151)
Este intervalo é utilizado por empresas de tecnologia para seus softwares comerciais e aplicativos específicos.
- Especialização de Serviço: Fabricantes de bancos de dados como Oracle (1521), MySQL/MariaDB (3306) ou PostgreSQL (5432) registram estas portas para evitar colisões com outros softwares.
- Não exigem root: Estes serviços podem ser iniciados por usuários comuns (não-root), aumentando o isolamento de segurança da infraestrutura de dados da empresa.
- Exemplos: RDP (3389), Squid (3128), PostgreSQL (5432), VNC (5900), X11 (6000-6063), Redis (6379), HTTP Alternate (8080), Memcached (11211).
Portas Dinâmicas ou Efêmeras (Ephemeral Ports: 49152 a 65535)
Diferente das anteriores, estas nunca hospedam serviços fixos.
- Identidade Temporária: São alocadas aleatoriamente pelo Kernel quando um cliente (como o navegador de um gerente de TI) inicia uma conexão de saída para um servidor remoto. Elas são a "chave de volta" efêmera para que o servidor responda exatamente ao processo correto na rede local administrativa.
- Variável por SO: O intervalo efêmero padrão varia conforme o sistema operacional (tabela abaixo).
2. Faixas Efêmeras por Sistema Operacional
| Sistema Operacional | Faixa Efêmera Padrão | Configurável via |
|---|---|---|
| Linux (kernel 3.2+) | 32768 a 60999 | /proc/sys/net/ipv4/ip_local_port_range |
| Windows 10/11/Server | 49152 a 65535 | netsh int ipv4 set dynamicport tcp |
| macOS | 49152 a 65535 | sysctl net.inet.ip.portrange |
| FreeBSD | 10000 a 65535 | /etc/sysctl.conf |
| Solaris/AIX | 32768 a 65535 | ndd -set /dev/tcp tcp_smallest_nonpriv_port |
# Linux - Verificando faixa efemera atual
cat /proc/sys/net/ipv4/ip_local_port_range
# Saida tipica: 32768 60999
# Aumentando faixa (requer reboot ou sysctl)
sudo sysctl -w net.ipv4.ip_local_port_range="10000 65535"
echo "net.ipv4.ip_local_port_range = 10000 65535" | sudo tee -a /etc/sysctl.conf
# Windows - Verificando faixa efemera
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
3. Formato do Arquivo /etc/services
O arquivo /etc/services (POSIX) mapeia nomes de serviços a portas/protocolos. É a fonte de verdade usada por getservbyname() (libc).
# Exemplos do arquivo /etc/services
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # SSH Remote Login Protocol
domain 53/tcp # Domain Name Server
domain 53/udp
http 80/tcp www # World Wide Web
https 443/tcp # HTTP over TLS/SSL
mysql 3306/tcp # MySQL
postgresql 5432/tcp postgres # PostgreSQL Database
# Consultando porta por nome de servico
getservent | grep -E "(ssh|http|sql)"
# Convertendo nome em porta via Python
python3 -c "import socket; print(socket.getservbyname('https', 'tcp'))"
# Saida: 443
4. Gestão de Sockets e Atribuição em Escala Corporativa
Em datacenters modernos e ambientes de nuvem, a atribuição de portas é um recurso administrativo que exige monitoramento contínuo:
Prevenção de Colisão e Address Conflict
O sistema operacional impede que dois processos realizem o bind (vinculação) no mesmo IP e na mesma porta simultaneamente. Se um administrador tentar subir dois processos de banco de dados na porta 3306 e no IP da interface principal, o segundo falhará com erro fatal de sistema Address Already in Use (errno EADDRINUSE, valor 98 no Linux).
# Verificando quem ocupa uma porta especifica
sudo ss -tulpn | grep :3306
sudo lsof -iTCP:3306 -sTCP:LISTEN
sudo fuser -v -n tcp 3306
# Solving: SO_REUSEADDR (em C)
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
# Permite rebind imediato apos servidor reiniciar (TIME_WAIT)
Redundância e IP Aliasing
Uma técnica avançada para maximizar a capacidade do servidor é vincular múltiplos endereços IP (Aliases) a uma única placa de rede física. Isto permite que a empresa rode, por exemplo, dez instâncias independentes de um servidor web, cada uma escutando na porta HTTPS 443, desde que cada uma esteja vinculada a um IP lógico diferente, mantendo a soberania dos dados isolada.
5. Perspectiva de Cyber Security e Vetores de Abuso Sombrio
Para o analista de segurança, a tabela de atribuição da IANA é o mapa da trilha de auditoria e resposta a incidentes.
Identificação de Backdoors e Canais de Fuga
Atacantes frequentemente instalam malwares ou ferramentas de exfiltração (como o Netcat) que escutam em portas não-identificadas no intervalo de portas Dinâmicas ou Registradas.
- Audit de Integridade: Auditorias profissionais de segurança comparam a lista de portas em estado
LISTENcom a tabela oficial de serviços da empresa. Qualquer socket ativo em portas como a 4444 (comumente usada pelo Metasploit Meterpreter reverse shell) ou portas que não batam com a finalidade do servidor deve disparar um alerta de contenção imediato nas ferramentas de SIEM da organização.
Portas Comumente Maliciosas
| Porta | Vetor |
|---|---|
| 4444 | Meterpreter reverse TCP (Metasploit) |
| 31337 | Back Orifice e backdoors clássicos |
| 6667 | Botnet C&C via IRC |
| 9001 | Tor / reverse shells |
| 8080 / 8443 | Webshells (HTTP alternativo) |
Fadiga de Soquetes (Port Exhaustion Attack)
Ataques de negação de serviço podem tentar exaurir o pool de portas efêmeras. Se um atacante abrir milhares de sessões ociosas (TCP SYN flood completo), o sistema não terá mais números de porta disponíveis para novos usuários legítimos, paralisando a operação administrativa por falta de endereçamento lógico no Kernel.
# Mitigacao no Linux
# Aumentar faixa efemera
sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
# Reduzir tempo em TIME_WAIT (NAT/firewall)
sudo sysctl -w net.ipv4.tcp_fin_timeout=15
# Reciclar sockets TIME_WAIT mais agressivo
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
6. Auditoria Técnica e Diagnóstico de Atribuição
Dominar o estado da rede física e lógica exige o uso sistemático de ferramentas de inspeção de sockets:
# Verificando a conformidade de todas as portas de escuta e seus proprietarios (PID)
sudo ss -tulpn | sort -n -k 4
# Listando apenas TCP em LISTEN com resolucao de processo
sudo ss -tlnp
# Consultando o arquivo mestre de atribuicoes registrado no sistema operacional
cat /etc/services | grep -E "ssh|http|sql"
# Verificando o intervalo de portas efemeras configurado no Kernel Linux atual
cat /proc/sys/net/ipv4/ip_local_port_range
# Monitorando conexoes de usuario em tempo real (Audit)
sudo lsof -i -P -n | grep -i listen
# Listando conexoes estabelecidas
sudo netstat -tunap | grep ESTABLISHED
# Detectando processos que abriram sockets UDP (mais sutil que TCP)
sudo ss -ulpn
7. Tabela de Portas Essenciais para Memorização
| Porta | Protocolo | Serviço | RFC |
|---|---|---|---|
| 20/21 | TCP | FTP (controle/dados) | RFC 959 |
| 22 | TCP | SSH | RFC 4254 |
| 23 | TCP | Telnet (inseguro) | RFC 854 |
| 25 | TCP | SMTP (MTA-MTA) | RFC 5321 |
| 53 | TCP/UDP | DNS | RFC 1035 |
| 67/68 | UDP | DHCP (server/client) | RFC 2131 |
| 80 | TCP | HTTP | RFC 9112 |
| 110 | TCP | POP3 | RFC 1939 |
| 123 | UDP | NTP | RFC 5905 |
| 143 | TCP | IMAP | RFC 9051 |
| 161/162 | UDP | SNMP / SNMP Trap | RFC 3416 |
| 389 | TCP/UDP | LDAP | RFC 4511 |
| 443 | TCP | HTTPS (HTTP/TLS) | RFC 9112 |
| 465 | TCP | SMTPS (SMTP implicit TLS) | RFC 8314 |
| 587 | TCP | SMTP Submission (MUA-MSA) | RFC 6409 |
| 993 | TCP | IMAPS (IMAP over TLS) | RFC 8314 |
| 995 | TCP | POP3S (POP3 over TLS) | RFC 8314 |
8. Conclusão: O Código de Ordem Digital
A Atribuição de Portas é o selo de governança soberana que sustenta a era da informação. De uma correta gestão dos intervalos da IANA e de um monitoramento rigoroso contra soquetes não autorizados em portas administrativas depende a resiliência e a privacidade de toda a rede corporativa. Dominar a escala de 16 bits, entender as categorias Well-Known, Registered e Ephemeral, conhecer as faixas específicas por sistema operacional e proteger as portas registradas garante que a rede administrativa permaneça rápida, soberana e inalcançável por adversários no cenário estratégico da web globalizada. Para o engenheiro de redes, a tabela de portas é a planta baixa da infraestrutura; para o analista de segurança, é o mapa de detecção de intrusão.