En este artículo, le mostraremos cómo instalar y configurar UFW en un Ubuntu 18.04 VPS. Primero, nos tomaremos un momento para presentar y explicar qué son los firewalls, y luego le mostraremos cómo usar UFW y cómo realizar la configuración de UFW adecuada.
Un firewall es un programa de software que monitorea el tráfico de la red y previene el acceso no autorizado hacia o desde una red privada. En lo que respecta al kernel de Linux, se implementa un subsistema Netfilter, que se utiliza para manipular el tráfico de la red. Casi todas las soluciones modernas de firewall de Linux utilizan este sistema para filtrar paquetes de red. Además, 'iptables', una utilidad de firewall accesible desde la línea de comandos, también forma parte del marco de Netfilter. Para simplificar el proceso de creación de reglas de firewall, Canonical (los creadores de Ubuntu) desarrolló una interfaz de iptables llamada Uncomplicated Firewall (UFW).
Si está utilizando Ubuntu 18.04 y desea proteger su red sin tener que aprender a usar iptables, entonces UFW puede ser la solución adecuada que está buscando.
Requisitos
Para seguir este tutorial, necesitará un servidor con Ubuntu 18.04 y acceso SSH con el usuario root (o un usuario con privilegios sudo). Comencemos con el tutorial.
Paso 1:Conéctese a su servidor
Antes de comenzar, deberá conectarse a su servidor a través de SSH como root o usuario con privilegios sudo. Para hacer esto, use el siguiente comando:
ssh root@IP_Address -p Port_Number
por supuesto, deberá reemplazar IP_Address
y Port_Number
con la dirección IP de su servidor real y el número de puerto SSH.
Una vez que haya iniciado sesión, asegúrese de que su servidor esté actualizado ejecutando los siguientes comandos:
sudo apt update sudo apt upgrade
Paso 2:Instalar UFW
UFW ya debería estar instalado de forma predeterminada en Ubuntu 18.04, pero si por algún motivo no está instalado, puede instalarlo con este comando:
sudo apt install ufw
Una vez completada la instalación, puede verificar el estado de UFW con el comando:
sudo ufw status verbose
UFW por defecto está inicialmente deshabilitado, y si nunca lo activó antes, obtendrá el resultado:
Output Status: inactive
Si ya tiene UFW activado en su servidor, la salida se verá bastante diferente y se parecerá a lo siguiente:
Output: Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 443/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) 80/tcp (v6) ALLOW IN Anywhere (v6) 443/tcp (v6) ALLOW IN Anywhere (v6) ....
Paso 3:Políticas predeterminadas de UFW
Lo primero que debe saber son las políticas predeterminadas. De forma predeterminada, UFW está configurado para denegar todas las conexiones entrantes y permitir todas las conexiones salientes. En otras palabras, todas las conexiones que intentarán acceder a su servidor serán rechazadas y todas sus aplicaciones y servicios que se encuentren localmente en su servidor podrán llegar al mundo exterior y acceder a otros servidores.
Si desea verificar o cambiar las políticas predeterminadas, puede encontrarlas en /etc/default/ufw
archivo de configuración.
Para configurar estas reglas de UFW a su valor predeterminado, puede ejecutar los siguientes comandos:
sudo ufw default deny incoming sudo ufw default allow outgoing
Tenga en cuenta que los servidores generalmente necesitan responder a una solicitud entrante de los usuarios de Internet. Por lo tanto, en la mayoría de los casos, no puede configurar su firewall para bloquear todas las conexiones entrantes. En el próximo paso, aprenderemos cómo permitir conexiones específicas.
Paso 4:permitir conexiones SSH
Antes de habilitar UFW, debe permitir el acceso SSH en su servidor agregando una regla que permita las conexiones SSH entrantes. De lo contrario, quedará bloqueado y no podrá conectarse a su servidor Ubuntu.
Puede usar el siguiente comando para configurar el firewall UFW para permitir todas las conexiones SSH entrantes:
sudo ufw allow ssh
Luego recibirá el siguiente resultado:
Rules updated Rules updated (v6)
Tenga en cuenta que este comando es solo si su servidor escucha el puerto SSH estandarizado:22. Si el servicio SSH usa un puerto no estándar personalizado, deberá abrir ese puerto. Si el servicio SSH en su servidor usa un puerto único, por ejemplo, el puerto 900, puede usar el siguiente comando:
sudo ufw allow 900
Tenga en cuenta que necesitará saber qué número de puerto usa actualmente su servicio.
Paso 5:habilitar UFW
Ahora que su firewall está configurado para permitir conexiones SSH y está seguro de que su conexión SSH actual no se verá afectada, puede continuar habilitando el firewall UFW.
sudo ufw enable
Después de lo cual recibirá el siguiente resultado:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Recibirá una advertencia que le indicará que debe haber configurado las reglas SSH permitidas; de lo contrario, se cerrará la conexión SSH existente. Como ya lo ha hecho, escriba [y] y continúe con [Enter].
Paso 6:permitir conexiones en puertos específicos
Es posible que las aplicaciones y los servicios que utilice necesiten tener sus puertos abiertos para las conexiones entrantes y salientes, según el propósito de la aplicación. Los puertos más comunes que deberá desbloquear son los puertos 80 y 443, que utiliza el servidor web, y 25, 110, 143, 587 y 993, que utiliza el servidor de correo.
Le mostraremos algunos ejemplos de cómo permitir conexiones entrantes para algunos servicios comunes.
Para permitir todas las conexiones HTTP (puerto 80), ejecute este comando:
sudo ufw allow http
Además, si desea especificar el puerto, puede aplicar lo que es esencialmente la misma regla pero con una sintaxis diferente:
sudo ufw allow 80
Para permitir todas las conexiones HTTPS (puerto 443), ejecute el comando:
sudo ufw allow https
Además, si desea especificar el puerto HTTPS, puede aplicar la regla con una sintaxis diferente:
sudo ufw allow 443
Si está utilizando un servidor de correo, algunas de las siguientes reglas podrían ser útiles.
Para permitir todos los SMTP entrantes, puede ejecutar el comando:
sudo ufw allow 25
Para permitir todas las conexiones IMAP entrantes, ejecute el comando:
sudo ufw allow 143
Y para permitir todas las solicitudes IMAPS entrantes, puede usar el comando:
sudo ufw allow 993
Si está utilizando POP3 en su lugar, este comando a continuación permitirá todas las conexiones entrantes:
sudo ufw allow 110
Y para todas las solicitudes POP3S entrantes, use este siguiente comando:
sudo ufw allow 995
Finalmente, si está ejecutando un programa específico que requiere acceso web, también deberá habilitar el puerto específico para ese programa. Por ejemplo, si ejecuta Tomcat en su servidor, necesitará el puerto 8080. Puede permitir todas las conexiones entrantes a este puerto con el comando:
sudo ufw allow <port number>
Puede hacer esto para todos los puertos específicos que pueda necesitar.
Paso 7:permitir intervalos de puertos
UFW también puede permitir el acceso a rangos de puertos en lugar de permitir el acceso a un solo puerto. Cuando desee permitir rangos de puertos en el puerto UFW, debe especificar el rango del puerto y el protocolo, ya sea TCP o UDP.
Por ejemplo, si desea permitir los puertos del 8069 al 8080 tanto para TCP como para UDP, puede usar los siguientes comandos:
sudo ufw allow 8069:8080/tcp sudo ufw allow 8069:8080/udp
Paso 8:permitir direcciones IP específicas
Si desea permitir que solo una dirección IP (por ejemplo, una máquina confiable que se encuentra en su red local) pueda acceder a todos los puertos, puede usar el comando:
sudo ufw allow from 206.207.208.209
Además de esto, ¡también puede permitir una dirección IP específica a un puerto en particular! Digamos que desea permitir que una dirección IP específica use el puerto MySQL (MySQL usa el puerto 3306), entonces simplemente puede usar este comando:
sudo ufw allow from 206.207.208.209 to any port 3306
Paso 9:Denegar conexiones
Como se mencionó anteriormente en el Paso 3 , la política predeterminada para las conexiones entrantes se establece en "denegar". Sin embargo, a veces es posible que deba denegar conexiones específicas según la dirección IP de origen o el puerto específico.
La regla de denegación es muy útil si tiene un ataque a su servidor desde una dirección IP específica y sus puertos 80 y 443 están abiertos. En este caso, puede bloquear esa dirección IP usando el siguiente ejemplo. Por supuesto, no olvide cambiar la dirección IP 24.25.26.27 con la dirección IP real que desea bloquear:
sudo ufw deny from 24.25.26.27
Esto bloqueará el acceso de la dirección IP a todos sus puertos abiertos. Sin embargo, si desea bloquear la dirección IP para que no pueda acceder a un puerto en particular, puede usar el siguiente ejemplo:
sudo ufw deny from 24.25.26.27 to any port 80 sudo ufw deny from 24.25.26.27 to any port 443
Como puede notar, la creación de reglas de denegación es similar a las reglas para permitir.
Paso 10:eliminar reglas de UFW
La importancia de eliminar reglas UFW es tan importante como crearlas. Hay dos formas diferentes de eliminar una regla UFW. El primer método es usando el número de regla, y el segundo es especificando la regla real.
Si desea eliminar la regla UFW con números, necesitará saber el número de la regla. Para enumerar los números de regla, puede usar el comando:
sudo ufw status numbered
Output: Status: active To Action From -- ------ ---- [ 1] 80 ALLOW IN Anywhere [ 2] 443 ALLOW IN Anywhere [ 3] 22 ALLOW IN Anywhere [ 4] Anywhere ALLOW IN 206.207.208.209 [ 5] 7022 ALLOW IN Anywhere [ 6] 8069 ALLOW IN Anywhere ...
Para eliminar la regla etiquetada como regla número 4, que permite conexiones desde la dirección IP 206.207.208.209, puede usar el comando:
sudo ufw delete 4
Si desea utilizar el segundo método, que consiste en eliminar una regla especificando la regla real. Digamos que desea cerrar el puerto 8069, por ejemplo; en ese caso, usaría el siguiente comando:
sudo ufw delete allow 8069
Paso 11:deshabilitar o restablecer UFW
Si por alguna razón necesita detener todas las reglas de UFW en su servidor, puede desactivarlas usando el comando:
sudo ufw disable
Esto detendrá todas las reglas que estaban actualmente activas en su servidor. Sin embargo, si necesita reactivar las reglas del cortafuegos, simplemente puede habilitarlo de nuevo.
sudo ufw enable
Si por alguna razón desea eliminar todas las reglas y comenzar con un UFW nuevo, puede usar el siguiente comando:
sudo ufw reset
Tenga en cuenta que las políticas predeterminadas no cambiarán a su configuración original si ya se han modificado.
En este artículo, le mostramos cómo instalar UFW y luego usarlo para configurar un firewall en Ubuntu 18.04. Ahora puede usar el conocimiento de esta guía para comenzar a crear sus propias reglas de firewall UFW y proteger su servidor.
Por supuesto, si usted es uno de nuestros clientes de Managed Ubuntu Hosting, no tiene que configurar su firewall con UFW en su servidor; simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores configurarán las reglas del cortafuegos en su servidor inmediatamente.
PD. Si le gustó esta publicación sobre cómo configurar un firewall con UFW en Ubuntu 18.04, compártala con sus amigos en las redes sociales utilizando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.