26.12.2023

UFW básico (sin complicaciones) Firewall) comandos

Introducción

El valor por defecto firewall herramienta de configuración para Ubuntu es ufw. Diseñado para simplificar iptables firewall configuración, ufw proporciona una manera conveniente de crear una IPv4 o basado en host IPv6 firewall. De forma predeterminada, UFW está deshabilitado.

Si su versión no tiene instalado ufw, puede instalarlo usando el comando:

sudo apt actualizar && sudo apt instalar ufw

Comprobación de estado de UFW

Compruebe que el firewall está encendido, use este comando:

sudo ufw estado


El resultado mostrará si su firewall está activo o no.

Encendido de UFW

Si obtienes un Estado: inactivo mensaje al ejecutar el comando ufw status, significa que el firewall aún no está habilitado en el sistema. Deberá ejecutar un comando para habilitarlo.

De manera predeterminada, cuando UFW está habilitado, bloquea el acceso externo a todos los puertos del servidor. En la práctica, esto significa que si te conectas a un servidor a través de SSH y habilite ufw antes de permitir el acceso en el SSH puerto, será desconectado.

Para habilitar UFW en su sistema, ejecute el comando:

sudo ufw enable

Verás un resultado similar a este.

Para ver lo que está actualmente bloqueado o permitido, puede usar el verboso parametro al correr ufw estado como se muestra a continuación:

sudo ufw estado detallado

Apagar el UFW

Si por alguna razón necesita deshabilitar el firewall, puedes hacerlo con el siguiente comando:

sudo ufw disable

Tenga cuidado, este comando deshabilitará completamente el firewall servicio en su sistema!

Bloquear una dirección IP para que no sea direccionada

Para bloquear todas las conexiones de red originalesnating desde una dirección IP específica, ejecute el siguiente comando, reemplazando la dirección IP asignada con la dirección IP que desea bloquear:

sudo ufw negar desde 91.198.174.190


En este ejemplo, de 91.198.174.190 indica la dirección IP de origen "91.198.174.190".

sudo ufw estado

Si ejecuta este comando, verá que la dirección IP especificada está en la lista prohibida:

Todas las conexiones, entrantes y salientes, están bloqueadas para la dirección IP especificada.

Bloquear la subred

Si necesita bloquear toda la subred, puede usar la dirección de la subred como el "desde" parameter en el comando ufw deny. Esto bloqueará todas las direcciones IP en la subred de ejemplo 91.198.174.0/24:

sudo ufw negar desde 91.198.174.0/24

Bloqueo de conexiones entrantes a la interfaz de red

Para bloquear las conexiones entrantes desde una dirección IP específica a una interfaz de red específica, ejecute el siguiente comando, reemplazando la dirección IP con la dirección IP que desea bloquear:

sudo ufw negar entrada en eth0 desde 91.198.174.192

El "en" paraméter le dice a la firewall para aplicar la regla solo a las conexiones entrantes, y el "on eth0" parameter le dice que la regla se aplica solo a la interfaz eth0.

Esto puede ser útil si tiene un sistema con varias interfaces de red (incluidas las interfaces virtuales) y necesita bloquear el acceso externo a algunas de esas interfaces, pero no a todas.

Permitir conversiones de direcciones IP

Para permitir todas las conexiones de red originating desde una dirección IP específica, ejecute el siguiente comando, reemplazando la dirección IP asignada con la dirección IP a la que desea permitir el acceso:

sudo ufw permite desde 91.198.174.192

Si ahora ejecuta "sudo ufw status", verá un resultado similar a este, con PERMITIR junto a la dirección IP que acaba de agregar.

sudo ufw estado

También puede permitir conexiones desde una subred completa especificando la máscara de subred adecuada para el host, por ejemplo, 91.198.174.0/24.

Permitir conexiones entrantes a la interfaz de red

