3 formas de abrir puertos en Linux

“Este tutorial explica cómo abrir puertos en la mayoría de las distribuciones de Linux usando diferentes técnicas.

Después de leer este tutorial, podrá abrir puertos fácilmente en distribuciones específicas de Linux y una forma universal de abrirlos en todas las distribuciones.

Los cortafuegos descritos en este documento incluyen Nftables, UFW (Debian/Ubuntu) e Iptables .

Cada paso explicado en este artículo contiene capturas de pantalla, lo que facilita su implementación para todos los usuarios de Linux.

Nota : asegúrese de que los servicios para puertos abiertos estén activos”.

Cómo abrir puertos usando Nftables

Nftables es el reemplazo de Iptables. Hoy, Nftables se volvió más importante que el firewall Iptables descontinuado.

Nuevas versiones de distribución como Debian ya traen Nftables.

Todavía puede usar Iptables y su interfaz UFW (Firewall sin complicaciones), que simplifica todas las tareas. Ambos también se explican en este tutorial después de esta sección dedicada a Nftables.

Para comenzar, asegúrese de que Nftables y todas las dependencias estén instaladas. En las distribuciones de Linux basadas en Debian, ejecute el comando que se muestra en la siguiente captura de pantalla.

sudo apt instalar nftables

Durante el proceso de instalación, se le solicitará confirmación para reiniciar algunos programas y servicios. Presione ENTRAR .

En caso de que se actualicen para su biblioteca simplista, presione si se le solicita actualizarla.

Cuando se le pregunte si reinicia los servicios nuevamente, presione ENTER .

Una vez que se instala Nftables, puede comenzar a escribir su firewall y definir los puertos para que permanezcan abiertos.

sudo nftablesrules.txt

A continuación, puede ver un firewall Nftables simple con una política restrictiva, eliminando todo el tráfico excepto los puertos abiertos definidos 80, 443, 53 y 22. Todas las líneas ejecutables se explican en los comentarios.

#Las primeras dos líneas ejecutables definen la red local (LinuxHintNet) y #algunos puertos (80,443,22) para habilitar el tráfico a través de ellos en las reglas a continuación.
define LinuxHintNet = 192.168.0.0 / 16
define AllowPorts = { 80 , 443 , 53 , 22 }
#Declaro una nueva tabla que contiene cadenas y reglas. Llamé a esta tabla #»Restrictiva»; el nombre es arbitrario. El «inet» aplica reglas tanto para #IPv4 como para IPv6. Para IPv6 solo use «ip6» o use «ip» IPv4.
agregar tabla inet Restrictiva
# Una vez que se definió la tabla a continuación, agregué tres cadenas, Entrante, Redirigir y Saliente. Sus nombres también son arbitrarios. Todos descartan el tráfico entrante, saliente y de reenvío como política predeterminada.
agregar cadena inet Restrictive Incoming   { type filter hook entrada prioridad 0 ; caída de la política; }
agregue la cadena inet Redirección restrictiva   { escriba el gancho de filtro prioridad de reenvío 0 ; caída de la política; }
agregue la cadena inet Restrictive Outgoing   { type filter hook prioridad de salida 0 ; caída de la política; }
# A continuación, se agregaron dos reglas que permiten el tráfico de bucle invertido.
add rule inet Restrictive Incoming iifname lo counter accept
add rule inet Restrictive Incoming oifname lo counter accept
# También agregué reglas para permitir el tráfico a través de los puertos que definí en la variable #AllowPorts.
añadir regla inet Restrictivo Entrante tcp sport $AllowPorts contador aceptar
añadir regla inet Restrictivo Saliente tcp dport $AllowPorts contador aceptar
añadir regla inet Restrictivo Entrante udp sport $AllowPorts contador aceptar
añadir regla inet Restrictivo Saliente udp dport $AllowPorts contador aceptar

A continuación puede ver una captura de pantalla del cortafuegos.

Después de guardar el archivo, ejecute el firewall usando el siguiente comando, donde » nftablesrules.txt » debe reemplazarse con el nombre del archivo que creó.

sudo nft -f nftablesrules.txt

Para ver la ejecución de las reglas de firewall activas:

conjunto de reglas de la lista sudo nft

Si desea vaciar las reglas de su firewall, ejecute el comando que se muestra a continuación.

