You are on page 1of 13

Cómo encontrar y ver puertos abiertos en

sistemas Linux
Aquí tienes la forma de comprobar los puertos abiertos o cerrados con comandos en sistemas Linux (Ubuntu, Debian,
Fedora y CentOS).

Escrito por Solvetic Seguridad ene 12 2017 11:12


ubuntu debian

En la gestión cotidiana de diversos entornos de sistemas operativos debemos siempre estar atentos a los
diferentes parámetros de los equipos bajo nuestro cargo o soporte con el fin de monitorear amenazas, encontrar
errores e incrementar la seguridad de los mismos con el fin de evitar tareas administrativas y de gestión
innecesarias.

Uno de los temas que muchas veces pasamos inadvertidos está asociado a los puertos que usan nuestros
equipos para la respectiva comunicación en la red y esto puede convertirse en una vulnerabilidad critica en el
correcto funcionamiento de los sistemas operativos.

Hoy veremos en detalle cómo conocer los puertos abiertos en diversas distros de Linux con el fin de
comprender y conocer que puertos están “escuchando” la información.

Qué son los puertos abiertos en Linux

En primer lugar debemos comprender que un puerto no es abierto automáticamente por la distro de Linux, es
un determinado programa que lo abre para cumplir con una tarea específica.

De modo que si deseamos cerrar un puerto deberíamos sencillamente cerrar el programa que usa dicho
puerto. O cerrar directamente el puerto a través de Firewall del sistema.

Entre los puertos más conocidos tenemos:

21: Puerto de FTP


80: Puerto del HTTP

25: Puerto del SMTP

Un puerto es básicamente un numero de 16 bits comprendido entre 0 y 65535 el cual diferencia un programa a
otro en el sistema operativo.

La categoría de los puertos puede ser clasificada de la siguiente manera:

0-1023: Son los puertos del sistema.

1024-49151: Son puertos registrados o puertos de usuario.

49152-65535: Son puertos dinámicos o puertos privados.

Como podemos ver tener un claro conocimiento de los puertos abiertos en las diversas distros de Linux nos
permiten tener un control centralizado sobre qué acción está siendo ejecutada por el equipo a nivel interno.

1. Verificar puertos abiertos en Ubuntu

En primer lugar para ver el listado completo de las aplicaciones y su respectivo protocolo podemos usar el
siguiente comando:

cat /etc/services

Podemos ver en detalle la aplicación, el número de puerto y el grupo al cual pertenece. También es posible usar el
siguiente comando que nos permite ver de forma más detallada cada protocolo:

cat /etc/services | less


Allí basta con pulsar Enter para ir desplazando hacia abajo la lista de los comandos.

Listar determinados puertos Ubuntu

Es posible que deseemos visualizar un grupo determinado de puertos en Ubuntu, por ejemplo, si deseamos listar
únicamente los puertos TCP y UDP usaremos el siguiente comando:

netstat -lntu

Obtendremos el siguiente resultado:

Gracias a netsat podemos ver las estadísticas de la red en tiempo real y los demás parámetros agregados son:

-l: Permite ver exclusivamente los puertos de escucha


-n: Permite ver el número de puerto
-t: Visualiza los puertos TCP
-u: Visualiza los puertos UDP
Podemos usar el siguiente comando para visualizar todos los puertos que están “escuchando”, es decir, abiertos.

Netstat -l

También podemos usar los siguientes comandos:

netstat -lt

Listar todos los puertos TCP abiertos

netstat -lu

Listar todos los puertos UDP abiertos

netstat -au

Listar todas las conexiones UDP

Un último comando útil en Ubuntu 16 es el siguiente:

ss -lntu

El parámetro SS permite ver los respectivos sockets en el sistema, en este caso hemos agregado los valores -lntu
para desplegar los sockets de los puertos TCP y UDP.

2. Verificar puertos abiertos en CentOS 7


En CentOS 7 una de las formas más prácticas como podemos ver los puertos abiertos es usando nmap, para ello
debemos ejecutar el siguiente comando:

Nmap localhost

El resultado obtenido será el siguiente:

Podemos ver que puertos tenemos abiertos en el momento, el número de puerto y el servicio que lo está abriendo,
del mismo modo podemos ver cuantos puertos están cerrados.

Nota