Para permitir conexiones entrantes desde una dirección IP específica a una interfaz de red específica, ejecute el siguiente comando, reemplazando la dirección IP con la que desea permitir:

sudo ufw permite entrar en eth0 desde 91.198.174.22

El "en" paraméter le dice a la firewall aplicar la regla solo a las conexiones entrantes y el "on eth0" parameter especifica que la regla se aplica solo a la interfaz "eth0".

sudo ufw estado

Si ejecuta el comando, verá un resultado similar a este:

Quitar un firewall gobernar

Para eliminar una regla previamente instalada en UFW, use "eliminar ufw", luego ingrese la regla (permitir / denegar) y la especificación de destino. El siguiente ejemplo elimina una regla establecida previamente para permitir todas las conexiones desde la dirección IP 91.198.174.192:

sudo ufw eliminar permitir de 91.198.174.192

Otra forma de especificar qué regla desea eliminar es especificar el ID de la regla. Esta información se puede obtener usando el siguiente comando:

sudo ufw estado numerado

En la salida puede ver que hay dos reglas activas. La primera regla niega todas las conexiones provenientes de la dirección IP 91.198.174.190. La segunda regla permite conexiones en la interfaz eth0 provenientes de la dirección IP 91.198.174.22.

Ya que por defecto el firewall ya bloquea todo el acceso externo a menos que esté explícitamente permitido, la primera regla es redundante, por lo que se puede eliminar. Para eliminar una regla según su ID, ejecute el comando:

sudo ufw borrar 1

Se le pedirá que confirme la operación y se asegure de que el ID que especifique se relacione con la regla correcta que desea eliminar.

Si vuelve a enumerar sus reglas con el estado "sudo ufw", verá que la regla se ha eliminado.

Lista de perfiles de aplicación disponibles

Al instalar aplicaciones que se basan en comunicaciones de red, es común configurar un firewall perfil que se puede utilizar para permitir conexiones desde direcciones externas. A menudo, esto es lo mismo que ejecutar "ufw allow from", con la ventaja de que es un atajo que abstrae los números de puerto específicos utilizados por el servicio y proporciona una nomenclatura conveniente para los servicios de referencia.

sudo ufw lista de aplicaciones

Si ha instalado un servicio, como un servidor web u otro software dependiente de la red, y el perfil no estaba disponible en el firewall, primero asegúrese de que el servicio esté habilitado.

Para servidores remotos AbiertoSSH suele estar disponible:

Incluir un perfil para una aplicación específica

Para habilitar un firewall perfil de aplicación, ejecute el comando "ufw allow" seguido del nombre del perfil de aplicación que desea habilitar, que se puede obtener con el comando:

sudo ufw lista de aplicaciones

En el siguiente ejemplo, habilitamos el OpenSSH perfil, que permitirá a todos los entrantes SSH conexiones en el estándar SSH Puerto.

sudo ufw permitir AbrirSSH

Desactivar un perfil para una aplicación específica

Para deshabilitar un perfil de aplicación que configuró previamente en el firewall, debe eliminar la regla correspondiente. Por ejemplo, considere el siguiente resultado de "sudo ufw status"

sudo ufw estado

Esta salida indica que el "Nginx El perfil de la aplicación Full" está actualmente habilitado, lo que permite cualquier conexión al servidor web a través de ambos HTTP y HTTPS.

Si desea permitir sólo HTTPS solicitudes a su servidor web, primero debe habilitar la regla más restrictiva, que en este caso es "Nginx HTTPS", y luego deshabilite la regla activa "Nginx Completo":

sudo ufw permitir "Nginx HTTPS"
sudo ufw eliminar permitir "Nginx Completo"

Recuerda que puedes listar todos los perfiles de aplicaciones disponibles con:

sudo ufw lista de aplicaciones

permitir SSH

Cuando trabaje con servidores remotos, deberá asegurarse de que el SSH El puerto está abierto para conexiones para que pueda iniciar sesión de forma remota en su servidor.

