Cómo consultar los puertos abiertos (escuchar) en Linux

Cómo consultar los puertos abiertos (escuchar) en Linux

En Linux, un puerto es un punto de conexión lógico para transmitir datos entre un cliente y un servidor. Para garantizar la seguridad y la funcionalidad de un sistema, es importante saber qué puertos están abiertos y escuchando las conexiones entrantes. Los puertos se identifican por un número, que van desde 0 a 65535.

Hay tres categorías de puertos en un sistema Linux:

  • Puertos conocidos: Estos son los puertos que están reservados para servicios específicos y están asignados por la Autoridad de números asignados por Internet (IANA). Algunos ejemplos de puertos conocidos son 22 para SSH, 80 para HTTP y 443 para HTTPS.
  • Puertos registrados: Estos son los puertos que están registrados con la IANA para fines específicos pero no están reservados para servicios específicos. Estos puertos se usan típicamente por aplicaciones o protocolos específicos.
  • Puertos dinámicos y/o privados: Estos son los puertos que no están reservados o registrados con el IANA y pueden ser utilizados por cualquier aplicación o protocolo. Estos puertos se usan típicamente para conexiones temporales o efímeras.

En este artículo, cubriremos varios métodos para verificar los puertos abiertos en Linux.

Cómo verificar los puertos abiertos en Linux

Para verificar los puertos abiertos o de escucha en Linux, puede usar el 'netstat', 'SS', 'LSOF', y 'nmap' comandos.

  1. Utilizando el 'netstat' Dominio
  2. El 'netstat' El comando es una utilidad que muestra conexiones de red, tablas de enrutamiento y una variedad de estadísticas de red. Para verificar los puertos abiertos en Linux con 'netstat', sigue estos pasos:

    Abra una ventana de terminal y ejecute el siguiente comando:

    sudo netstat -tulpn  

    El -T La bandera muestra las conexiones TCP, la -u la bandera muestra las conexiones UDP, la '-l' la bandera muestra los enchufes escuchados, el '-pag' la bandera muestra el PID y el nombre del proceso, y el '-norte' La bandera muestra direcciones numéricas en lugar de nombres simbólicos.

    Salida Proto Recv-Q Send-Q Dirección local Dirección Extranjera Estado PID/Nombre del programa TCP 0 0 0 0.0.0.0:22 0.0.0.0:* Escucha 534/sshd:/usr/sbin tcp 0 0 127.0.0.53:53 0.0.0.0:* Escucha 347/Systemd-resolve tcp6 0 0 ::: 80 :::* escucha 245266/apache2 tcp6 0 0 ::: 22 :::* escucha 534/sshd:/usr/sbin udp 0 0 0 0.0.0.0: 5353 0.0.0.0:* 409/Avahi-Daemon: R UDP 0 0 0.0.0.0: 52848 0.0.0.0:* 409/Avahi-Daemon: R 

    La salida del comando mostrará una lista de puertos abiertos y los procesos correspondientes.

  3. Utilizando el 'LSOF' Dominio
  4. El 'LSOF' El comando es una utilidad que enumera archivos abiertos en un sistema. Para verificar los puertos abiertos en Linux con LSOF, siga estos pasos:

    Abra una ventana de terminal y ejecute el siguiente comando:

    sudo lsof -i  

    El -i El indicador especifica la dirección de Internet de un archivo.

    Comando de salida PID Usuario FD Tipo de dispositivo Tamaño del dispositivo/Nombre del nodo OFF Systemd-R 347 Systemd-Resolve 13U IPv4 25561 0T0 UDP 127.0.0.53: Domain Systemd-R 347 Systemd-Resolve 14U IPv4 25562 0T0 TCP 127.0.0.53: Domain (escucha) Avahi-dae 409 Avahi 12u IPv4 26700 0T0 UDP *: MDNS Avahi-Dae 409 Avahi 14U IPV4 26702 0T0 UDP *: 52848 SSHD 534 Root 3U IPV4 27554 0T0 TCP *: SSH (escucha) SSHD 534 Root 4u IPv6 27589 0T0 TCP *: SSH (Listen) SSHD 4675 Root 4U IPV4 136177 0T0 TCP 192.168.1.210: ssh-> 192.168.1.10: 52623 (establecido) Apache2 245266 Root 4U IPV6 686069 0T0 TCP *: HTTP (Listen) Apache2 245269 www-data 4u IPV6 686069 0T0 TCP *: HTTP (Listen)) 

    La salida del comando mostrará una lista de puertos abiertos y los procesos correspondientes.

    También puede verificar el número de puerto específico:

    sudo lsof -i: 80  

  5. Utilizando el 'SS' dominio
  6. El 'SS' El comando es una utilidad que muestra los enchufes de red y sus conexiones asociadas. Para verificar los puertos abiertos en Linux con 'SS', sigue estos pasos:

    Abra una ventana de terminal y ejecute el siguiente comando:

    ss -tulpn  

    El '-t' La bandera muestra las conexiones TCP, la '-u' la bandera muestra las conexiones UDP, la '-l' la bandera muestra los enchufes escuchados, el '-pag' la bandera muestra el PID y el nombre del proceso, y el '-norte' La bandera muestra direcciones numéricas en lugar de nombres simbólicos.

    La salida del comando mostrará una lista de puertos abiertos y los procesos correspondientes.

  7. Utilizando el 'nmap' Dominio
  8. El 'nmap' El comando es una utilidad que escanea redes para hosts y servicios. Para verificar los puertos abiertos en Linux con 'nmap', sigue estos pasos:

    Abra una ventana de terminal y ejecute el siguiente comando:

    nmap -p- localhost  

    El '-pag-' El indicador especifica una gama de puertos para escanear. El '-' indica que todos los puertos deben ser escaneados.

    El argumento 'localhost' especifica el host de destino para escanear.

    La salida del comando mostrará una lista de puertos abiertos en el host de destino.

Conclusión

En este artículo, cubrimos varios métodos para verificar puertos abiertos en Linux. Cubrimos usando el 'netstat', 'SS', 'LSOF', y 'nmap' comandos para mostrar una lista de puertos abiertos y los procesos correspondientes. Mediante el uso de estos métodos, puede verificar fácilmente los puertos abiertos en su sistema Linux.

Espero que esto te ayude a comprender cómo verificar los puertos abiertos en Linux. Si tiene más preguntas, no dude en preguntar.