Cómo abrir puertos en Linux

Cómo abrir puertos en Linux

¿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 están estandarizados en todos los dispositivos conectados a la red. 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 denominan puertos efímeros y, por lo general, están disponibles para que los utilice para sus juegos en línea, servidores web privados, etc. Los números de puerto del 1024 al 49151 se denominan puertos registrados o de usuario , mientras que los del 49152 al 65535 se conocen como puertos dinámicos o 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 comando netstat , incluido en la mayoría de las distribuciones de Linux. Si su distribución no tiene netstat , puede usar ss en su lugar.

netstat -lntu

Cómo abrir puertos en Linux

Esto imprimirá todos los sockets de escucha ( -l ), junto con el número de puerto ( -n ). Incluye puertos TCP ( -t ) así como UDP ( -u ). Si su sistema no tiene netstat , simplemente use ss con los mismos parámetros.

ss -lntu

Cómo abrir puertos en Linux

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 de 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 según su distribución y si utiliza el firewall ufw o firewalld más nuevo . Ubuntu favorece ufw , mientras que CentOS normalmente usa firewalld en su lugar. Por supuesto, todavía hay algunas distribuciones de Linux que utilizan el antiguo cortafuegos de iptables .

Para usuarios de Ubuntu y otros sistemas basados ​​en cortafuegos ufw

En lugar de usar el antiguo firewall de iptables , Ubuntu y algunas otras distribuciones usan ufw . Bajo estos sistemas, el siguiente comando abrirá el puerto.

sudo ufw allow 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 usa firewalld , lo mejor que puede hacer es usar el comando firewall-cmd para actualizar las reglas.

sudo firewall-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 firewalld , deberá usar iptables . Si no está instalado, continúe y consígalo usando el administrador de paquetes de su elección. Una vez instalado, estos comandos abrirán el puerto 4000:

sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPT sudo service iptables restart

Si su sistema usa systemctl , reemplace el segundo comando con:

sudo systemctl restart 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 ( nc ) para escuchar el puerto, luego intentamos 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 [hostname/IP address] [port number]

Reemplace [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 abrió.

telnet localhost 4000

Debería ver un resultado como el siguiente, que indica una conexión abierta con nc .

Cómo abrir puertos en Linux

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 localhost -p 4000

Cómo abrir puertos en Linux

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 firewall ufw , no tiene que preocuparse por esto. Las reglas de ufw 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 firewalld . Simplemente agregue el indicador —permanente a su comando inicial, y se incluirá en las reglas de firewall de su sistema Linux al inicio.

sudo firewall-cmd --add-port=4000/tcp --permanent

Si todavía estás usando iptables

El firewall de iptables es mucho más problemático (tal vez una buena razón para actualizar a firewalld o ufw ). Para abrir "permanentemente" un puerto en iptables , puede instalar el paquete iptables-persistent para ayudar.

Cuando instala iptables-persistent por primera vez 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 iptables-services 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. Así como debe mantenerse 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. Además de cambiar regularmente su contraseña , esta es una buena práctica de seguridad que lo ayudará a evitar intrusiones en el sistema y vulnerabilidades de seguridad.

Tags: #HOW-TO

Jengibre 2.7.53.0

Jengibre 2.7.53.0

Ginger es un corrector ortográfico y gramatical gratuito.

Bloques

Bloques

Blocks es un juego intelectual para que los alumnos de 3º de primaria practiquen sus habilidades de detección y visión y está incluido por los profesores en el programa de apoyo a la enseñanza de TI.

Prezi 6.26

Prezi 6.26

Prezi es una aplicación gratuita que te permite crear presentaciones digitales, tanto online como offline.

Matemáticas

Matemáticas

Mathway es una aplicación muy útil que puede ayudarte a resolver todos aquellos problemas matemáticos que requieren una herramienta más compleja que la calculadora integrada en tu dispositivo.

Presentador de Adobe

Presentador de Adobe

Adobe Presenter es un software de aprendizaje electrónico lanzado por Adobe Systems y disponible en la plataforma Microsoft Windows como un complemento de Microsoft PowerPoint.

Tucán 2.3.0

Tucán 2.3.0

Toucan es una plataforma tecnológica educativa. Le permite aprender un nuevo idioma mientras navega por sitios web comunes y cotidianos.

ESetViet 24.2

ESetViet 24.2

eNetViet es una aplicación que ayuda a conectar a los padres con la escuela donde estudian sus hijos para que puedan comprender claramente la situación de aprendizaje actual de sus hijos.

Duolingo

Duolingo

Duolingo - Aprende Idiomas Gratis, o simplemente Duolingo, es un programa educativo que te permite aprender y practicar muchos idiomas diferentes.

Escritura rápida

Escritura rápida

RapidTyping es una herramienta de entrenamiento de teclado conveniente y fácil de usar que lo ayudará a mejorar su velocidad de escritura y reducir los errores ortográficos. Con lecciones organizadas para muchos niveles diferentes, RapidTyping le enseñará cómo escribir o mejorar sus habilidades existentes.

Matemáticas 7.4.10.53

Matemáticas 7.4.10.53

MathType es un software de ecuaciones interactivas del desarrollador Design Science (Dessci), que le permite crear y anotar notaciones matemáticas para procesamiento de textos, presentaciones, aprendizaje electrónico, etc. Este editor también se utiliza para crear documentos TeX, LaTeX y MathML.