Cómo averiguar la lista de todos los puertos abiertos en Linux
En este artículo, hablaremos brevemente sobre los puertos en las redes de computadoras y pasaremos a cómo enumerar todos los puertos abiertos en Linux.
En redes de computadoras, y más definitivamente en términos de software, un puerto es una entidad lógica que actúa como un punto final de comunicación para identificar una aplicación o proceso determinado en un sistema operativo Linux. Es un número de 16 bits (0 a 65535) que diferencia una aplicación de otra en los sistemas finales.
Los dos protocolos de transporte de Internet más populares, el Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP) y otros protocolos menos conocidos utilizan números de puerto para las sesiones de comunicación (números de puerto de origen y destino junto con las direcciones IP de origen y destino).
Además, una combinación de dirección IP, puerto y protocolo como TCP/UDP se conoce como socket, y cada servicio debe tener un socket único.
A continuación se detallan las diferentes categorías de puertos:
- 0-1023: los puertos conocidos, también conocidos como puertos del sistema.
- 1024-49151: los puertos registrados, también conocidos como puertos de usuario.
- 49152-65535 – los Puertos Dinámicos, también conocidos como Puertos Privados.
Puede ver una lista de diferentes aplicaciones y combinaciones de puerto/protocolo en el archivo /etc/services
en Linux usando el comando cat:
cat /etc/services
OR
cat /etc/services | less
/etc/services:
$Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
Network services, Internet style
IANA services version: last updated 2009-11-10
#
Note that it is presently the policy of IANA to assign a single well-known
port number for both TCP and UDP; hence, most entries here have two entries
even if the protocol doesn't support UDP operations.
Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
are included, only the more common ones.
#
The latest IANA port assignments can be gotten from
http://www.iana.org/assignments/port-numbers
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535
#
Each line describes one service, and is of the form:
#
service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
Para enumerar todos los puertos abiertos o los puertos actualmente en ejecución, incluidos TCP y UDP en Linux, usaremos netstat, es una poderosa herramienta para monitorear conexiones de red y estadísticas.
$ netstat -lntu
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::25 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
Dónde,
-l
– imprime solo enchufes de escucha-n
– muestra el número de puerto-t
– habilita la lista de puertos tcp-u
– habilita la lista de puertos udp
También puede utilizar el comando ss, una conocida utilidad útil para examinar sockets en un sistema Linux. Ejecute el siguiente comando para enumerar todos sus puertos TCP y UCP abiertos:
$ ss -lntu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:*
tcp LISTEN 0 128 :::22 :::*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 50 *:3306 *:*
tcp LISTEN 0 128 :::80 ::*
tcp LISTEN 0 100 :::25 :::*
tcp LISTEN 0 100 *:25
Procure leer las páginas de manual de los comandos anteriores para obtener más información de uso.
En resumen, comprender el concepto de puertos en las redes informáticas es muy vital para los administradores de sistemas y redes. También puedes consultar esta guía de netstat con ejemplos sencillos, precisos y bien explicados.
Por último, pero no menos importante, póngase en contacto con nosotros compartiendo otros métodos para enumerar puertos abiertos en Linux o haciendo una pregunta a través del formulario de respuesta a continuación.