Cómo abrir puertos en Linux
Linux Ubuntu Conceptos Básicos De Ubuntu Héroe / / March 02, 2022
Ultima actualización en
Si está buscando permitir conexiones externas a una PC o servidor, deberá abrir el puerto correcto. Los usuarios de Linux pueden abrir puertos usando esta útil guía.
¿Necesita conectarse a una PC o servidor externo, o necesita que otra PC o servidor se conecte a usted? Si está ejecutando Linux, deberá asegurarse de que el puerto correcto esté abierto.
Mientras que otros sistemas operativos suelen tener alguna herramienta gráfica para ello, Linux no es tan sencillo. A continuación, le mostraremos cómo abrir puertos en Linux.
¿Qué es un puerto y por qué tendría que abrirlo?
Un puerto es un punto final en la red. Piense en ello como una puerta que conduce a una habitación en particular o al mundo exterior, pero en su computadora. Todo lo que hace en Internet utiliza un puerto particular o una serie de puertos.
Por ejemplo, supongamos que desea ejecutar su propio servidor de Minecraft. Para hacerlo, deberá abrir un puerto para que los usuarios se conecten a él. Lo mismo se aplicaría a la ejecución de su propio servidor web, de correo o FTP.
Los puertos son estandarizado en todos los conectados a la red dispositivos. Los primeros 1024 puertos (del 0 al 1023) se denominan números de puerto conocidos. Están reservados para los servicios más utilizados, como HTTP y HTTP (puerto 80 y 443, respectivamente) y SSH (puerto 22).
Los números de puerto superiores a 1024 se conocen como puertos efímerosy, por lo general, están disponibles para que los use para sus juegos en línea, servidores web privados, etc. Los números de puerto 1024 a 49151 se llaman registrado o puertos de usuario, mientras que los del 49152 al 65535 se conocen como dinámica o puertos privados.
Listado de puertos abiertos en Linux
Antes de comenzar a intentar abrir un puerto en Linux, debe asegurarse de que no esté en uso. Puede lograr esto usando el netstat comando, incluido en la mayoría de las distribuciones de Linux. Si su distribución no tiene netstat, puedes usar ss en lugar de.
netstat-lntu.
Esto imprimirá todos los sockets de escucha (-l), junto con el número de puerto (-norte). Incluye puertos TCP (-t) así como UDP (-tu). Si su sistema no tiene netstat, Solo usa ss con los mismos parámetros.
ss-lntu.
Cómo abrir puertos en Linux
Por el bien de este ejemplo, supondremos que queremos abrir el puerto 4000 a conexiones TCP. Primero debemos asegurarnos de que el puerto no esté ya en uso. Hacemos esto a través netstat o ss.
netstat-na | grep :4000. ss-na | grep :4000.
Suponiendo que la salida esté en blanco, podemos agregar las reglas de puerto apropiadas al firewall del sistema. Los métodos para esto variarán dependiendo de su distribución y si utiliza el nuevo ufw cortafuegos o cortafuegos. Ubuntu favoreceufw, tiempo CentOS normalmente usacortafuegos en lugar de. Por supuesto, todavía hay algunas distribuciones de Linux que usan el antiguo iptables cortafuegos
Para usuarios de Ubuntu y otros sistemas basados en cortafuegos ufw
En lugar de usar el viejo iptables firewall, Ubuntu y algunas otras distribuciones usan ufw. Bajo estos sistemas, el siguiente comando abrirá el puerto.
sudo ufw permite 4000.
Omita los siguientes pasos y pruebe su puerto recién abierto para asegurarse de que funciona.
Cómo abrir puertos en Linux usando CentOS y otros sistemas basados en firewalld
Si su sistema utiliza cortafuegos, su mejor apuesta es usar el cortafuegos-cmd comando para actualizar las reglas.
sudo cortafuegos-cmd --add-port=4000/tcp.
Este no será un cambio permanente, pero cubriremos cómo hacer que las reglas persistan después de reiniciar una vez que probemos el puerto.
Para otras distribuciones de Linux
Si su sistema Linux no tiene ufw o cortafuegos, tendrás que usar iptables. Si no está instalado, continúe y consígalo utilizando el administrador de paquetes de su elección. Una vez que esté instalado, estos comandos abrirán el puerto 4000:
sudo iptables -A ENTRADA -p tcp --dport 4000 -j ACEPTAR. reinicio de iptables del servicio sudo.
Si su sistema utiliza systemctl, reemplace el segundo comando con:
sudo systemctl reiniciar iptables.
Prueba de puertos recién abiertos para conexiones
A continuación, debemos probar el puerto para asegurarnos de que acepta conexiones. Hacemos esto usando netcat (Carolina del Norte) para escuchar el puerto y luego intentar hacer telnet.
Primero, abra una ventana de terminal y emita este comando:
sudo ls | nc -l -p 4000.
Déjalo ejecutándose (escuchando) y abre una segunda ventana de terminal. En esa ventana, usará telnet para probar la conectividad. Si Telnet no está instalado, hágalo usando su administrador de paquetes.
telnet [nombre de host/dirección IP] [número de puerto]
Reemplazar [nombre de host/dirección IP] con la dirección IP de su sistema, y [número de puerto] con el número de puerto que abriste.
host local telnet 4000.
Debería ver un resultado como el siguiente, que indica una conexión abierta con Carolina del Norte.
También podemos mostrar que el puerto está abierto usando nmap. Nuevamente, si el comando aún no está instalado, use su administrador de paquetes para recuperarlo.
nmap servidor local -p 4000.
Tenga en cuenta que nmap solo enumerará los puertos abiertos que están escuchando conexiones. Es por eso que usamos netcat para probar, para escuchar en ese puerto. De lo contrario, el puerto no se registrará como abierto.
No puedo conectarme al puerto que acabo de abrir, ¿y ahora qué?
Si ejecuta todos los pasos anteriores y no puede lograr una conexión con el puerto, vuelva a verificar su escritura. Si está seguro de haber ingresado todo correctamente, es probable que deba reconfigurar su enrutador de red para permitir el tráfico.
Dado que cada enrutador de red tiene diferentes pantallas de configuración, debe consultar las páginas de soporte o el manual del usuario para su equipo en particular. Deberá verificar la configuración de reenvío de puertos o asignación de puertos, así como cualquier firewall incorporado que pueda usar el enrutador.
Cómo abrir permanentemente un puerto en Linux
Una vez que haya probado su puerto abierto y se haya asegurado de que funciona, probablemente querrá que el cambio sea permanente. De lo contrario, es posible que los cambios no se mantengan después de reiniciar. Si es un usuario de Ubuntu, o usa el ufw cortafuegos, no tienes que preocuparte por esto. los ufw las reglas no se restablecen al reiniciar.
Para usuarios de cortafuegos
Hacer que una regla de puerto se mantenga después de un reinicio es fácil con cortafuegos. Solo agrega el -permanente marca a su comando inicial, y se incluirá en las reglas de firewall de su sistema Linux en el inicio.
sudo firewall-cmd --add-port=4000/tcp --permanente.
Si todavía está usando iptables
los iptables cortafuegos es mucho más problemático (tal vez una buena razón para actualizar a cortafuegos o ufw). Para abrir “permanentemente” un puerto en iptables, puede instalar el iptables-persistente paquete para ayudar.
Cuando instalas por primera vez iptables-persistente en un sistema basado en Debian, guardará sus reglas actuales en /etc/iptables/rules.v4 o /etc/iptables/rules.v6. Para agregar nuevas reglas, emitirá el siguiente comando:
sudo iptables-save > /etc/iptables/rules.v4.
O
sudo iptables-save > /etc/iptables/rules.v6.
Para aquellos que ejecutan distribuciones de Linux basadas en RPM, es un poco diferente. el paquete se llama servicios de iptables, y los archivos guardados son /etc/sysconfig/iptables y /etc/sysconfig/ip6tables.
En las distribuciones basadas en RPM, también se usa un comando diferente para los puertos IPv6. Guardar sus reglas se hace usando uno de estos dos comandos:
sudo iptables-save > /etc/sysconfig/iptables. sudo ip6tables-save > /etc/sysconfig/iptables.
Asegúrese de monitorear el uso de su puerto
A medida que pasa el tiempo, las necesidades de su servidor pueden cambiar. como deberías estar al tanto de las cuentas de usuario en su máquina Linux, también debe auditar sus puertos abiertos con regularidad. Cierre los puertos abiertos que ya no necesite. Junto con regularmente Cambiando tu contraseña, esta es una buena práctica de seguridad que lo ayudará a evitar intrusiones en el sistema y vulnerabilidades de seguridad.