Cómo verificar puertos abiertos en Linux

How Check Open Ports 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 puerto de escucha es un puerto abierto con una aplicación esperando que un cliente se conecte (por ejemplo, un servidor FTP esperando a un cliente FTP) No tiene sentido mantener un servidor web en funcionamiento si no está sirviendo un sitio web, ni para 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.

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.
-los: 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 del protocolo TCP, el protocolo UDP no tiene estado .

netstat -lu



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

netstat --escucha

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 sobre puertos de escucha sin conexiones establecidas. El siguiente comando muestra cómo mostrar los puertos de escucha y las conexiones establecidas:

netstat -agua

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 se utiliza para listar archivos abiertos asociados a procesos.

lsof-I 4 -a -pag <Número de proceso>

En el siguiente ejemplo, verificaré el proceso 19327:

lsof-I 4 -a -pag 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 puede ver, 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:

nmaplinuxhint.com

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

No mostrado:988puertos cerrados
SERVICIO DE ESTADO PORTUARIO
22/tcp abiertossh
25/tcp open smtp
80/tcp abrir http
161/tcp filtrado snmp
443/tcp abierto https
1666/tcp filtrado netview-aix-6
1723/tcp filtrado pptp
6666/tcp filtrado irc
6667/tcp filtrado irc
6668/tcp filtrado irc
6669/tcp filtrado irc
9100/tcp filtrado jetdirect

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

nmap -pag-linuxhint.com

En el Artículos relacionados En la sección de este tutorial, puede encontrar tutoriales adicionales sobre Nmap para escanear puertos y destinos 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 eliminar apache2

Si lo solicita presione Y para finalizar la eliminació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 negar22

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

ufw rechazar22

Sobre el Artículos relacionados al final de este tutorial, puede encontrar un buen tutorial sobre Firewall 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-IAPORTE-pagtcp--dport 22 -jRECHAZAR

La regla anterior ordena rechazar todas las conexiones entrantes tcp (INPUT) al puerto de destino (dport) 22. Al ser rechazado, 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-AAPORTE-pagtcp--dport 22 -jSOLTAR

Espero que este breve tutorial le 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
  • Uso de scripts de nmap: captura de banner de Nmap
  • 30 ejemplos de Nmap