A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.
En este artículo, explicaremos cómo instalar y configurar un firewall UFW en las distribuciones Ubuntu y Debian.
Prerrequisitos
Antes de comenzar con este artículo, asegúrate de haber iniciado sesión en tu servidor Ubuntu o Debian con un usuario sudo o con la cuenta de root. Si no tienes un usuario sudo, puedes crear uno siguiendo las siguientes instrucciones como usuario root.
# adduser username # usermod -aG sudo username # su - username $ sudo whoami
Instalar el Firewall UFW en Ubuntu y Debian
El firewall UFW (Uncomplicated Firewall) debería estar instalado por defecto en Ubuntu y Debian, si no lo está, instálalo utilizando el gestor de paquetes APT con el siguiente comando.
$ sudo apt install ufw
Verificar el Firewall UFW
Una vez completada la instalación, puedes verificar el estado de UFW escribiendo el siguiente comando.
$ sudo ufw status verbose
En la primera instalación, el firewall UFW está desactivado de forma predeterminada, la salida será similar a la siguiente.
Status: inactive
Activar el Firewall UFW
Puedes activar o habilitar el firewall UFW utilizando el siguiente comando, que carga el firewall y lo habilita para iniciar en el arranque.
$ sudo ufw enable
Para desactivar el firewall UFW, utiliza el siguiente comando, que descarga el firewall y lo deshabilita para iniciar en el arranque.
$ sudo ufw disable
Políticas Predeterminadas de UFW
Por defecto, el firewall UFW deniega todas las conexiones entrantes y solo permite todas las conexiones salientes al servidor. Esto significa que nadie puede acceder a su servidor a menos que abra específicamente el puerto, mientras que todos los servicios o aplicaciones en ejecución en su servidor pueden acceder a la red externa.
Las políticas predeterminadas de UFW se encuentran en el archivo /etc/default/ufw
y se pueden modificar utilizando el siguiente comando.
$ sudo ufw default deny incoming $ sudo ufw default allow outgoing
Perfiles de aplicación de UFW
Al instalar un paquete de software utilizando el administrador de paquetes APT, incluirá un perfil de aplicación en el directorio /etc/ufw/applications.d
que define el servicio y mantiene la configuración de UFW.
Puede ver todos los perfiles de aplicaciones disponibles en su servidor utilizando el siguiente comando.
$ sudo ufw app list
Según los paquetes de software instalados en su sistema, el resultado será similar al siguiente:
Available applications: APACHE APACHE Full APACHE SECURE CUPS OpenSSH Postfix Postfix SMTPS Postfix Submission
Si desea obtener más información sobre un perfil en particular y las reglas definidas, puede utilizar el siguiente comando.
$ sudo ufw app info 'Apache'
Profile: Apache Title: Web Server Description: Apache V2 is the next generation f the omnipresent Apache web server. Ports: 80/tcp
Habilitar IPv6 con UFW
Si su servidor está configurado con IPv6, asegúrese de que su UFV esté configurado con el soporte IPv6 y IPv4. Para verificarlo, abra el archivo de configuración de UFW utilizando su editor favorito.
$ sudo vi /etc/default/ufw
Asegúrese de que “IPV6” esté establecido en "sí"
en el archivo de configuración, como se muestra.
IPV6=yes
Guarde y salga. Luego, reinicie su firewall con los siguientes comandos:
$ sudo ufw disable $ sudo ufw enable
Permitir conexiones SSH en UFW
Si has activado el firewall UFW hasta ahora, bloquearía todas las conexiones entrantes y si estás conectado a tu servidor a través de SSH desde una ubicación remota, ya no podrás volver a conectarte.
Vamos a habilitar las conexiones SSH a nuestro servidor para evitar que esto ocurra utilizando el siguiente comando:
$ sudo ufw allow ssh
Si estás utilizando un puerto SSH personalizado (por ejemplo, el puerto 2222), entonces necesitas abrir ese puerto en el firewall UFW utilizando el siguiente comando.
$ sudo ufw allow 2222/tcp
Para bloquear todas las conexiones SSH, escribe el siguiente comando.
$ sudo ufw deny ssh/tcp $ sudo ufw deny 2222/tcp [If using custom SSH port]
Habilitar Puertos Específicos en UFW
También puedes abrir un puerto específico en el firewall para permitir conexiones a través de él a un determinado servicio. Por ejemplo, si deseas configurar un servidor web que escuche en el puerto 80 (HTTP) y 443 (HTTPS) por defecto.
A continuación se muestran algunos ejemplos de cómo permitir conexiones entrantes a los servicios de Apache.
Abrir Puerto 80 HTTP en UFW
$ sudo ufw allow http [By service name] $ sudo ufw allow 80/tcp [By port number] $ sudo ufw allow 'Apache' [By application profile]
Abrir Puerto 443 HTTPS en UFW
$ sudo ufw allow https $ sudo ufw allow 443/tcp $ sudo ufw allow 'Apache Secure'
Permitir Rangos de Puertos en UFW
Suponiendo que tienes algunas aplicaciones que deseas ejecutar en un rango de puertos (5000-5003), puedes agregar todos estos puertos utilizando los siguientes comandos.
sudo ufw allow 5000:5003/tcp sudo ufw allow 5000:5003/udp
Permitir Direcciones IP Específicas
Si deseas permitir conexiones en todos los puertos desde una dirección IP específica 192.168.56.1, entonces necesitas especificar “from” antes de la dirección IP.
$ sudo ufw allow from 192.168.56.1
Permitir Direcciones IP Específicas en un Puerto Específico
Para permitir la conexión en un puerto específico (por ejemplo, puerto 22) desde la máquina de su hogar con la dirección IP de 192.168.56.1, entonces necesitará agregar cualquier puerto y el número de puerto después de la dirección IP, como se muestra.
$ sudo ufw allow from 192.168.56.1 to any port 22
Permitir Subredes de Red a Puerto Específico
Para permitir conexiones desde direcciones IP particulares que van desde 192.168.1.1 hasta 192.168.1.254 hacia el puerto 22 (SSH), ejecute la siguiente orden.
$ sudo ufw allow from 192.168.1.0/24 to any port 22
Permitir Interfaz de Red Específica
Para permitir conexiones a una interfaz de red específica eth2 para un puerto particular 22 (SSH), ejecute la siguiente orden.
$ sudo ufw allow in on eth2 to any port 22
Negar Conexiones en UFW
Por defecto, todas las conexiones entrantes están bloqueadas, a menos que haya abierto específicamente la conexión en UFW. Por ejemplo, ha abierto los puertos 80 y 443 y su servidor web está bajo ataque de la red desconocida 11.12.13.0/24.
Para bloquear todas las conexiones de esta particular 11.12.13.0/24 gama de redes, puede usar la siguiente orden.
$ sudo ufw deny from 11.12.13.0/24
Si solo desea bloquear conexiones en los puertos 80 y 443, puede usar las siguientes órdenes.
$ sudo ufw deny from 11.12.13.0/24 to any port 80 $ sudo ufw deny from 11.12.13.0/24 to any port 443
Eliminar Reglas de UFW
Hay 2 maneras de eliminar reglas de UFW, por número de regla y por regla actual.
Para eliminar una regla de UFW usando número de regla, primero necesitará listar las reglas por números usando la siguiente orden.
$ sudo ufw status numbered
Salida de muestra
Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere
Para eliminar la regla número 1, usa el siguiente comando.
$ sudo ufw delete 1
El segundo método para eliminar una regla es utilizando la regla actual, por ejemplo, para eliminar una regla, especifica el número de puerto con el protocolo indicado.
$ sudo ufw delete allow 22/tcp
Ejecución en seco de reglas UFW
Puedes ejecutar cualquier comando de ufw sin realizar realmente cambios en el firewall del sistema utilizando la bandera --dry-run
, esto simplemente muestra los cambios que deberían haber ocurrido.
$ sudo ufw --dry-run enable
Restablecer el firewall UFW
Por alguna razón, si deseas eliminar/restablecer todas las reglas del firewall, escribe los siguientes comandos, revertirá todos tus cambios y empezará de nuevo.
$ sudo ufw reset $ sudo ufw status
Funcionalidades avanzadas de UFW
El firewall UFW puede hacer todo lo que hace iptables. Esto se puede hacer con diferentes conjuntos de archivos de reglas, que no son más que simples archivos de texto de iptables-restore.
No está permitido ajustar el firewall UFW o agregar comandos iptables adicionales a través del comando ufw, es solo cuestión de modificar los siguientes archivos de texto
- /etc/default/ufw: El archivo de configuración principal con reglas predefinidas.
- /etc/ufw/before[6].rules: En este archivo se calculan las reglas antes de ser añadidas a través del comando ufw.
- /etc/ufw/after[6].rules: En este archivo se calculan las reglas después de ser añadidas a través del comando ufw.
- /etc/ufw/sysctl.conf: Este archivo se utiliza para ajustar la red del kernel.
- /etc/ufw/ufw.conf: Este archivo habilita el ufw al iniciar.
¡Eso es! UFW es un excelente frente para iptables con una interfaz amigable para el usuario para definir reglas complejas con un solo comando de ufw.
Si tienes alguna pregunta o pensamiento para compartir sobre este artículo de ufw, utiliza el formulario de comentarios a continuación para contactarnos.
Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/