Uno de los comandos que se han vuelto esenciales para muchos administradores de sistemas y profesionales de Linux es el comando nmap. Por eso, cuanta más información tengamos sobre este comando, mejor. Por eso hemos preparado este post con la intención de que aprendas a usar el comando nmap en Linux.
Introducción a Nmap
Según el sitio web de la herramienta, encontramos la siguiente definición:
Nmap ("Network Mapper") es una utilidad gratuita y de código abierto para el descubrimiento de redes y la auditoría de seguridad. Muchos administradores de sistemas y redes también lo encuentran útil para tareas como el inventario de la red, la gestión de programas de actualización de servicios y la supervisión del tiempo de actividad del host o del servicio. Nmap utiliza paquetes de IP sin procesar de formas novedosas para determinar qué hosts están disponibles en la red, qué servicios (nombre y versión de la aplicación) ofrecen esos hosts, qué sistemas operativos (y versiones de SO) están ejecutando, qué tipo de filtros de paquetes/cortafuegos están en uso, y docenas de otras características. Fue diseñado para escanear rápidamente grandes redes, pero funciona bien contra hosts individuales.
Esta herramienta es muy utilizada en todo el mundo Linux pero también tiene versiones para macOS, Windows y otros sistemas Unix.
Nmap admite docenas de técnicas avanzadas para mapear redes llenas de filtros IP, firewalls, enrutadores y otros obstáculos. Además, Nmap se ha utilizado para escanear enormes redes de literalmente cientos de miles de máquinas .
Instalación de la herramienta
En general, esta herramienta no está presente por defecto en las instalaciones de las principales distribuciones de Linux. Pero, el paquete está disponible en los repositorios oficiales de casi todos ellos por lo que la instalación es bastante sencilla.
En el caso de Debian, Ubuntu y derivados, puedes instalarlo con el siguiente comando:
sudo apt install nmap
Pero si usa Fedora, CentOS 8, Rhel 8 y derivados:
sudo dnf install nmap
Pero en distribuciones como Arch Linux, Manjaro y derivados:
sudo pacman -S nmap
Finalmente, para OpenSUSE:
sudo zypper in nmap
Como es bastante ligero, la instalación será muy rápida.
Cómo usar el comando nmap
La forma más básica en que funciona el comando es usarlo para escanear un host definido por dirección IP o dominio.
Por ejemplo:
nmap [ip-adress] nmap [domain]
Obtendrá un resultado similar a este:
Starting Nmap 7.70 ( https://nmap.org ) at 2021-03-26 13:59 -04 Nmap scan report for example.com (x.x.x.x) Host is up (0.17s latency). Other addresses for example.com (not scanned): x.x.x.x Not shown: 996 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https 8080/tcp open http-proxy 8443/tcp open https-alt Nmap done: 1 IP address (1 host up) scanned in 16.05 seconds
En esta pantalla de salida podrás conocer la latencia, los puertos disponibles y los servicios que hacen uso de ella. Si agrega la opción -v, puede obtener resultados más detallados.
nmap -v [ip-adress-or-domain]
Sin embargo, puede escanear varios hosts separándolos con un espacio en blanco.
nmap 192.168.1.1 192.168.1.1.10 192.168.1.22
Por otro lado, también puede escanear un rango completo de direcciones IP.
nmap 192.168.1.1-100
De esta manera, puede verificar muchas direcciones a la vez.
Ejemplo de uso del comando nmap
Realizar un escaneo rápido de una dirección IP .
Es posible realizar un escaneo rápido cuando sea necesario, debe usar -F
opción
nmap -F 192.168.1.34
Detectar los hosts activos dentro de una red .
Esta opción es bastante útil para saber cuándo se está utilizando una máquina, solo incluya el -sn
opciones
nmap -sn 192.168.0.0/24
Conocer el sistema operativo del host
Para hacer esto, debe agregar el -O
opción aunque en algunos sistemas operativos no tendrá éxito por falta de permisos. Para usarlo, deberá ser usuario root o usar sudo
.
sudo nmap -O 192.168.1.22
Verificar si el Firewall está funcionando .
Para verificar el estado del Firewall puede usar el -sA
opción con root o sudo
permisos.
sudo nmap -sA 192.168.1.32
Trabajar con puertos
Una de las opciones más interesantes que ofrece nmap es que puedes escanear un puerto específico. Para este ejemplo, elegiré el puerto 80
que es uno de los puertos más utilizados.
nmap -p 80 192.168.1.11
O escanear varios puertos simultáneamente:
nmap -p 80,443 192.168.1.11
De esta forma escanearás los puertos 80
y 443
pero pueden ser tantos como quieras pero separados por comas.
Además, puede escanear un rango de puertos usando el -
firmar
nmap -p 80-90 192.168.1.5
Esta es una forma sencilla de comprobar si un servicio determinado está utilizando un puerto determinado.
Puertos TCP
En caso de que quieras escanear todos los puertos TCP puedes hacerlo con el siguiente comando
nmap -sT 192.168.2.124
De esta forma, estarás escaneando todos los puertos que hacen uso del protocolo TCP en un determinado host.
Además, puede especificar un puerto de este protocolo:
nmap -p T:80 192.168.2.124
En este caso, estoy comprobando el puerto 80, pero puede ser cualquier puerto que desee.
Puertos UDP
También tenemos la opción de escanear puertos UDP, para ello la opción a utilizar es la sU
opción.
nmap -sU 192.168.2.124
De la misma manera, puede escanear un puerto del protocolo UDP de forma similar a TCP.
nmap -p U:81 192.168.2.124
Conclusión
El nmap
La herramienta es una utilidad básica para muchas personas que trabajan en Linux, especialmente en redes. Aunque también lo usan los programadores para saber si alguna aplicación está usando un puerto específico pero esto va más allá y es posible encontrar más información sobre el host o incluso sobre la red. Especialmente cuando la red a analizar es una red interna.
Finalmente, usando el nmap
El comando no es complejo, pero las muchas opciones pueden abrumar a algunos usuarios. Para ello, recomendamos leer la documentación oficial.