conjunto de reglas de descarga sudo nft

Ahora, exploremos la opción más simple con UFW.

Cómo abrir puertos con UFW (cortafuegos sin complicaciones)

Esta sección explica cómo abrir puertos en distribuciones de Linux basadas en Debian como Ubuntu usando UFW (Firewall sin complicaciones) , que, como su nombre lo indica, es una interfaz de Iptables fácil de usar para crear reglas de firewall, incluidas estas que necesitamos para abrir puertos. en Debian/Ubuntu Linux.

Nota : para abrir puertos, además de las reglas de firewall, asegúrese de que el servicio que desea habilitar esté activo.

Si UFW no está instalado en su sistema, puede obtenerlo usando el administrador de paquetes apt ejecutando el siguiente comando.

sudo apt instalar ufw

Después de instalar UFW, debe habilitarlo ejecutando lo que se muestra en la captura de pantalla a continuación.

habilitar sudo ufw

Una vez que se instala UFW, puede abrir un puerto especificándolo, como se muestra a continuación.

sudo UFW permitir < Puerto >

Por ejemplo, para abrir el puerto 22, ejecute el siguiente comando.

sudo ufw permitir 22

También puede abrir un puerto especificando el servicio o protocolo en lugar del número de puerto, como se muestra en la imagen a continuación.

sudo UFW permitir ssh

Al agregar una regla como la anterior, puede verificar si el puerto se abrió correctamente ejecutando el siguiente comando.

sudo ufw estado

Pero incluso si el firewall permite el tráfico, debe verificar si el servicio deseado se está ejecutando y el puerto está abierto; puede ejecutar el comando que se muestra a continuación.

sudo netstat -tulpn | grep ESCUCHAR

Como puede ver en la imagen de arriba, el puerto está escuchando.

Con UFW (y todos los firewalls), puede especificar el protocolo a través del cual permite el tráfico en un puerto específico. Simplemente agregue una barra después del número de puerto o el nombre del servicio seguido del protocolo. En el siguiente ejemplo, el puerto 80 está en el protocolo TCP.

sudo ufw permitir 80 / tcp

El siguiente ejemplo permite el tráfico UDP a través del puerto 1025.

sudo ufw permitir 1025 / udp

Para permitir el tráfico a través de un puerto desde una dirección IP específica, use la siguiente sintaxis, donde la dirección IP y el número de puerto deben reemplazarse con su IP/Puerto deseado.

sudo ufw permite desde 172.64.175.28 a cualquier puerto 21

Nota : Para cerrar un puerto usando UFW, reemplace «permitir» con «denegar», como se muestra a continuación.

sudo ufw negar < puerto >

Para cerrar el puerto 22, ejecute:

sudo ufw negar 22

O

sudo ufw denegar ssh

Nota : para cerrar el puerto 22, asegúrese de desactivar el servicio ssh ejecutando el siguiente comando.

sudo systemctl parada 22

Nuevamente, verifico si mis reglas se agregaron correctamente ejecutando UFW seguido de la opción de estado .

sudo ufw estado

Esa es la forma más fácil de abrir puertos en Linux.

Apertura de puertos en todas las distribuciones de Linux (Iptables)

Esta sección muestra cómo abrir puertos usando Iptables, el firewall detrás de la interfaz UFW explicada anteriormente.

La siguiente regla permite el tráfico TCP entrante (ENTRADA) a través del puerto 22. Reemplace «22» con el número de puerto que necesita abrir.

sudo iptables -A ENTRADA -p tcp –dport 22 -j ACEPTAR

El comando sudo iptables -S le permite ver las reglas de firewall activas. Como puede ver arriba, la línea agregada está activa.

La siguiente línea permite el tráfico saliente (SALIDA) a través del puerto 22.

sudo iptables -A SALIDA -p tcp –dport 22 -j ACEPTAR

Puede definir un rango de puertos para abrir implementando dos puntos entre los puertos inicial y final, como se muestra a continuación.

sudo  iptables -A INPUT -p tcp –destination-port 21 : 25 -j ACEPTAR

Para guardar las reglas ejecute el comando que se muestra en la siguiente figura.

sudo iptables-guardar

Para vaciar las reglas de Iptables, ejecute iptables seguido del indicador -F (vaciar).

sudo iptables -F