Puertos abiertos, tres opciones para encontrarlos en Ubuntu 18.04
En el siguiente artículo vamos a echar un vistazo a cómo podemos encontrar los puertos a la escucha en nuestro sistema Ubuntu. Conocer qué puertos están en uso en un sistema es una tarea básica para cualquier administrador, tanto a la hora de realizar la configuración de interfaces como a la hora de protegernos contra intrusiones, las siguientes líneas pueden resultar útiles.
Si eres administrador, sabrás que los servidores creados para un acceso público, tendrán servicios que escucharán en los puertos asignados para llevar a cabo la comunicación. Esta situación hace que en algunos casos, los puertos que no están en uso permanezcan abiertos o a la escucha, lo cual puede hacer que otros busquen explotar la situación.
Los puertos de red los podremos identificar por su número, la dirección IP asociada y el tipo de protocolo de comunicación (TCP o UDP). En nuestro sistema Ubuntu vamos a poder encontrar algunos comandos predeterminados que podemos utilizar para escanear nuestro equipo en busca de puertos abiertos.
Los pasos que vamos a ver a continuación, van a mostrar algunos comandos para encontrar los puertos a la escucha. Para identificarlos en Ubuntu, no habrá más que seguir alguno de los siguientes pasos:
Encuentra los puertos abiertos (puertos de escucha) en Ubuntu
Usando el comando netstat
Esta es una herramienta de línea de comandos que nos puede ofrecer información relacionada con las direcciones IP, las conexiones de red, puertos y servicios que se comunican en estos puertos.
En caso de que no tengas instalada esta herramienta en Ubuntu, vas a poder hacerte con ella abriendo una terminal (Ctrl+Alt+T) y utilizando el comando:
sudo apt install net-tools
Terminada la instalación, si queremos enumerar los puertos disponibles en el servidor, ejecuta el siguiente comando:
sudo netstat -plnut
Tras ejecutar el comando junto con las opciones anteriores, deberíamos ver por pantalla algo similar a lo siguiente:
Las opciones que utilizamos en el anterior comando serán las siguientes:
- -p Muestra el PID.
- -l Va a mostrar solo puertos a la escucha.
- -n Nos va a mostrar direcciones numéricas en lugar de resolver hosts.
- -u Muestra los puertos UDP.
- -t Muestra los puertos TCP.
En caso de querer ver solo un nombre o puerto de servicio específico, podemos utilizar en la terminal el comando netstat con las opciones que usamos en el comando anterior, al tiempo que también usaremos grep.
sudo netstat -plnt | grep :139
Usando el comando lsof
Esta es otra conocida herramienta de monitorización de sistemas operativos tipo Unix, que se utiliza para mostrar todos los archivos de disco que mantienen abiertos los procesos, incluyendo los sockets de red abiertos y tuberías, entre otros tipos.
El comando lsof es otra utilidad disponible, que vamos a poder ejecutar en la terminal de Ubuntu y que nos va a permitir ver la información de red. Para listar todos los puertos TCP que están a la escucha no tendremos más que utilizar el comando lsof, acompañado de las siguientes opciones:
sudo lsof -nP -iTCP -sTCP:LISTEN
Usando el comando ss
Por defecto netstat no está instalado en Ubuntu, pero podemos encontrar disponible el comando ss que se instala como un reemplazo para netstat. Como ocurre con netstat, el comando ss se usa para mostrar información de red en sistemas Gnu/Linux. Ambos comparten casi las mismas opciones de comando por lo que para poder comprobar los puertos a la escucha, no habrá más que abrir una terminal (Ctrl+Alt+T) y escribir en ella:
sudo ss -plnut
La salida del comando anterior, al igual que ocurría antes con el comando netstat, nos debería mostrar algo similar a la siguiente captura de pantalla:
En caso de que te dediques a administrar un servidor o seas webmaster y quieras asegurarte de que solo están abiertos los puertos necesarios en tu servidor Ubuntu, los pasos que acabamos de ver posiblemente te puedan resultar útiles a la hora de buscar puertos a la escucha que no están en uso y que puedan suponer un riesgo.