El siguiente comando habilitará el OpenSSH perfil de aplicación para el firewall y permitir todas las conexiones al valor predeterminado SSH puerto en el servidor:

sudo ufw permitir AbrirSSH

Aunque menos fácil de usar, un alternatLa sintaxis principal es especificar el número de puerto exacto del SSH servicio, que generalmente se establece en 22 de forma predeterminada:

sudo ufw permite 22

Permitir entrada SSH desde una dirección IP o subred específica

Para permitir conexiones entrantes desde una dirección IP o subred específica, incluirá la directiva "from" para definir el origen de la conexión. Esto requiere que también especifique el destino.natdirección de iones con el pa "a"raméter Para bloquear esta regla para SSH solo, limite "proto" (protocolo) a "tcp" y luego use el "port" parametro y configúrelo en 22, el valor predeterminado SSH Puerto.

El siguiente comando solo permitirá SSH origen de las conexionesnating desde la dirección IP 91.198.174.33:

sudo ufw permite desde 91.198.174.33 proto tcp a cualquier puerto 22

También puede usar la dirección de subred como el pa "de"rameter para permitir la entrada SSH conexiones de toda la red:

sudo ufw permite desde 91.198.174.0/24 proto tcp a cualquier puerto 22

Permitir Rsync entrante desde una dirección IP o subred específica

Rsync, que se ejecuta en el puerto 873, se puede usar para transferir archivos de una computadora a otra.

Para permitir conexiones rsync entrantes desde una dirección IP o subred en particular, use el from parameter para especificar la dirección IP de origen y el puerto paraméter para configurar el destinonatpuerto de iones a 873. El siguiente comando solo permitirá conexiones Rsync provenientes de la dirección IP 91.198.174.33:

sudo ufw permite desde 91.198.174.33 a cualquier puerto 873

Para permitir que toda la subred 91.198.174.0/24 "rsync" con su servidor, ejecute el comando:

sudo ufw permite desde 91.198.174.0/24 a cualquier puerto 873

Permitir Nginx HTTP / HTTPS

Al instalar el Nginx servidor web, instala varios firewall perfiles dentro del servidor. Después de instalar y habilitar Nginx como servicio, ejecute el siguiente comando para determinar qué perfiles están disponibles:

lista de aplicaciones sudo ufw | grep Nginx

Permitir HTTP y HTTPTráfico S, seleccione Nginx Full. De lo contrario, seleccione cualquiera Nginx HTTP para permitir HTTP solo, o Nginx HTTPS para permitir HTTPS solamente.

El siguiente comando permitirá HTTP y HTTPTráfico S en el servidor (puertos 80 y 443):

sudo ufw permitir "Nginx Completo"

Permitir Apache HTTP / HTTPS

Durante la instalación el Apache El servidor web instala varios perfiles UFW diferentes dentro del servidor. Después de instalar y habilitar Apache como servicio, ejecute el siguiente comando para determinar qué perfiles están disponibles:

lista de aplicaciones sudo ufw | grep Apache

Para permitir HTTP y HTTPS tráfico, seleccione "Apache Completo". De lo contrario, seleccione "Apache" para HTTP o "Apache Seguro" para HTTPS.

El siguiente comando permitirá HTTP y HTTPTráfico S en el servidor (puertos 80 y 443):

sudo ufw permitir "Apache Completo"

Permitir todas las entradas HTTP (puerto 80)

servidores web como Apache y Nginx normalmente escucha por HTTP solicitudes en el puerto 80. Si su política predeterminada para el tráfico entrante está configurada para rechazar o denegar, debe crear una regla UFW para permitir el acceso externo al puerto 80. Puede usar el número de puerto o el nombre del servicio (http) como el parametro de este mandato.

Para permitir todas las entradas HTTP conexiones (puerto 80), ejecute el comando:

sudo ufw permitir http

