prática
No Windows: netstat -an | find "ESTABLISHED" (veja portas locais)
No roteador: acesse a interface web e veja "NAT table" ou "connections" — quase sempre a porta externa é diferente.
3 stateful timeouts
A tabela trabalha com stateful timeouts, para não esgotar as 65.535 portas disponíveis
No TCP, as marcações FIN ou RST sinalizam o fim da conversa e libertam a porta. No UDP, como não há início ou fim formal, o router usa cronómetros de inatividade (ex: 30 segundos).
4 NAT é uma pseudo-firewall
Se alguém na internet tentar enviar um pacote não solicitado para o nosso IP público, o router descarta-o porque não existe uma entrada correspondente na tabela.
Essa é a grande ilusão de segurança. O NAT protege o tráfego interno, mas é cego ao interno.
Ao clicar num link malicioso, o malware, software malicioso, que se infiltra, danifica ou roubar dados, liga-se ao atacante a partir de dentro. O router vê isto como uma ligação legítima, cria a entrada na Tabela NAT e, sem querer, estabelece um túnel direto para o invasor.
É por isso que o NAT não é uma firewall ou barreira de fogo, é apenas um entregador de pacotes.
E há uma polémica académica: o NAT é uma "gambiarra" (solução de recurso) que viola o modelo OSI.
O NAT altera o cabeçalho do pacote IP a meio do caminho. O destinatário pensa que está a falar com o router, quando na verdade está a falar com a VM ou o PC.
Num mundo ideal (sem NAT), o pacote seria como uma carta onde o remetente e o destinatário nunca mudam. Com o NAT, o router funciona como um "agente secreto" que intercepta a carta, apaga o teu nome, escreve o dele e só depois a envia.
Um dispositivo de Camada 3 (router) não deveria mexer no conteúdo da Camada 4 (transporte). Ele tem de abrir o pacote, alterar a porta e recalcular os checksums (somas de verificação), o que é uma heresia teórica, mas uma necessidade prática.
E para quem quer alojar um servidor de jogos ou web em casa? Aí precisamos do Port Forwarding.
Criamos uma regra estática que diz ao router para não descartar o tráfego numa porta específica, mas sim enviá-lo para um IP interno. Podemos até usar mapeamentos assimétricos (ex: porta pública 10.000 para a interna 80) para dificultar varreduras automáticas, embora isto exija que o utilizador especifique a porta no URL.
O IPv6 está a mudar o NAT. Passa a haver endereços públicos suficientes para cada dispositivo no planeta. Isso elimina a necessidade de NAT.
E aí reside o perigo: sem o NAT a bloquear ligações externas por defeito, todos os nossos dispositivos (TVs, câmaras, sensores) ficarão diretamente expostos na internet. Teremos de passar para modelos de Zero Trust (Confiança Zero), onde cada dispositivo tem de se defender sozinho.
O futuro vai dar muito trabalho.
NAT perguntas e respostas
1 Port Forwarding onde ativar no virtualbox
Para ativares o Port Forwarding (Encaminhamento de Portas) no VirtualBox, tens de aceder às configurações de rede da tua Máquina Virtual (VM). Isto é essencial quando usas o modo NAT, pois o VirtualBox funciona como o "router" que isola a VM da tua rede real.
Aqui tens o passo a passo:
Passos para Configurar:
1. Seleciona a VM: Com a máquina virtual desligada (ou ligada, mas é mais seguro desligada), clica nela com o botão direito e escolhe Definições (Settings).
2. Rede: No menu lateral, clica em Rede (Network).
3. Adaptador 1: Garante que o campo "Ligado a:" está definido como NAT.
4. Avançado: Clica na seta para expandir as opções Avançadas.
5. Encaminhamento de Portas: Clica no botão Encaminhamento de Portas (Port Forwarding).
1.1.1 Como preencher a Tabela:
Ao clicares no ícone "+" (Inserir nova regra), verás estas colunas:
· Nome: Dá um nome à regra (ex: SSH ou Web Server).
· Protocolo: Escolhe TCP ou UDP (normalmente é TCP).
· IP do Anfitrião (Host IP): Podes deixar em branco (ou usar 127.0.0.1).
· Porta do Anfitrião (Host Port): A porta que vais usar no teu PC real (ex: 8080).
· IP do Convidado (Guest IP): O IP interno da tua VM (ex: 10.0.2.15).
· Porta do Convidado (Guest Port): A porta onde o serviço está a correr na VM (ex: 80 para web ou 22 para SSH).
1.1.2 Exemplo Prático:
Se queres aceder ao servidor web da tua VM (porta 80) através do teu browser no Windows/Mac, configurarias assim:
· Host Port: 8080
· Guest Port: 80
· Acesso: No teu browser real, escreverias localhost:8080.
Dica importante: Se estiveres a usar o Ubuntu na VM, podes saber o Guest IP abrindo o terminal e escrevendo ip addr(geralmente é o 10.0.2.15 por defeito no VirtualBox).
Queres que te ajude a verificar se a porta já está aberta dentro do sistema da tua Máquina Virtual?
2 para que ativo o port forwarding no virtualbox
quando a VM está em modo NAT e quero aceder a serviços dentro da VM a partir de fora (host ou internet), sem mudar para Bridge, que expõe a VM diretamente
Por que ativar? (razões principais, simples)
No modo NAT, a VM tem acesso à internet (como se estivesse atrás de um router), mas ninguém de fora consegue entrar na VM por padrão (semelhante a um router doméstico com NAT/PAT). O host (teu PC) e a internet veem a VM como "escondida".
No mundo das redes, existe uma diferença entre ser um "moço de recados" e ser um "vizinho". O Host é o "Porteiro", não o "Visitante"
Quando a VM pede algo ao host, o Host não o entrega ao teu browser, mas ao processo do VirtualBox, porque o VirtualBox deixou um aviso: "Se vier algo para a porta X, entrega-me que eu sei de quem é".
O host sabe que o VirtualBox está a consumir largura de banda, mas não vê a VM na rede. Um ping não encontra a VM (10.0.2.15), o PC não consegue "bater à porta" da VM por iniciativa própria. A VM é um inquilino secreto no hotel. O porteiro (VirtualBox) entrega o envelope ao inquilino secreto, mas as outras aplicações do teu PC não sabem que aquele inquilino existe, porque não conseguem ir ao apartamento dele sem passar pelo porteiro.
Em resumo:
O Host funciona como um intermediário (Gateway). Ele vê os dados a passar, mas não reconhece a VM como um dispositivo independente na rede. Para o Host, a VM é apenas "tráfego de uma aplicação".
O Port forwarding cria uma "porta de entrada" no host que redireciona o tráfego para uma porta específica na VM.
Exemplos comuns de uso:
Aceder ao SSH na VM (mais frequente)
Queres conectar via terminal (ssh user@127.0.0.1) no host para a VM sem abrir a janela gráfica do VirtualBox.
Configuras: Host Port 2222 (ou 2223 para evitar conflito) → Guest Port 22 (SSH padrão).
Depois: ssh usuario@127.0.0.1 -p 2222 no teu PC.
Testar um servidor web na VM (ex: Apache, Nginx, Node.js app)
Rodas um site na VM na porta 80 ou 3000.
2.1 Como ativar (passos rápidos no VirtualBox)
Desliga a VM.
Seleciona a VM → Configurações → Rede → Adapter 1 (ou o que estiver em NAT).
Expande Avançado → clica em Regras de Encaminhamento de Portas (Port Forwarding).
Clica no + para adicionar regra:
Nome: algo como "SSH" ou "Web".
Protocolo: TCP (ou UDP se for o caso).
Host IP: 127.0.0.1 (para acessar só do teu PC) ou vazio (para rede local).
OK → inicia a VM.
Resumo rápido
Uso | Host Port (no teu PC) | Guest Port (na VM) | Exemplo de comando/acesso |
SSH na VM | 2222 | 22 | ssh user@127.0.0.1 -p 2222 |
Servidor web na VM | 8080 | 80 ou 3000 | http://127.0.0.1:8080 |
RDP na VM | 3390 | 3389 | Remote Desktop para 127.0.0.1:3390 |
MySQL/MariaDB na VM | 3307 | 3306 | mysql -h 127.0.0.1 -P 3307 -u user |
Ativas port forwarding quando precisas de acesso entrante na VM (de fora para dentro), mantendo o NAT seguro e simples. Se usares Bridged Adapter, não precisas (a VM fica visível na rede como um PC normal), mas perdes isolamento.
3 Quando eu ativo na o computador faz automaticamente o NAT porque é que eu ativo as portas ele não faz isso já
Pergunta de um milhão de euros! Se o NAT consegue ser tão "inteligente" para deixar os dados sair e voltar, porque é que ele não deixa simplesmente alguém de fora entrar sem termos de configurar as portas à mão?
A resposta resume-se a uma palavra: Ambiguidade.
3.1.1 1. O Problema da Direção (Saída vs. Entrada)
· Na Saída (Automático): Quando tu estás dentro da VM e pedes para ver o Google, o router (ou VirtualBox) cria uma entrada na tabela dizendo: "A VM pediu isto, quando o Google responder, eu já sei que é para ela". Há um rasto que o NAT segue.
· Na Entrada (Manual): Quando alguém de fora (ou o teu Host) tenta aceder à VM sem que ela tenha pedido nada primeiro, o NAT recebe o pacote e fica baralhado. Ele pensa: "Recebi um pedido para a porta 80. Mas eu tenho 3 VMs e o meu próprio PC a correr... para quem é isto? Não tenho nenhum rasto aqui!"
3.1.2 2. O Port Forwarding é o "Mapa"
Como o NAT não sabe adivinhar o destino de um pedido que ele não solicitou, tu tens de criar uma regra estática (o Port Forwarding). Estás a dizer ao sistema:
"Ouve, sempre que alguém bater à porta 8080 do meu PC real, não perguntes nada: entrega logo à porta 80 daquela VM específica."
3.1.3 3. Segurança (O Firewall "por acidente")
Se o NAT fizesse o mapeamento de portas automaticamente para tudo, a tua VM estaria totalmente exposta à Internet assim que a ligasses.
· O facto de ele não fazer o mapeamento automático funciona como uma barreira de segurança.
· Só o que tu autorizas explicitamente (abrir a porta) é que passa.
3.1.4 4. E o UPnP?
Talvez já tenhas ouvido falar de UPnP (Universal Plug and Play). Alguns routers e softwares tentam fazer isso automaticamente (é o que a tua PlayStation ou o Skype fazem para "abrir o NAT" sozinhos). No entanto, em ambientes profissionais ou de virtualização como o VirtualBox, isso é desativado por questões de controlo e segurança. O administrador (tu!) deve decidir o que entra.
Resumo: O NAT faz o "bate" automático no caminho de volta porque ele guarda a memória de quem saiu. Mas ele não sabe quem deve receber quem entra "sem ser convidado".
4 Em modo host only ou bridge, não há tabela pat
O PAT (e o NAT) só existem quando há necessidade de "esconder" ou "traduzir" uma rede privada para uma rede pública.
Se mudares o modo de rede, a lógica muda completamente:
5 ver a tabela pat
· No Windows (PowerShell/CMD): netstat -n
· No Linux/Ubuntu (Terminal): ss -nat ou netstat -nat
S possível, mas a resposta curta é: depende de onde o PAT está a acontecer.
Como o PAT é um processo dinâmico que ocorre "na fronteira" entre duas redes, tens de olhar para o dispositivo que está a fazer a tradução.
5.1.1 1. No Router da tua Casa/Escola
O teu router é o principal executor do PAT. Ver a tabela aqui é o mais interessante, mas também o mais difícil devido às restrições dos fabricantes:
· Routers Domésticos (MEO, NOS, Vodafone): A maioria bloqueia o acesso à tabela NAT/PAT por segurança e para simplificar a interface. Raramente verás uma opção "NAT Table" no menu web.
· Routers Profissionais (Cisco, Mikrotik, Teltonika): Aqui é fácil. Num Cisco, por exemplo, usarias o comando: show ip nat translations Isto mostra-te exatamente qual IP interno e porta estão mapeados para qual IP externo e porta.
5.1.2 2. No VirtualBox (O teu "Router Virtual")
Se estás a usar o modo NAT no VirtualBox, ele está a fazer PAT para a tua VM. O VirtualBox não tem um botão "Ver Tabela" na interface gráfica, mas podes ver as ligações ativas através do comando VBoxManage no terminal do teu PC real (Host):
No terminal (Windows ou Mac/Linux), podes tentar listar informações sobre a rede, embora ele mostre mais as regras estáticas do que a tabela dinâmica em tempo real.
5.1.3 3. No teu PC (Host ou VM) - O "Estado" das Ligações
Embora o teu PC não veja a "tabela PAT" do router, ele tem a sua própria Tabela de Estados de Ligação, que é a base para o que o PAT vai traduzir.
Podes ver isto agora mesmo:
· No Windows (PowerShell/CMD): netstat -n
· No Linux/Ubuntu (Terminal): ss -nat ou netstat -nat
Vais ver algo como: 192.168.1.10:52341 -> 142.250.184.206:443 (ESTABLISHED)
· O teu PC sabe que a porta 52341 está aberta.
· O router, na sua tabela PAT, terá uma linha a dizer: "O que vier do Google para a porta pública X, vai para o 192.168.1.10 na porta 52341".
5.1.4 Resumo: Onde procurar?
· Se queres ver o mapeamento real entre o IP privado e o público, tens de aceder à administração do Router.
· Se queres ver que portas o teu PC escolheu para enviar os dados, usas o comando netstat no próprio PC.