O comando nmap é uma ferramenta muito útil quando você precisa verificar como um servidor está exposto na rede, sendo bastante utilizado por administradores de sistemas, profissionais de infraestrutura e equipes de segurança.
No dia a dia, você pode usar o Nmap para validar regras de firewall, identificar máquinas ativas em uma rede ou descobrir quais portas estão abertas no linux.
Neste artigo, você aprenderá o que é o Nmap, como instala-lo em diferentes distribuições Linux e como usa-lo para fazer escaneamento básico de hosts em uma rede com exemplos práticos.
IMPORTANTE
Para executar todos os comandos do artigo é necessário ter privilégio administrativo, ou seja, você deve usar o usuário root ou o comando sudo.
O que é nmap ?
O Nmap (Network Mapper) é uma ferramenta de código aberto que envia pacotes IP em uma rede para descoberta de hosts, varredura de portas, detecção de sistemas operacionais e auxilia em
auditorias de segurança.
O comando nmap não vêm instalado na maioria das distribuições linux, mas ele está presente nos repositórios de grande parte das distribuições.
Para instalar o nmap no ubuntu ou debian, execute os seguintes comandos:
apt update
apt install nmap -yEm sistemas RHEL, incluindo AlmaLinux, Rocky Linux e Fedora instale com o seguinte comando:
dnf install nmap -yComo utilizar o comando nmap ?
Para usar o comando nmap no linux é necessário primeiro aprender sua sintaxe básica que é:
nmap [opções] [alvo]Explicação:
nmap – comando usado para fazer o escaneamento de portas.
opções – São argumentos que modificam o comportamento do nmap.
alvo – É quem será escaneado, pode ser um endereço IP, nome de domínio DNS ou uma sub-rede.
Abaixo, foi reunido algumas opções mais usadas para fazer a varredura com o nmap:
| Opção | Descrição | Exemplos de Uso |
|---|---|---|
| -sS | Varredura TCP SYN Stealth. | nmap -sS 192.168.2.10 |
| -sT | Varredura TCP Connect. | nmap -sT 192.168.2.10 |
| -Pn | Trata o host como ativo, ignorando descoberta inicial. | nmap -Pn 192.168.2.10 |
| -A | Ativa detecção de S.O, versão e scripts. | nmap -A 192.168.2.10 |
| -g | Define porta de origem. | nmap -g 53 192.168.2.10 |
Para aprender mair a seguir será abordado vários exemplos práticos de uso do comando nmap.
Descoberta rápida de portas abertas
Uma das utilizações mais comuns do nmap é verificar quais portas TCP mais comuns estão abertas e aceitando conexões, executando o comando nmap seguido do IP alvo.
nmap 10.10.40.50
Na saída do comando o status (STATE) “open” significa que a porta está aberta e uma aplicação está em execução no host alvo (no exemplo: 10.10.40.50) e aceitando conexões.
Esse comando analisa as 1.000 portas TCP mais utilizadas, na imagem acima é mostrada três portas abertas (22/tcp, 25/tcp e 80/tcp) e 997 fechadas (closed).
Escaneamento de um intervalo específico de portas
Quando um serviço roda em uma porta que não é a padrão (como o SSH na porta 2222), examinar apenas as portas padrão não é suficiente. Utilizando a opção “-p” você delimita o escopo da análise especificando um intervalo de portas que o nmap verificará se está aberta.
nmap -p 80-2222 10.10.40.50
No exemplo, é incluso o caractere “–” (hífen) para definir o intervalo, no caso é checado da porta 80 à 2222 TCP.
Para ser mais específico no escaneamento, você pode determinar exatamente quais portas serão checadas separando-as com vírgulas.
nmap -p 80,443,8080 10.10.40.50Detectando serviços e suas versões
Ao fazer a primeira análise de segurança em um servidor com o comando nmap é possível usar a opção “-sV” para identificar qual serviço está em execução e recebendo conexões na porta e qual é a versão da aplicação.
nmap -sV 10.10.40.50
É uma prática recomendada confirmar no próprio servidor essas informações, porque o nmap pode falhar na identificação do serviço e sua respectiva versão.
Descobrindo sistema operacional do host
Descobrir quais portas estão abertas com o comando nmap não informa necessariamente qual o sistema operacional em execução no host alvo. Para saber qual o sistema operacional do host use a opção “-O” do nmap.
nmap -O 10.10.40.50
O Nmap analisa o comportamento da pilha TCP/IP do alvo e compara as respostas com seu banco de dados. A identificação é uma estimativa e pode falhar ou apresentar resultados imprecisos.
Escaneamento agressivo com o comando nmap
Durante testes de invasão autorizados é preciso fazer diagnósticos profundos de segurança, nessa situação você pode utilizar a opção “-A” do comando nmap para coletar o máximo de informações possíveis.
nmap -A 10.10.40.50O parâmetro “-A” combina a detecção de SO, varredura de versão de serviços, execução de scripts de diagnóstico padrão e rota de rede. Ele fornece um relatório detalhado sobre a máquina analisada.
Entretanto, uma varredura mais agressiva gera mais tráfego e pode produzir mais registros em firewalls e sistemas de monitoramento.
Testando firewall através do comando nmap
Para testar a eficácia de regras de firewall e sistemas de detecção de intrusão (IDS) é necessário simular técnicas utilizadas por invasores para contornar filtros de inspeção de pacotes.
nmap -f 10.10.40.50A flag “-f” divide os cabeçalhos dos pacotes IP em pequenos fragmentos. Se a regra do firewall do seu servidor não estiver bem estruturada para inspecionar pacotes fragmentados, o tráfego passará sem ser filtrado.
O Nmap também possui técnicas que ajudam a saber se existem algum dispositivo filtrando pacotes nas portas checadas. Um exemplo é o ACK scan utilizando a opção “-sA” do nmap:
nmap -sA -p 22,80,443 10.10.40.50
A opção “-sA” é usada para determinar se as portas do host alvo são filtradas (filtered) ou não filtradas (unfiltered) por um dispositivo.
Esse tipo de teste tem como objetivo principal entender o comportamento do filtro/firewall. Na prática, STATE unfiltered significa que o pacote ACK parece conseguir chegar ao destino, mas o nmap não consegue afirmar que a porta está aberta, apenas que não está sendo filtrada.
Já o STATE filtered significa que algum firewall/filtro provavelmente está bloqueando ou descartando o tráfego.
Os comandos não devem ser usados para “driblar” um firewall e acessar sistemas de terceiros, mas verificar se os controles de segurança resistem a diferentes padrões de tráfego.
Escaneamento UDP para descoberta de serviços ocultos
Muitos administradores focam a segurança apenas no protocolo TCP, esquecendo que serviços
de rede também utilizam o protocolo UDP, como DNS (53), DHCP (67/68) e SNMP (161).
Para fazer um escaneamento em portas UDP em um IP com o comando nmap, utilize a opção “-sU”.
nmap -sU -p 53,67,68,123,161 10.10.40.50
O status “closed” (porta fechada) significa que não há nenhuma aplicação ouvindo (recebendo conexões) nela. Elas podem ser úteis para mostrar que um host está ativo na rede em um determinado endereço IP.
Descobrir quais hosts estão ativos na rede
Você pode descobrir quais máquinas respondem em uma rede executando o comando nmap com a opção “-sn” sem executar varredura de portas.
nmap -sn 10.10.40.0/24
Em uma empresa, isso pode ajudar a identificar servidores e estações presentes em uma sub-rede e detectar ativos que não deveriam estar ali.
Varredura disfarçada usando alvos falsos
Para avaliar se seus sistemas de segurança estão detectando varreduras de rede de forma eficiente, você pode mascarar a sua análise utilizando IPs simulados.
nmap -D 10.10.40.100,10.10.40.200,ME 10.10.40.50A opção “-D” insere endereços IP falsos junto ao seu IP real (ME). Nos logs do firewall ou IDS do alvo, parecerá que múltiplos hosts estão escaneando a máquina simultaneamente, é uma técnica que pode usar para não revelar o endereço IP de quem está fazendo a varredura.
Conclusão
O comando nmap é uma ferramenta indispensável para profissionais de segurança e qualquer administrador que busca manter servidores linux devidamente protegidos.
Aprender a usa-lo permite ajudar na identificação de vulnerabilidades e até mesmo na validação de firewalls. Para aprofundar seus conhecimentos consulte a documentação oficial do Nmap.
Recomendo que aplique os comandos aqui ensinados sempre com autorização e foco na melhoria contínua da sua infraestrutura.
Ficou com alguma dúvida sobre a aplicação dos parâmetros ou tem alguma sugestão de uso ? Deixe seu comentário abaixo para continuarmos essa troca de conhecimento!
Perguntas frequentes (FAQ) sobre o comando nmap
Qual a diferença entre os escaneamentos TCP SYN (-sS) e TCP Connect (-sT) ?
O escaneamento SYN (ou stealth scan) não finaliza a conexão TCP (envia SYN e aguarda SYN-ACK, sem enviar o ACK final), tornando-se mais rápido e menos visível em logs de aplicação.
Já o TCP Connect completa a conexão de três vias (three-way handshake), sendo utilizado quando o usuário não possui privilégios de root no Linux.
Por que o Nmap precisa de privilégios administrativos para alguns comandos ?
Operações avançadas, como a manipulação e criação de pacotes IP brutos (necessárias para varreduras SYN, detecção de SO e fragmentação de pacotes), exigem acesso direto aos raw sockets do kernel do Linux, permissão concedida apenas ao usuário root.
Como posso salvar os resultados das análises do Nmap em arquivos ?
Você pode utilizar o parâmetro “-oN” para salvar em texto simples ou “-oX” para formato XML, veja o exemplo: nmap -oN resultado.txt 10.10.40.50
O que significa quando o resultado mostra uma porta como “filtered” ?
O status “filtered” indica que o Nmap não conseguiu determinar se a porta está aberta ou fechada porque as sondas enviadas foram bloqueadas por um firewall, filtro de pacotes ou regra de tabela de roteamento.
Como posso me proteger contra varreduras do Nmap no meu servidor Linux ?
Você pode configurar firewall utilizando o iptables ou nftables, além de desabilitar a resposta a PINGs ICMP e ocultar as marcas de versão (banners) dos serviços em execução.

