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:
Comprobación de estado de UFW
Compruebe que el firewall está encendido, use este comando:
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:
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:
Apagar el UFW
Si por alguna razón necesita deshabilitar el firewall, puedes hacerlo con el siguiente comando:
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:
En este ejemplo, de 91.198.174.190 indica la dirección IP de origen "91.198.174.190".
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:
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:
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:
Si ahora ejecuta "sudo ufw status", verá un resultado similar a este, con PERMITIR junto a la dirección IP que acaba de agregar.
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:
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".
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:
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:
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:
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.
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:
En el siguiente ejemplo, habilitamos el OpenSSH perfil, que permitirá a todos los entrantes SSH conexiones en el estándar SSH Puerto.
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"
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 eliminar permitir "Nginx Completo"
Recuerda que puedes listar todos los perfiles de aplicaciones disponibles con:
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:
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:
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:
También puede usar la dirección de subred como el pa "de"rameter para permitir la entrada SSH conexiones de toda la red:
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:
Para permitir que toda la subred 91.198.174.0/24 "rsync" con su servidor, ejecute el comando:
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:
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):
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:
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):
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:
un alternatLa sintaxis principal es especificar el número de puerto del HTTP servicio:
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:
un alternatLa sintaxis principal es especificar el número de puerto del HTTPservicio S:
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:
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:
Para permitir que toda la subred 91.198.174.0/24 se conecte a su MySQL servidor, ejecute el comando:
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:
Para permitir que toda la subred 91.198.174.0/24 se conecte a su PostgreSQL servidor, ejecute el comando:
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:
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: