Cómo instalar y configurar UFW: un firewall sencillo en Debian/Ubuntu
Dado que las computadoras están conectadas entre sí, los servicios están creciendo rápidamente. Correo electrónico, Redes sociales, Tienda online, Chat hasta Conferencias web son servicios que utilizado por el usuario. Pero, por otro lado, esta conectividad es como un cuchillo de doble cara. También es posible enviar mensajes incorrectos a esas computadoras, como Virus, malware, aplicaciones troyanos que son algunos de ellos.
Internet, como la red informática más grande, no siempre está llena de buena gente. Para asegurarnos de que nuestras computadoras/servidores estén seguros, debemos protegerlos.
Uno de los componentes imprescindibles en su computadora/servidores es el Firewall. De Wikipedia, una definición es:
En informática, un firewall es un sistema de seguridad de red basado en software o hardware que controla el tráfico de red entrante y saliente analizando los paquetes de datos y determinando si se les debe permitir el paso o no, según el conjunto de reglas aplicadas.
Iptables es uno de los cortafuegos más utilizados por los servidores. Es un programa utilizado para gestionar el tráfico entrante y saliente en el servidor según un conjunto de reglas. Generalmente, sólo se permite el acceso al servidor a conexiones confiables. Pero IPTables se ejecuta en modo consola y es complicado. Aquellos que estén familiarizados con las reglas y comandos de iptables, pueden leer el siguiente artículo que describe cómo usar el firewall de iptables.
- Guía básica de IPTables (firewall de Linux)
Instalación del cortafuegos UFW en Debian/Ubuntu
Para reducir la complejidad de cómo configurar IPTables, hay muchos detalles. Si está ejecutando Ubuntu Linux, encontrará ufw como herramienta de firewall predeterminada. Comencemos a explorar sobre el firewall ufw.
que es ufw
El ufw (Firewall sin complicaciones) es una interfaz para el firewall iptables más utilizado y es muy cómodo para firewalls basados en host. ufw proporciona un marco para administrar netfilter, además de proporcionar una interfaz de línea de comandos para controlar el firewall. Proporciona una interfaz fácil de usar para los principiantes en Linux que no están muy familiarizados con los conceptos de firewall.
Mientras que, por otro lado, los mismos comandos complicados ayudan a los administradores a establecer reglas complicadas utilizando la interfaz de línea de comandos. El ufw es un upstream para otras distribuciones como Debian, Ubuntu y Linux Mint.
Uso básico
Primero, verifique si ufw está instalado usando el siguiente comando.
sudo dpkg --get-selections | grep ufw
ufw install
Si no está instalado, puede instalarlo usando el comando apt como se muestra a continuación.
sudo apt-get install ufw
Antes de usarlo, debe verificar si ufw se está ejecutando o no. Utilice el siguiente comando para comprobarlo.
sudo ufw status
Si encontró Estado: inactivo, significa que no está activo o deshabilitado.
¡NUEVO! ¡Un libro electrónico indispensable para todo administrador de Linux!Descargue gratis el libro electrónico de 696 páginas
Habilitar/Deshabilitar ufw
Para habilitarlo, solo necesita escribir el siguiente comando en la terminal.
sudo ufw enable
Firewall is active and enabled on system startup
Para desactivarlo, simplemente escriba.
sudo ufw disable
Enumere las reglas actuales de ufw
Una vez activado el firewall, puede agregarle sus reglas. Si desea ver cuáles son las reglas predeterminadas, puede escribir.
sudo ufw status verbose
Salida de muestra
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$
Cómo agregar reglas ufw
Como puede ver, de forma predeterminada se niegan todas las conexiones entrantes. Si desea controlar su máquina de forma remota, debe permitir el puerto adecuado. Por ejemplo, desea permitir la conexión ssh. Aquí está el comando para permitirlo.
Permitir el acceso
sudo ufw allow ssh
[sudo] password for pungki :
Rule added
Rule added (v6)
$
Si vuelve a comprobar el estado, verá un resultado como este.
sudo ufw status
To Action From
-- ----------- ------
22 ALLOW Anywhere
22 ALLOW Anywhere (v6)
Si tiene muchas reglas y desea poner números en cada regla sobre la marcha, utilice parámetros numerados.
sudo ufw status numbered
To Action From
------ ----------- ------
[1] 22 ALLOW Anywhere
[2] 22 ALLOW Anywhere (v6)
La primera regla dice que se permite la conexión entrante al puerto 22 desde cualquier lugar, tanto paquetes tcp como udp. ¿Qué sucede si desea permitir solo paquetes tcp? Luego puede agregar el parámetro tcp después del número de puerto. A continuación se muestra un ejemplo con resultados de muestra.
sudo ufw allow ssh/tcp
To Action From
------ ----------- ------
22/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere (v6)
Acceso denegado
Los mismos trucos se aplican a la regla Denegar. Digamos que desea denegar la regla ftp. Entonces solo tienes que escribir.
sudo ufw deny ftp
To Action From
------ ----------- ------
21/tcp DENY Anywhere
21/tcp DENY Anywhere (v6)
Agregar un puerto específico
A veces tenemos un puerto personalizado que no sigue ningún estándar. Digamos que cambiamos el puerto ssh en nuestra máquina de 22 a 2290. Luego, para permitir el puerto 2290, podemos agregarlo así.
sudo ufw allow
To Action From
-- ----------- ------
2290 ALLOW Anywhere
2290 ALLOW Anywhere (v6)
También es posible agregar port-range a la regla. Si queremos abrir el puerto desde 2290 – 2300 con protocolo tcp, entonces el comando será así.
sudo ufw allow 2290:2300/tcp
To Action From
------ ----------- ------
2290:2300/tcp ALLOW Anywhere
2290:2300/tcp ALLOW Anywhere (v6)
mientras que si desea utilizar udp, simplemente utilice el siguiente comando.
sudo ufw allow 2290:2300/udp
To Action From
------ ----------- ------
2290:2300/udp ALLOW Anywhere
2290:2300/udp ALLOW Anywhere (v6)
Recuerde que debe escribir "tcp" o "udp" explícitamente; de lo contrario, recibirá un mensaje de error similar al siguiente.
ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports
Agregar IP específica
Anteriormente hemos agregado reglas basadas en servicio o puerto. Ufw también le permite agregar reglas basadas en la Dirección IP. Aquí está el comando de muestra.
sudo ufw allow from 192.168.0.104
También puede utilizar una máscara de subred para ampliar el rango.
sudo ufw allow form 192.168.0.0/24
To Action From
-- ----------- ------
Anywhere ALLOW 192.168.0.104
Anywhere ALLOW 192.168.0.0/24
Como puede ver, el parámetro from solo limitará la fuente de conexión. Mientras que el destino, que está representado por la columna Para, es Cualquier lugar. También puede administrar el destino usando el parámetro 'A'. Veamos el ejemplo para permitir el acceso al puerto 22 (ssh).
sudo ufw allow to any port 22
El comando anterior permitirá el acceso desde cualquier lugar y desde cualquier protocolo al puerto 22.
Combinando parámetros
Para reglas más específicas, también puede combinar Dirección IP, protocolo y puerto. Digamos que queremos crear una regla que limite la conexión solo desde la IP 192.168.0.104, solo el protocolo tcp y el puerto 22. Entonces el comando será como el siguiente.
sudo ufw allow from 192.168.0.104 proto tcp to any port 22
La sintaxis para crear una regla de denegación es similar a la de permitir. Sólo necesita cambiar el parámetro de permitir a denegar.
Eliminar reglas
Es posible que en algún momento necesites eliminar tu regla existente. Una vez más, con ufw es fácil eliminar reglas. Del ejemplo anterior, tiene una regla a continuación y desea eliminarla.
To Action From
-- ----------- ------
22/tcp ALLOW 192.168.0.104
21/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere (v6)
Hay dos métodos para eliminar reglas.
Método 1
El siguiente comando eliminará las reglas que coincidan con el servicio ftp. Por lo tanto, se eliminará el 21/tcp, que significa puerto ftp.
sudo ufw delete allow ftp
Método 2
Pero cuando intentó eliminar la primera regla en el ejemplo anterior usando el siguiente comando.
sudo ufw delete allow ssh
Or
sudo ufw delete allow 22/tcp
Es posible que encuentre un mensaje de error como.
Could not delete non-existent rule
Could not delete non-existent rule (v6)
Entonces puedes hacer este truco. Como mencionamos anteriormente, puede mostrar el número de regla para indicar qué regla queremos eliminar. Déjanos mostrártelo.
sudo ufw status numbered
To Action From
-- ----------- ------
[1] 22/tcp ALLOW 192.168.0.104
[2] 21/tcp ALLOW Anywhere
[3] 21/tcp ALLOW Anywhere (v6)
Luego puedes eliminar la primera regla usando. Presione “y” para eliminar permanentemente la regla.
sudo ufw delete 1
Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y
A partir de esos métodos verás la diferencia. El método 2 solicitará la confirmación del usuario antes de eliminar la regla, mientras que el método 1 no.
Cómo restablecer las reglas
En alguna situación, es posible que desees eliminar/restablecer todas las reglas. Puedes hacerlo escribiendo.
sudo ufw reset
Resetting all rules to installed defaults. Proceed with operation (y|n)? y
Si presiona “y”, entonces ufw hará una copia de seguridad de todas las reglas existentes antes de restablecer su ufw. Restablecer las reglas también desactivará su firewall. Debe habilitarlo nuevamente si desea usarlo.
Funcionalidad avanzada
Como dije anteriormente, el firewall ufw puede hacer cualquier cosa que iptables pueda hacer. Esto se logra mediante el uso de varios conjuntos de archivos de reglas, que no son más que archivos de texto apropiados para iptables-restore. Ajustar ufw y/o colocar comandos de iptables adicionales no permitidos mediante el comando ufw es cuestión de editar varios archivos de texto.
- /etc/default/ufw: la configuración principal para políticas predeterminadas, compatibilidad con IPv6 y módulos del kernel.
- /etc/ufw/before[6].rules: las reglas en estos archivos se calculan antes de cualquier regla agregada mediante el comando ufw.
- /etc/ufw/after[6].rules: las reglas en estos archivos se calculan después de cualquier regla agregada mediante el comando ufw.
- /etc/ufw/sysctl.conf: optimizables de red del kernel.
- /etc/ufw/ufw.conf: establece si ufw está habilitado o no en el arranque y establece LOGLEVEL.
Conclusión
UFW como interfaz para iptables seguramente constituye una interfaz sencilla para el usuario. El usuario no necesita recordar la complicada sintaxis de iptables. UFW también utiliza 'inglés simple' como parámetro.
Permitir, denegar, restablecer son uno de ellos. Creo que hay muchas más interfaces de iptables por ahí. Pero definitivamente ufw es una de las mejores alternativas para los usuarios que desean configurar su firewall de manera rápida, fácil y, por supuesto, segura. Visite la página del manual de ufw escribiendo man ufw para obtener más detalles.