Prologo: (Para controla el tráfico entrante y saliente de una máquina “servidor , VPS” es importante la seguridad para tal fin usamos un firewall en este caso UFW . Ubuntu-Server y Ubuntu-Desktop incorpora una aplicación-UFW que nos facilita la configuración de un Firewall. Con el cual agregamos una capa extra de seguridad).
Que es UFW-Firewall-Ubuntu
-. En UFW tenemos una interfaz “front-end” de Iptable con la cual gestionamos el firewall, la complejidad del filtrado de paquetes como las herramientas “Iptables” o “nftables” se reduce con esta interfaz UFW la cual aporta cierta simplicidad.
Instalación-UFW:
-. La instalación de UFW por defecto esta instalados, tanto Ubuntu-Server y Ubuntu-Desktop en estado “desactivado” ¡pero por si acaso no es así! proceder a su verificación y instalación.
Verificar si esta instalado:
- In: root@ubuntu:/# which ufw
- Out: /usr/sbin/ufw
Verificar el Status:
- In: root@ubuntu:/# ufw status
Nota: Comentar la captura anterior el estado-Activado, SSH o SSHv6 esta en Permir-Allow y en cualquier lugar-Anywhere el puerto:22 y Apache o Apachev6 esta en Permir-Allow y en cualquier lugar-Anywhere el puerto:80.
Habilitar UFW:
- In: root@ubuntu:/# ufw enable
Deshabilitar el firewall:
- In: root@ubuntu:/# ufw disable
Nota: Tener cuidado con ufw disable deshabilita completamente los servicios-firewall del sistema por ejemplo nos podemos quedar sin conexión ssh.
Instalar UFW:
- In: root@ubuntu:/# apt install ufw
-. Si deseamos examinar las configuración de UFW por ejemplo en que estado tenemos ipv6 su estado sera “no o yes” en este caso tenemos activado y lo haremos con nuestro editor “nano”.
Cargamos UFW en nano:
- In: root@ubuntu:/# nano /etc/default/ufw
- # Establecer en yes para aplicar reglas para admitir IPv6 (no significa solo IPv6 en bucle invertido aceptado). Deberá ‘deshabilitar’ y luego ‘habilitar’ el firewall para los cambios a tener efecto
- IPV6=yes
-. Las instrucciones definen las reglas de las conexiones son aceptadas o negadas, para ver las reglas que configuramos usaremos ufw status verbose.
Ejecutar el status verbose:
- In: root@ubuntu:/# ufw status verbose
Que nos ofrece ufw help “ayuda”:
- In: root@ubuntu:/# ufw help
Usage: ufw Command
Commands:
- enable Habilita el firewall
- disable Desactiva el firewall
- default Establecer política predeterminada
- logging Establecer el registro el nivel
- allow Agregar regla de permiso
- deny Agregar regla de denegación
- reject Agregar regla de rechazo
- limit Agregar regla de límite
- delete Eliminar ergla
- insert Insertar regla-num
- prepend Anteponer regla
- route Agregar ruta regla
- route delete Eliminar ruta
- route insert Insertar ruta regla-num
- reload Recargar el cortafuegos
- reset Reset firewall
- status Mostrar el estado del firewall
- status numbered Mostrar el estado del firewall numbered list of RULES
- status verbose Mostrar el estado detallado del firewall
- show Mostrar informe de firewall
- version Mostrar información de la versión
Application profile commands:
- app list Listar perfiles de aplicaciones
- app info Mostrar información del perfil
- app update Actualización del perfil
- app default Establecer la política de aplicación predeterminada
Abrir-Cerrar-Puertos
-. Podemos añadir la Reglas de Abrir-Cerrar-Puertos de un servicio, por su nombre “ssh” o por el numero de puerto:22 y el protocolo TCP o UDP.
Abrir-puerto por nombre:
- In: root@ubuntu:/# ufw allow https
Verificar:
- In: root@ubuntu:/# ufw status verbose
Bloquear el puerto:
- In: root@ubuntu:/# ufw deny https
Abrir-puerto por el puerto:
- In: root@ubuntu:/# ufw allow 443/tcp
Abrir Rango–Puerto:
- In: root@ubuntu:/# ufw allow 9080:9090/tcp
Bloquear Rango–Puerto:
- In: root@ubuntu:/# ufw deny 9080:9090/tcp
Reglas numeradas:
- In: root@ubuntu:/# ufw status numbered
Nota: Las reglas numeradas ufw status numbered esta opción es importante ¡por que! Permite como vemos en la captura anterior, tenemos redundancia en el puerto:443 proceder a su eliminación.
Eliminar la Regla por su ID-4
- In: root@ubuntu:/# ufw delete 4
Permitir-Denegar-Direcciones-IP
-. Podemos utilizar reglas especificas de direcciones-IP, SubNet, permitir o denegar incluso mezclado puertos, crear una regla que solo se aplique a una interfaz.
Permitir dirección IP:
- In: root@ubuntu:/# ufw allow from 192.168.0.247
Denegar dirección IP:
- In: root@ubuntu:/# ufw deny from 192.168.0.247
Nota: Especificar un puerto concreto para la IP y permitir que 192.168.0.247 se conecte a través del puerto ssh:22.
Permitir dirección IP con un puerto concreto:
- In: root@ubuntu:/# ufw allow from 192.168.0.247 to any port 22
Nota: Permitir toda una red local o una subred como 192.168.0.0/24 autorizamos desde la 192.168.0.1 a la 192.168.0.254 y si deseamos podemos agregar el puerto destino como en el ejemplo anterior.
Permitir subnet/24:
- In: root@ubuntu:/#ufw allow from 192.168.0.0/24
Revisar las interfaces disponibles:
- In: root@ubuntu:/# ip addr
- Out: 2: ens6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
Permitir conexión-interfaz de Red-especifica:
- In: root@ubuntu:/#ufw allow in on ens6 to any port 80
Listado de aplicaciones app:
- In: root@ubuntu:/# ufw app list
Diferentes opciones de infor. Show:
- In: root@ubuntu:/# ufw app info ‘OpenSSH’
- In: root@ubuntu:/# ufw show listening
- tcp:
- 22 * (sshd)
- [ 1] allow 22/tcp
- 80 * (docker-proxy)
- [ 2] allow 80/tcp
- udp:
- ***.***.***.*** (systemd-networkd)
- In: root@ubuntu:/# ufw show added
- Added user rules (see ‘ufw status’ for running firewall):
- ufw allow 22/tcp
- ufw allow 80/tcp
- ufw allow 443/tcp
- ufw allow 53/tcp
Insertar un comentario:
- In: root@ubuntu:/# ufw allow 53/udp comment ‘Abrir puerto DNS udp puerto 53‘
Recopilando:
El firewall de Ubuntu UFW; hemos realizado algunos ejemplos de su funcionalidad lo primero es habilitar el firewall-UFM, ¡lo normal es que se encuentre deshabilitado! Abrir o cerrar Puertos, permitir o denegar direcciones IP etc.
- Referencias: moreluz.entorno