En caso de no tener instalado nmap podemos usar el siguiente comando para instalarlo en CentOS 7:

sudo yum install nmap

Usando Nmap podemos visualizar los puertos abiertos en un sitio web desde CentOS 7, por ejemplo para ver los
puertos abiertos de Solvetic.com usaremos el siguiente comando:

nmap 178.33.118.246
Podemos ver número, estado y tipo de servicio del puerto.

Adicionalmente podemos usar el comando netstat para ver en detalle el estado de los puertos en CentOS 7,
para ver el listado completo de puertos usaremos el siguiente comando:

netstat -l

Ver el estado de un puerto en especifico CentOS 7

En CentOS 7 podemos usar la siguiente sintaxis para ver el estado de determinados tipos de puertos:

netstat -lt(Iniciales de puerto)

Por ejemplo, para ver exclusivamente los puertos TCP y UDP usaremos el siguiente comando:
netstat -ltup

Si deseamos ver solo los puertos TCP usaremos:

netstat -ltp

Finalmente en CentOS 7 podemos hacer uso de NetCat para determinar el estado de un puerto, para ello
debemos usar la siguiente sintaxis:

nc -vn 1 (Dirección IP) (Numero de puerto)

En este ejemplo validaremos si el puerto 21 de la dirección IP 192.168.0.29 está o no abierto, para ello ingresamos
lo siguiente:

nc -vn 1 192.168.0.29 21
El resultado obtenido será el siguiente:

Si el mensaje retornado es Connection refused indica que el puerto esta cerrado. Si el mensaje desplegado
es Connected significa que el puerto está abierto.

3. Verificar puertos abiertos en Debian 8

En Debian 8 el comando básico para verificar los puertos abiertos es el siguiente:

Nmap -sT -O localhost


Nota

Este comando debe correrse con privilegios de root.

Validar un determinado puerto en Debian 8

Podemos usar el comando netcat (nc) para realizar la validación de un puerto en particular del equipo, para esto es
importante conocer la dirección IP de la máquina.
Una vez tengamos la IP, en este caso 192.168.0.31, usaremos el siguiente comando:

nc -zv 192.168.0.31 25
En este caso hemos recibido el mensaje Connection refused el cual indica que el puerto 25 en la IP indicada se
encuentra cerrado, si el mensaje desplegado es Connected indica que el puerto está abierto.

4. Verificar puertos abiertos de sitio web desde Debian 8

En Debian 8 es posible usar nmap para consultar los puertos abiertos de un determinado sitio web.

Para ello usaremos la siguiente sintaxis:

nmap -v -A (Sitio web)

Por ejemplo veremos que puertos abiertos tiene el sitio web Solvetic.com:
Podemos ver que el resultado nos indica número de puerto, estado y dirección. Otra de las alternativas que nos
ofrece Debian 8 para verificar los puertos abiertos de un servicio en exclusivo podemos usar el siguiente comando:

netstat -lt(Inicial protocolo)

Por ejemplo para ver los puertos TCP usaremos el siguiente comando:

netstat -ltp
Así mismo podemos usar el comando netstat -l para obtener un listado completo de todos los puertos abiertos en
Debian 8.

5. Verificar puertos abiertos en Fedora 25

Para verificar los puertos abiertos en Fedora 25 podemos usar alguna de las opciones mencionadas en las distros
anteriores con total confianza.

Para ver un listado completo de todos los puertos abiertos podemos usar dos opciones:

netstat -l
nmap -sT -O localhost

En ambos casos el resultado nos indicará que puertos están abiertos actualmente en Fedora 25.

Verificar servicios determinados

Para verificar esto podemos usar el comando netstat seguido del respectivo parámetro, por ejemplo, para validar
los puertos TCP podemos usar el siguiente comando:

netstat -ltp
Del mismo modo podemos agregar el parámetro del puerto requerido para su respectiva consulta.
Si deseamos verificar los sockets que están siendo usados por un puerto en particular podemos usar el siguiente
comando:

ss -lnt (Listar los sockets usados por TCP)

De esta manera contamos con diversas formas de verificar todos los puertos o un puerto en específico cuyo
estado sea en “escucha” para de este modo determinar si este puerto debe o no estar abierto y en caso de no ser
así tomar medidas preventivas.

You might also like