un alternatLa sintaxis principal es especificar el número de puerto del HTTP servicio:

sudo ufw permite 80

Permitir todas las entradas HTTPS (puerto 443)

HTTPS normalmente se ejecuta en el puerto 443. Si su política predeterminada para el tráfico entrante está configurada para rechazar o denegar, debe crear una regla UFW para permitir el acceso externo en el puerto 443. Puede usar el número de puerto o el nombre del servicio (https) como el parametro de este mandato.

Para permitir todas las entradas HTTPLas conexiones S (puerto 443) ejecutan este comando:

sudo ufw permitir https

un alternatLa sintaxis principal es especificar el número de puerto del HTTPservicio S:

sudo ufw permite 443

Permitir todas las entradas HTTP y HTTPS

Si quieres permitir HTTP y HTTPS tráfico, puede crear una regla que permita ambos puertos. Este uso requiere que también definas el protocolo usando el "proto" parameter, que en este caso debe establecerse en tcp.

Para permitir todas las entradas HTTP y HTTPConexiones S (puertos 80 y 443), ejecute el comando:

sudo ufw permite proto tcp desde cualquier a cualquier puerto 80,443

Permitir la conexión a MySQL desde una dirección IP o subred específica

MySQL escucha por cliconexiones ent en el puerto 3306. Si su MySQL servidor de base de datos es utilizado por un clien un servidor remoto, debe crear una regla UFW para permitir dicho acceso.

Para permitir la entrada MySQL conexiones desde una dirección IP o subred en particular, use el from parameter para especificar la dirección IP de origen y el "puerto" paraméter para establecer destinonatpuerto iónico 3306.

El siguiente comando permitirá que la dirección IP 91.198.174.33 se conecte al MySQL Puerto de servicio:

sudo ufw permite desde 91.198.174.33 a cualquier puerto 3306

Para permitir que toda la subred 91.198.174.0/24 se conecte a su MySQL servidor, ejecute el comando:

sudo ufw permite desde 91.198.174.0/24 a cualquier puerto 3306

Permitir la conexión a PostgreSQL desde una dirección IP o subred específica

PostgreSQL escucha por cliconexiones ent en el puerto 5432. Si su PostgreSQL servidor de base de datos es utilizado por un client en un servidor remoto, debe permitir este tráfico.

Para permitir la entrada PostgreSQL conexiones desde una dirección IP o subred en particular, especifique la fuente con el from parameter y configure el puerto en 5432:

sudo ufw permite desde 91.198.174.33 a cualquier puerto 5432

Para permitir que toda la subred 91.198.174.0/24 se conecte a su PostgreSQL servidor, ejecute el comando:

sudo ufw permite desde 91.198.174.0/24 a cualquier puerto 5432

Permitir la conexión a PostgreSQL desde una dirección IP o subred específica

Los servidores de correo como Sendmail y Postfix normalmente usan el puerto 25 para el tráfico SMTP. Si se supone que su servidor no debe enviar correo saliente, puede bloquear este tipo de tráfico. Para bloquear las conexiones SMTP salientes, ejecute el comando:

sudo ufw negar 25

Esto configurará su firewall para bloquear todo el tráfico saliente en el puerto 25. Si necesita rechazar las conexiones salientes en un número de puerto diferente, puede repetir este comando y reemplazar 25 con el número de puerto que desea bloquear.

Conclusión

UFW es una poderosa herramienta que, cuando se configura correctamente, puede mejorar significativamente la seguridad de sus servidores. Esta guía cubre algunas reglas comunes de UFW que a menudo se usan para configurar el firewall in Ubuntu. La mayoría de los comandos de esta guía se pueden adaptar para diferentes casos de uso y escenarios cambiando parametros como la dirección IP de origen y/o destinonatpuerto de iones Para más información sobre cada comando parameter y los modificadores disponibles puede utilizar el hombre utilidad para consultar el manual de UFW:

hombre ufw