Seguridad

Cómo verificar puertos abiertos en Linux

Cómo verificar puertos abiertos en Linux
Verificar 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 aprovechar las vulnerabilidades de los servicios para obtener acceso o interrumpir un sistema. Un servicio de escucha o un puerto de escucha es un puerto abierto con una aplicación esperando que un cliente se conecte (p.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 abierto si no usa ssh. Este tutorial muestra cómo verificar puertos abiertos tanto de forma remota como local y cómo cerrarlos.

Cómo verificar puertos abiertos en Linux localmente

El comando netstat está presente en todos los sistemas operativos (sistemas operativos) de las computadoras para monitorear las conexiones de red. El siguiente comando usa netstat para mostrar todos los puertos de escucha usando el protocolo TCP:

netstat -lt

Dónde:
netstat: llama al programa.
-l: enumera los puertos de escucha.
-t: especifica el protocolo TCP.

La salida es amigable para los humanos, 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 por UDP, el resultado, al menos en Linux, mostrará solo los puertos abiertos sin especificar el estado porque, al contrario que el protocolo TCP, el protocolo UDP no tiene estado.

netstat -lu

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

netstat --escuchar

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 los puertos de escucha y las 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 a él. Puedes usar el comando lsof utilizado para listar archivos abiertos asociados a procesos.

lsof -i 4 -a -p

En el siguiente ejemplo comprobaré 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 indica imprimir solo IPv4, la opción 6 está disponible para IPv6.
-a: instruye a la salida para ser AND.
-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 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 escaneo de un solo puerto contra Linuxhint.com:

nmap linuxhint.com

La salida está ordenada en 3 columnas que muestran el puerto, el estado del puerto y el servicio que escucha detrás del puerto.

No mostrado: 988 puertos cerrados
SERVICIO DE ESTADO PORTUARIO
22 / tcp abierto ssh
25 / tcp smtp abierto
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
Jetdirect filtrado 9100 / tcp

De forma predeterminada, nmap escanea solo los 1000 puertos más comunes. Si desea que nmap escanee todos los puertos, ejecute:

nmap -p- linuxhint.com

En el Artículos relacionados En la sección de este tutorial, puede encontrar tutoriales adicionales sobre Nmap para escanear puertos y objetivos con muchas opciones adicionales.

Eliminando servicios en Debian 10 buster

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

apto para eliminar apache2

Si lo solicita presione Y para terminar la remoción.

Cómo cerrar puertos abiertos en Linux usando UFW

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

Para bloquear el puerto 22 usando la regla negar solo corre:

ufw negar 22

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

ufw rechazar 22

Sobre el Artículos relacionados sección al final de este tutorial, puede encontrar un buen tutorial sobre cortafuegos sin complicaciones.

Cómo cerrar puertos abiertos en Linux usando iptables

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

iptables -I ENTRADA -p tcp --dport 22 -j RECHAZAR

La regla anterior indica que se rechacen todas las conexiones entrantes (INPUT) de tcp al puerto de destino (dport) 22. Al ser rechazada, se informará a la fuente que la conexión fue rechazada.

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

iptables -A ENTRADA -p tcp --dport 22 -j DROP

Espero que este breve tutorial te haya resultado útil. Siga siguiendo LinuxHint para obtener actualizaciones y consejos adicionales sobre Linux y redes.

Artículos relacionados:

  • Trabajar con UFW (cortafuegos sin complicaciones)
  • Tutorial de conceptos básicos de NMAP
  • Cómo enumerar 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
  • Usando scripts de nmap: captura de banner de Nmap
  • 30 ejemplos de Nmap
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...

Últimos artículos sobre sistemas operativos. Muchas guías interesantes y consejos útiles. Siéntete como tuyo en el mundo de la tecnología moderna