Cómo verificar los puertos abiertos en Linux

Cómo verificar los puertos abiertos en Linux
La verificación de puertos abiertos es uno de los primeros pasos para asegurar su dispositivo. Los servicios de escucha pueden ser la entrada para los atacantes que pueden explotar las vulnerabilidades de los servicios para obtener acceso o interrumpir un sistema. Un servicio de escucha o puerto de escucha es un puerto abierto con una aplicación esperando que un cliente se conecte (e.G Un servidor FTP esperando un cliente FTP) no tiene sentido mantener un servidor web en funcionamiento si no está sirviendo un sitio web, ni mantener el puerto 22 si no usa SSH. Este tutorial muestra cómo verificar los puertos abiertos, tanto de forma remota como local, y cómo cerrarlos.
  • Cómo verificar los puertos abiertos en Linux de forma remota con NMAP
  • Cómo verificar los puertos abiertos en Linux localmente
  • Eliminar servicios en Debian 10 Buster
  • Cómo cerrar los puertos abiertos en Linux usando UFW
  • Cómo cerrar los puertos abiertos en Linux usando iptables
  • Artículos relacionados

Cómo verificar los puertos abiertos en Linux localmente

El comando NetStat está presente en todos los SO de la computadora (sistemas operativos) para monitorear las conexiones de red. El siguiente comando usa NetStat para mostrar todos los puertos de escucha utilizando el protocolo TCP:

netstat -lt

Dónde:
netstat: Llama al programa.
-L: Lista de puertos de escucha.
-t: Especifica el protocolo TCP.

La salida es amigable para el ser humano, bien ordenada en columnas que muestran el protocolo, los paquetes recibidos y enviados, las direcciones IP locales y remotas y el estado del puerto.

Si cambia el protocolo TCP para UDP, el resultado, al menos en Linux, mostrará solo puertos abiertos sin especificar el estado porque contrario al protocolo TCP, el protocolo UDP es apácrico.

netstat -lu

Puede evitar especificar protocolos y usar solo la opción -l o -Listen para obtener información sobre todos los puertos escuchando independientemente del protocolo:

Netstat -Listen

La opción anterior mostrará información para los protocolos de socket TCP, UDP y Unix.

Todos los ejemplos anteriores muestran cómo imprimir información en puertos de escucha sin conexiones establecidas. El siguiente comando muestra cómo mostrar puertos de escucha y conexiones establecidas:

netstat -vatn

Dónde:
netstat: Llama al programa
-V: verbosidad
-a: muestra conexiones activas.
-t: muestra conexiones TCP
-norte: muestra puertos en valor numérico

Supongamos que identificó un proceso sospechoso en su sistema y desea verificar los puertos asociados. Puedes usar el comando LSOF Se utiliza para enumerar archivos abiertos asociados a los procesos.

LSOF -I 4 -A -P

En el siguiente ejemplo verificaré el proceso 19327:

LSOF -I 4 -A -P 19327

Dónde:
LSOF: llama al programa
-i: Enumera los archivos que interactúan con Internet, la opción 4 instruye a imprimir solo IPv4, la opción 6 está disponible para IPv6.
-a: instruye que la salida sea andada.
-pag: Especifica el número PID del proceso que desea verificar.

Como ve, el proceso está asociado con el puerto SMTP de escucha.

Cómo verificar los puertos abiertos en Linux de forma remota


Si desea detectar puertos en un sistema remoto, la herramienta más utilizada es NMAP (Network Mapper). El siguiente ejemplo muestra un solo escaneo de puertos contra Linuxhint.com:

nmap linuxhint.comunicarse

La salida se ordena en 3 columnas que muestran el puerto, el estado del puerto y el servicio escuchando detrás del puerto.

No se muestra: 988 puertos cerrados
Servicio Estatal de Portes
22/tcp abierto ssh
25/tcp abierto SMTP
80/tcp abre http
161/TCP SNMP filtrado
443/tcp abierto https
1666/tcp filtrado netview-aix-6
1723/TCP PPTP filtrado
6666/TCP Filtrado IRC
6667/TCP Filtrado IRC
6668/TCP Filtrado IRC
6669/TCP Filtrado IRC
9100/tcp filtrado jetDirect

Por defecto, NMAP escanea los 1000 puertos más comunes solo. Si desea que NMAP escanee todos los puertos ejecutados:

nmap -p- linuxhint.comunicarse

En el Artículos relacionados Sección de este tutorial Puede encontrar tutoriales adicionales en NMAP para escanear puertos y objetivos con muchas opciones adicionales.

Eliminar servicios en Debian 10 Buster

Además, a las reglas de firewall para mantener sus puertos bloqueados, eliminando los servicios innecesarios. Bajo Debian 10 Buster esto se puede lograr con APT.
El siguiente ejemplo muestra cómo eliminar el servicio Apache 2 usando APT:

apt eliminar apache2

Si se solicita, presione Y Para terminar la eliminación.

Cómo cerrar los puertos abiertos en Linux usando UFW

Si encuentra puertos abiertos, no necesita estar abierto, la solución más fácil es cerrarlo usando UFW (firewall sin complicaciones)
Hay dos formas de bloquear un puerto, utilizando la opción denegar y con la opción rechazar, La diferencia es que la instrucción de rechazo informará al segundo lado, la conexión fue rechazada.

Para bloquear el puerto 22 utilizando la regla denegar solo corre:

UFW negar 22

Para bloquear el puerto 22 utilizando la regla rechazar solo corre:

UFW Rechazado 22

Sobre el Artículos relacionados Sección Al final de este tutorial, puede encontrar un buen tutorial sobre firewall sin complicaciones.

Cómo cerrar los puertos abiertos en Linux usando iptables

Si bien UFW es la forma más fácil de administrar los puertos, es una interfaz de iptables.
El siguiente ejemplo muestra cómo rechazar las conexiones al puerto 22 usando iptables:

iptables -I Entrada -p TCP - -DPORT 22 -J Rechazar

La regla anterior instruye a rechazar todas las conexiones entrantes de TCP (entrada) al puerto de destino (DPORT) 22. Siendo rechazado, la fuente será informada de la conexión fue rechazada.

La siguiente regla simplemente deja caer todos los paquetes sin informar a la fuente la conexión fue rechazada:

iptables -a entrada -p tcp --dport 22 -J Drop

Espero que hayas encontrado este breve tutorial útil. Sigue a Linuxhint para obtener actualizaciones y consejos adicionales sobre Linux y Networking.

Artículos relacionados:

  • Trabajando con UFW (firewall sin complicaciones)
  • Tutorial básico de NMAP
  • Cómo enumerar los puertos abiertos en Firewalld
  • Escaneo de red NMAP
  • Instalación y uso de ZenMap (NMAP GUI) en Ubuntu y Debian
  • NMAP: escanear rangos de IP
  • Uso de scripts nmap: nmap banner grab
  • 30 ejemplos de NMAP