El Blog de Rigo El Blog de Rigo  

Conocer qué puertos están en uso en Linux

tux_question

Conocer qué puertos están en uso en un sistema es una tarea básica para cualquier administrador. Desde la configuración de interfaces a la protección contra intrusiones y pasando por cualquier resolución de problemas que podamos imaginar, debemos ser capaces de comprobar si un puerto está prestando algún tipo de servicio en nuestro entorno.

Imaginad la situación en que habéis instalado en vuestro sistema el servicio CUPS de impresión y desconocéis si se ha iniciado correctamente el servicio y levantado su puerto correspondiente 631 o su opcional 515. En esta guía os mostraremos tres comandos básicos para detectar los puertos que emplea un sistema y cuál es su estado.

A continuación haremos un repaso de 3 comandos básicos que resultan especialmente útiles en la administración de cualquier sistema. Se trata de lsof, netstat y nmap, utilidades que ejecutaremos desde la consola de terminal y con privilegios de root.

Comando lsof

El comando lsof es el más básico de cuantos os prestamos y, siendo nativo de Linux, la base que todo usuario debería conocer. Para conocer los puertos abiertos en el sistema mediante este comando, deberéis introducir una secuencia como la siguiente, que os mostrará diversa información donde destacaremos: el nombre de la aplicación (por ejemplo, sshd), el socket del programa (en este caso la dirección IP 10.86.128.138 asociada al puerto 22 que está a la ESCUCHA) y el identificador del proceso (que sería 85379).

$ sudo lsof -i -P -n
$ sudo lsof -i -P -n | grep LISTEN

lsof-outputs

Comando netstat

El comando netstat varía ligeramente en su sintaxis respecto al anterior pero presenta unos parámetros mucho más sencillos de memorizar gracias a una sencilla palabra mnemotécnica. A partir de ahora no os olvidéis de la palabra putona, que hace referencia a las siguientes características:

  • p: Muestra las conexiones para el protocolo especificado que puede ser TCP o UDP.
  • u: Lista todos los puertos UDP.
  • t: Lista todos los puertos TCP.
  • o: Muestra los timers.
  • n: Muestra el numero de puerto.
  • a: Visualiza todas las conexiones activas del sistema.

De este modo, introduciendo el comando y filtrándolo con un pipe podemos obtener información sobre un determinado puerto.

$ netstat -putona | grep numero-de-puerto

netstat_putona-830x269

Comando nmap

Nmap es una utilidad que nos permite realizar multitud de escaneos en nuestro sistema y uno de ellos, el de puertos abiertos en el equipo. Para ejecutarlo debemos introducir una secuencia del tipo nmap -sX -O Y, tomando X el valor T o U para conexión TCP o UDP respectivamente y el valor Y la dirección IP de nuestra máquina (o localhost para abreviar). Echad un vistazo al siguiente ejemplo.

$ sudo nmap -sU -O localhost
$ sudo nmap -sT -O 192.168.0.1

Con estas tres aplicaciones ya dispones de herramientas suficientes para determinar los puertos abiertos de nuestra máquina.

Fuente

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.