Un puerto es un número lógico asignado a un proceso que se ejecuta en Linux. El puerto se puede definir como un número entero entre 0 a 65535 . Puertos con números 0–1023 se denominan puertos de sistema o bien conocidos, mientras que los puertos con números 49152-65535 se denominan puertos dinámicos, privados o efímeros. Si es administrador de un sistema Linux, debe tener los conocimientos necesarios para averiguar qué puertos están abiertos y ejecutándose en un sistema remoto. Hay varias formas de encontrar un puerto abierto en Linux.
En esta publicación, mostraremos las formas más confiables de encontrar un puerto abierto en un sistema Linux remoto.
Requisitos
- Un servidor que ejecuta Linux en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Crear servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo cualquier sistema operativo Linux con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Buscar puerto abierto mediante el comando Netcat
Netcat es una utilidad de línea de comandos de Linux que se utiliza para leer y escribir datos a través de conexiones de red mediante el protocolo TCP o UDP. También nos permite encontrar puertos abiertos en un sistema Linux remoto.
Para los sistemas operativos basados en Ubuntu y Debian, instale la utilidad Netcat usando el siguiente comando:
apt-get install netcat -y
Para los sistemas operativos RHEL, CentOS, Fedora y Rocky Linux, instale la utilidad Netcat con el siguiente comando:
dnf install nc -y
La sintaxis básica para usar el comando Netcat se muestra a continuación:
nc [-options] [host_name or ip] [port_number]
Por ejemplo, para comprobar si el puerto 80 está abierto en el host remoto 172.20.10.2 , ejecute el siguiente comando:
nc -zv 172.20.10.2 80
Si el puerto 80 está abierto en un host remoto, obtendrá el siguiente resultado:
Connection to 172.20.10.2 80 port [tcp/http] succeeded!
Dónde :
- -z :Establece nc para simplemente escanear en busca de demonios de escucha.
- -v :Muestra la salida en modo detallado.
También puede especificar un rango de puertos para escanear:
nc -zv 172.20.10.2 40-80
El comando anterior buscará todos los puertos entre 40 y 80.
Buscar puerto abierto usando el comando Nmap
Nmap es una utilidad de línea de comandos potente y muy popular que se utiliza para realizar tareas relacionadas con la red. De forma predeterminada, la utilidad Nmap no está incluida en el sistema Linux. Deberá instalarlo manualmente usando el administrador de paquetes.
Para los sistemas operativos basados en Ubuntu y Debian, instale la utilidad Nmap usando el siguiente comando:
apt-get install namp -y
Para los sistemas operativos RHEL, CentOS, Fedora y Rocky Linux, instale la utilidad Nmap con el siguiente comando:
dnf install nmap -y
La sintaxis básica para usar el comando Nmap se muestra a continuación:
nmap [-options] [HostName or IP] [-p] [PortNumber]
Por ejemplo, para obtener una lista de todos los puertos abiertos en un host remoto 172.20.10.2 , ejecute el siguiente comando:
nmap 172.20.10.2
Debería ver todos los puertos abiertos en el siguiente resultado:
Starting Nmap 7.60 ( https://nmap.org ) at 2022-04-05 14:05 IST Nmap scan report for vyompc (172.20.10.2) Host is up (0.000078s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 23/tcp open telnet 80/tcp open http 7070/tcp open realserver Nmap done: 1 IP address (1 host up) scanned in 0.88 seconds
Si desea verificar si un puerto en particular está abierto en el host remoto, use -p opción:
nmap -Pn -p 80 172.20.10.2
Obtendrá el siguiente resultado:
Starting Nmap 7.60 ( https://nmap.org ) at 2022-04-05 14:08 IST Nmap scan report for vyompc (172.20.10.2) Host is up (0.00011s latency). PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Buscar puerto abierto mediante el comando Telnet
Telnet es otro protocolo de red utilizado para acceder virtualmente a una computadora remota. También le permite encontrar puertos abiertos en sistemas remotos. Puede instalarlo manualmente usando el administrador de paquetes.
Para los sistemas operativos basados en Ubuntu y Debian, instale la utilidad Telnet usando el siguiente comando:
apt-get install telnet -y
Para los sistemas operativos RHEL, CentOS, Fedora y Rocky Linux, instale la utilidad Telnet con el siguiente comando:
dnf install telnet -y
La sintaxis básica para usar el comando Telnet se muestra a continuación:
telnet [HostName or IP] [PortNumber]
Por ejemplo, para comprobar si el puerto 22 está abierto en un host remoto 172.20.10.2 , ejecute el siguiente comando:
telnet 172.20.10.2 22
Si el puerto 22 está abierto, obtendrá el siguiente resultado:
Trying 172.20.10.2... Connected to 172.20.10.2. Escape character is '^]'. SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.6
Si el puerto 22 no está abierto, obtendrá el siguiente resultado:
Trying 172.20.10.2... telnet: Unable to connect to remote host: Connection refused
Conclusión
En esta guía, hemos mostrado cómo encontrar un puerto abierto en una máquina remota usando diferentes comandos. Ahora puede elegir su herramienta preferida para escanear el sistema remoto y encontrar un puerto abierto. ¡Pruébelo en alojamiento VPS de Atlantic.Net!