Una de las piedras angulares de cualquier sistema operativo es un firewall correctamente configurado para la seguridad completa del sistema. UFW (Firewall sin complicaciones) está instalado por defecto en los sistemas operativos Ubuntu; sin embargo, no está habilitado. Uno de los grandes beneficios de UFW es su línea de comando simple, fácil de usar y fácil de usar, lo que lo hace ideal para principiantes en Linux hasta los usuarios avanzados más avanzados.
En el siguiente tutorial, aprenderá a instalar y configurar UFW Firewall en Ubuntu 20.04 LTS Focal Fossa Desktop o Server usando el terminal de comando.
Requisitos
- SO recomendado: Ubuntu 20.04
- Cuenta de usuario: Una cuenta de usuario con sudo o acceso raíz.
Actualizar Sistema Operativo
Actualiza tu Ubuntu sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:
sudo apt update && sudo apt upgrade -y
El tutorial usará el comando sudo y asumiendo que tiene estado sudo .
Para verificar el estado de sudo en su cuenta:
sudo whoami
Ejemplo de salida que muestra el estado de sudo:
[joshua@ubuntu ~]$ sudo whoami
root
Para configurar una cuenta Sudo existente o nueva, visite nuestro tutorial sobre Cómo agregar un usuario a Sudoers en Ubuntu .
Para usar la cuenta raíz , use el siguiente comando con la contraseña de root para iniciar sesión.
su
Cómo habilitar, instalar o eliminar UFW
El primer paso para configurar un firewall UFW será habilitar el firewall.
sudo ufw enable
Ejemplo de salida:
Firewall is active and enabled on system startup
De manera predeterminada, todo el tráfico entrante se bloquea automáticamente y todo el tráfico saliente se permite una vez que el firewall está activo. Esto protegerá instantáneamente su sistema evitando que cualquier persona se conecte de forma remota a su sistema.
Si UFW se eliminó anteriormente y desea reinstalar el firewall con el siguiente comando.
sudo apt install ufw -y
A continuación, verifique el estado de UFW para asegurarse de que esté activo y sin errores.
sudo systemctl status ufw
Ejemplo de salida:
En el futuro, si necesita deshabilitar UFW por un período de tiempo temporal, use el siguiente comando.
sudo ufw disable
Para eliminar UFW por completo de su sistema Ubuntu.
sudo apt autoremove ufw --purge
No elimine UFW a menos que tenga una opción sólida o sepa cómo usar IPTables, especialmente cuando ejecuta un entorno de servidor conectado al público. Esto será desastroso.
Cómo verificar el estado de UFW
Una vez que UFW esté habilitado, vea el estado de las reglas de firewall y lo que está activo use lo siguiente.
sudo ufw status verbose
Ejemplo de salida:
El ejemplo anterior usó el indicador detallado, y una opción alternativa es enumerar las reglas en secuencia numérica, lo que es mucho más manejable más adelante al eliminar las reglas.
sudo ufw status numbered
Ejemplo de salida:
Ahora tiene [ 1], [ 2] etiquetas de números en sus reglas de UFW para identificación como lo tiene el resultado anterior.
Cómo establecer políticas predeterminadas de UFW
La política predeterminada del firewall UFW es denegar todas las conexiones entrantes y solo permitir las conexiones salientes al sistema. Por lo general, la forma predeterminada más segura en la que nadie puede acceder a su servidor a menos que permita rangos/direcciones IP, programas, puertos o combinaciones de todos. Su sistema, de forma predeterminada, puede acceder al exterior, que no debe ajustar a menos que tenga requisitos de seguridad específicos.
Como referencia, las políticas de firewall de UFW predeterminadas se pueden encontrar en la ubicación /etc/default/ufw .
Para ajustar las reglas, escriba el siguiente comando:
Para denegar todas las conexiones entrantes:
sudo ufw default deny incoming
Para permitir todas las conexiones salientes:
sudo ufw default allow outgoing
Esto ya está configurado como las reglas predeterminadas cuando está habilitado, pero puede usar el mismo principio para cambiarlas y adaptarlas a su propósito.
Por ejemplo, todas las comunicaciones entrantes están bloqueadas de manera predeterminada, pero desea bloquear todas las salientes y permitir solo las conexiones salientes aprobadas, luego use el siguiente comando.
Para bloquear todas las conexiones salientes:
sudo ufw default deny outgoing
Esta es una medida extrema; bloquear las conexiones entrantes suele ser suficiente para el servidor y el escritorio promedio, pero los entornos específicos pueden beneficiarse de la precaución de seguridad adicional. La desventaja es que necesita mantener todas las conexiones salientes, lo que puede llevar mucho tiempo y establecer nuevas reglas continuamente.
Cómo ver los perfiles de aplicación de UFW
Para mostrar todos los perfiles de aplicación, puede hacerlo escribiendo lo siguiente.
sudo ufw app list
Ejemplo de salida:
Lo anterior es solo un ejemplo, y todos tendrán listas diferentes ya que nadie tendrá las mismas aplicaciones instaladas.
Una característica útil de los perfiles de aplicaciones es obtener más información sobre el servicio que figura en la lista de aplicaciones de UFW.
Para hacer esto, escriba el siguiente comando para encontrar más información sobre un perfil existente.
sudo ufw app info CUPS
Ejemplo de salida:
Como arriba, la impresión de la descripción general de la aplicación y el puerto que utiliza. Esta es una función útil cuando está investigando puertos abiertos y no está seguro de con qué aplicaciones se relacionan y qué hace la aplicación.
Cómo habilitar IPv6 en UFW
Si su sistema Ubuntu está configurado con IPv6, debe asegurarse de que UFW esté configurado con compatibilidad con IPv6 e IPv4. De forma predeterminada, esto debería habilitarse automáticamente; sin embargo, debe verificarlo y, si es necesario, modificarlo. Puede hacer esto de la siguiente manera.
Abra el archivo de firewall UFW predeterminado.
sudo nano /etc/default/ufw
Ajuste la siguiente línea a sí si no está configurado.
IPV6=yes
Ahora reinicie el servicio de firewall UFW para activar los cambios.
sudo systemctl restart ufw
Cómo permitir conexiones UFW SSH
Por defecto, UFW no permite conexiones SSH. Si ya hubiera habilitado el firewall de forma remota, se habría dado cuenta de que estaba bloqueado.
Para solucionar esto, debe establecer la siguiente configuración SSH antes de habilitar el firewall UFW, especialmente si está conectado a un servidor remoto.
Primero, habilite el perfil de la aplicación SSH.
sudo ufw allow ssh
Si configuró un puerto de escucha personalizado para conexiones SSH que no sea el puerto predeterminado 22, por ejemplo, el puerto 3541, abrirá el puerto en el firewall UFW escribiendo lo siguiente.
sudo ufw allow 3541/tcp
Si desea bloquear todas las conexiones SSH o cambiar el puerto y bloquear los antiguos.
Para bloquear todas las conexiones SSH (Asegúrese de que el acceso local sea posible) , use el siguiente comando.
sudo ufw deny ssh/tcp
Si cambia el puerto SSH personalizado, abra un puerto nuevo y cierre el existente; el ejemplo del tutorial es el puerto 3541.
sudo ufw deny 3541/tcp
Cómo habilitar los puertos UFW
Con UFW, puede abrir puertos específicos en el firewall para permitir conexiones especificadas para una aplicación en particular. Puede establecer reglas personalizadas para la aplicación. Un excelente ejemplo de esta regla es configurar un servidor web que escuche en el puerto 80 (HTTP) y 443 (HTTPS) por defecto.
Permitir puerto HTTP 80
Permitir por perfil de aplicación:
sudo ufw allow 'Nginx HTTP'
Permitir por nombre de servicio:
sudo ufw allow http
Permitir por número de puerto:
sudo ufw allow 80/tcp
Permitir puerto HTTPS 443
Permitir por perfil de aplicación:
sudo ufw allow 'Nginx HTTPS'
Permitir por nombre de servicio:
sudo ufw allow https
Permitir por número de puerto:
sudo ufw allow 443/tcp
Tenga en cuenta que puede habilitar todas las reglas juntas de forma predeterminada mediante el siguiente comando.
sudo ufw allow 'Nginx Full'
RANGOS DE PUERTOS PERMITIDOS POR UFW
UFW puede permitir el acceso a rangos de puertos. Tenga en cuenta que al abrir un rango de puertos, debe identificar el protocolo del puerto.
Permitir intervalo de puertos con TCP y UDP:
sudo ufw allow 6500:6800/tcp
sudo ufw allow 6500:6800/udp
Alternativamente, puede permitir múltiples puertos en un solo golpe, pero permitir el rango puede ser más accesible como se indicó anteriormente.
sudo ufw allow 6500, 6501, 6505, 6509/tcp
sudo ufw allow 6500, 6501, 6505, 6509/udp
Cómo permitir conexiones remotas en UFW
UFW Permitir dirección IP específica
Por ejemplo, para permitir direcciones IP específicas, está en una red interna y requiere que los sistemas se comuniquen entre sí, use el siguiente comando.
sudo ufw allow from 192.168.55.131
UFW permite una dirección IP específica en un puerto específico
Para permitir que una IP se conecte a su sistema en un puerto definido (puerto de ejemplo “3900”) , escriba lo siguiente.
sudo ufw allow from 192.168.55.131 to any port 3900
Permitir conexiones de subred a un puerto especificado
Si necesita un rango completo de conexiones desde una subred de rango de IP a un puerto en particular, puede habilitar esto creando la siguiente regla.
sudo ufw allow from 192.168.1.0/24 to any port 3900
Esto permitirá que todas las direcciones IP de 192.168.1.1 a 192.168.1.254 se conecten al puerto 3900.
Permitir interfaz de red específica
Por ejemplo, permita conexiones a una interfaz de red en particular, "eth2" a un puerto específico 3900. Puede lograr esto creando la siguiente regla.
sudo ufw allow in on eth2 to any port 3900
Cómo denegar conexiones remotas en UFW
Según la política de configuración predeterminada de UFW, cuando se instala, todas las conexiones entrantes se establecen en “denegar”. Esto rechaza todo el tráfico entrante a menos que cree una regla para permitir el paso de las conexiones.
Sin embargo, ha notado en sus registros una dirección IP particular que sigue atacándolo. Bloquearlo con lo siguiente.
sudo ufw deny from 203.13.56.121
Un pirata informático está utilizando varias direcciones IP de la misma subred para intentar piratearte. Crea lo siguiente para bloquear.
sudo ufw deny from 203.13.56.121/24
Puede crear reglas específicas si desea denegar el acceso a determinados puertos. Escriba el siguiente ejemplo.
sudo ufw deny from 203.13.56.121/24 to any port 80
sudo ufw deny from 203.13.56.121/24 to any port 443
Cómo eliminar las reglas de UFW
Ha creado y denegado reglas, pero debe eliminarlas porque ya no las necesita. Esto se puede lograr de dos maneras diferentes.
Primero, para eliminar una regla UFW usando el número de regla, debe enumerar los números de regla escribiendo lo siguiente.
sudo ufw status numbered
Ejemplo de salida:
El ejemplo eliminará la cuarta regla para la dirección IP 1.1.1.1 que se destaca arriba.
Escribe lo siguiente en tu terminal.
sudo ufw delete 1
En segundo lugar, puede eliminar una regla UFW utilizando la regla real.
sudo ufw delete allow 80/tcp
Cuando las reglas se eliminen correctamente, obtendrá el siguiente resultado.
Rule deleted
Rule deleted (v6)
Cómo acceder y ver los registros de UFW
De forma predeterminada, el registro de UFW se establece en bajo. Esto está bien para la mayoría de los sistemas de escritorio. Sin embargo, los servidores pueden requerir un mayor nivel de registro.
Para establecer el registro de UFW en bajo (predeterminado):
sudo ufw logging low
Para establecer el registro de UFW en medio:
sudo ufw logging medium
Para configurar el registro de UFW en alto:
sudo ufw logging high
La última opción es deshabilitar el registro por completo, asegúrese de estar satisfecho con esto y no requerirá la verificación del registro.
sudo ufw logging off
Para ver los registros de UFW, se guardan en la ubicación predeterminada de /var/log/ufw.log .
Una forma fácil y rápida de ver registros en vivo es usar el comando tail.
sudo ufw tail -f /var/log/ufw.log
Alternativamente, puede imprimir una cantidad determinada de líneas recientes con -n
sudo ufw tail /var/log/ufw.log -n 30
Esto imprimirá las últimas 30 líneas del registro. Puede ajustar aún más con GREP y otros comandos de clasificación.
Cómo probar las reglas de UFW
Los sistemas altamente críticos, una buena opción cuando se juega con la configuración del firewall, pueden agregar la bandera –run-run . Esto permite ver un ejemplo de los cambios que habrían ocurrido pero no procesarlo.
sudo ufw --dry-run enable
Para deshabilitar el indicador –dry-run , use el siguiente comando.
sudo ufw --dry-run disable
Cómo restablecer las reglas de UFW
Para restablecer su firewall a su estado original con todas las entradas bloqueadas y todas las salidas configuradas para permitir, escriba lo siguiente para restablecer.
sudo ufw reset
Confirme el reinicio, ingrese lo siguiente:
sudo ufw status
La salida debe ser:
Status: inactive
Con el restablecimiento del firewall UFW, ahora deberá volver a habilitar el firewall y comenzar todo el proceso de agregar reglas. El comando de reinicio debe usarse con moderación si es posible.
Cómo encontrar todos los puertos abiertos (comprobación de seguridad)
La mayoría de los sistemas no se dan cuenta de que pueden tener puertos abiertos. En la era en que cada dirección IP en Internet se escanea a diario, es crucial observar lo que sucede detrás de escena.
La mejor opción es instalar Nmap, luego, usando esta famosa aplicación, enumere los puertos abiertos.
sudo apt install nmap
A continuación, busque la dirección IP interna del sistema.
hostname -I
Ejemplo de salida:
192.168.50.45
Ahora use el siguiente comando Nmap con la dirección IP del servidor.
sudo nmap 192.168.50.45
Ejemplo de salida:
Como arriba, los puertos 9090 y 80 están abiertos. Antes de bloquear puertos, investigue primero cuáles son si no está seguro.
Desde este punto, puede crear reglas UFW personalizadas que ha aprendido en el tutorial para cerrar o restringir los puertos abiertos.