“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.
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 SÍ 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.
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.
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ó.
Para ver la ejecución de las reglas de firewall activas:
Si desea vaciar las reglas de su firewall, ejecute el comando que se muestra a continuación.
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.
Después de instalar UFW, debe habilitarlo ejecutando lo que se muestra en la captura de pantalla a continuación.
Una vez que se instala UFW, puede abrir un puerto especificándolo, como se muestra a continuación.
Por ejemplo, para abrir el puerto 22, ejecute el siguiente comando.
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.
Al agregar una regla como la anterior, puede verificar si el puerto se abrió correctamente ejecutando el siguiente comando.
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.
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.
El siguiente ejemplo permite el tráfico UDP a través del puerto 1025.
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.
Nota : Para cerrar un puerto usando UFW, reemplace «permitir» con «denegar», como se muestra a continuación.
Para cerrar el puerto 22, ejecute:
O
Nota : para cerrar el puerto 22, asegúrese de desactivar el servicio ssh ejecutando el siguiente comando.
Nuevamente, verifico si mis reglas se agregaron correctamente ejecutando UFW seguido de la opción de 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.
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.
Puede definir un rango de puertos para abrir implementando dos puntos entre los puertos inicial y final, como se muestra a continuación.
Para guardar las reglas ejecute el comando que se muestra en la siguiente figura.
Para vaciar las reglas de Iptables, ejecute iptables seguido del indicador -F (vaciar).