Cómo configurar el cortafuegos UFW en Ubuntu 18.04
En este artículo, le mostraré cómo configurar el firewall UFW en Ubuntu 18.04. En Ubuntu, el firewall predeterminado es UFW, abreviatura de FireWall sin complicaciones. Ha existido desde el lanzamiento de Ubuntu 18.04 y se creó para simplificar la configuración de iptables, que era bastante compleja.
Cuando se usa cualquier operación, un firewall es una de las características más importantes que se deben considerar en lo que respecta a la seguridad de su sistema. Un firewall es un escudo o barrera que existe entre su PC e Internet y bloquea el tráfico no autorizado, como el acceso remoto a su sistema, y ayuda a protegerse contra códigos maliciosos que atraviesan constantemente Internet. Un cortafuegos puede ser hardware o software. Un firewall de hardware es un sistema de firewall independiente que se coloca en la red para agregar una capa protectora al controlar el flujo de tráfico hacia y desde la red, así como para bloquear el acceso de los usuarios a sitios no deseados. Un firewall de software está integrado en sistemas operativos como Linux y Windows y ayuda a mantener su sistema a salvo de ataques externos.
Lea también:
Instalación de UFW
De forma predeterminada, Ubuntu 18.04 viene con ufw instalado. Sin embargo, para sistemas anteriores, tendría que ejecutar el siguiente comando
apt-get install ufw
Para comprobar si ufw se está ejecutando, ejecute
systemctl status ufw
Si se está ejecutando, debería obtener el resultado a continuación
● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab Active: active (exited) since Tue 2018-04-10 22:03:30 UTC; 4min 1s ago Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU Main PID: 376 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: 0 CGroup: /system.slice/ufw.service Apr 10 22:03:30 ip-172-31-41-251 systemd[1]: Started Uncomplicated firewall. Warning: Journal has been rotated since unit was started. Log output is incomple
Para comprobar si está activo o inactivo, ejecute
ufw status
Si está inactivo, obtendrá el resultado a continuación
Status: inactive
Para activar UFW con el conjunto de reglas predeterminado, ejecute
ufw enable
Para deshabilitar el firewall, ejecute
ufw disable
Configuración de reglas ufw predeterminadas
Para configurar reglas predeterminadas que permitan todos los protocolos salientes, inicie sesión como root y ejecute
ufw default allow outgoing
Producción
Default outgoing policy changed to 'allow' (be sure to update your rules accordingly)
Para denegar todas las conexiones entrantes, ejecute
ufw default deny incoming
Producción
Default outgoing policy changed to 'deny' (be sure to update your rules accordingly)
Los comandos anteriores permitirán todas las conexiones salientes y denegarán o bloquearán todas las conexiones entrantes.
En este punto, es posible que desee habilitar el firewall, sin embargo, antes de hacerlo, permita ssh primero. Esto evita la desconexión del servidor ya que especificamos la denegación de todas las conexiones entrantes anteriormente.
Para permitir ssh, ejecute
ufw allow 22/tcp
Saliente
Skipping adding existing rule Skipping adding existing rule (v6)
El acceso ssh también se puede permitir por el nombre del servicio,
ufw allow ssh
Si desea eliminar la regla, ejecute
ufw delete allow 22/ssh
Para denegar un servicio por nombre ejecutar
ufw deny service-name
Por ejemplo
ufw deny ssh
Para ver todos los servicios que se pueden permitir o denegar en el sistema, consulte la /etc/services
expediente.
cat /etc/services | less
Salida de muestra
ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname tacacs 49/tcp # Login Host Protocol (TACACS) tacacs 49/udp re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp domain 53/tcp # Domain Name Server domain 53/udp
Iniciando el cortafuegos de ufw
Para activar el firewall, inicie sesión como root y ejecute el siguiente comando:
ufw enable
Es posible que se le solicite la siguiente advertencia
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Si selecciona sí, obtendrá el resultado a continuación
Firewall is active and enabled on system startup
El cortafuegos ahora está activo y se iniciará en cada arranque. Podemos ver las reglas del firewall nuevamente:
ufw status
La salida ahora mostrará el estado del firewall más los servicios / puertos permitidos
Producción
ufw status active Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22 ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6)
Permitir conexiones en ufw
Puede permitir fácilmente la conexión entrante en el puerto / rango, nombre de la aplicación, dirección IP / subred en ufw.
Mira los ejemplos a continuación.
a) Permitir aplicaciones por nombre o número / rango de puerto
ufw allow service-name
O
ufw allow port/tcp
Por ejemplo
ufw allow ssh or ufw allow 22/tcp
ufw allow ftp or ufw allow 21/tcp
sudo ufw permite 1500: 2000 / tcp
b) Permite direcciones IP / subredes
Los siguientes comandos permiten conexiones desde IP o subredes específicas y también podemos usar números de puerto específicos.
Para permitir conexiones desde una dirección IP específica
ufw allow from 10.200.20.45
Para especificar una IP a la que se le permite conectarse a un puerto específico, ejecute
ufw allow from 10.200.20.45 to any port 22
Lo anterior permite que la dirección IP 10.200.20.45 solo se conecte a través de ssh
Para permitir que una determinada subred de IP se conecte al sistema, utilice la notación CIDR para especificar una máscara de red.
ufw allow from 192.168.1.0/24
Lo anterior permite que las IP de 192.168.1 a 192.168.1.254 se conecten al sistema
También puede especificar el puerto de destino de la subred
ufw allow from 192.168.1.0/24 to any port 22
Esto implica que las IP de 192.168.1 a 192.168.1.254 pueden conectarse al sistema a través del puerto 22, que es ssh.
c) Permitir por el nombre de la interfaz
Si necesitamos permitir conexiones a través del nombre de la interfaz, es posible
ufw allow in on eth0 to any port 80
Cómo denegar conexiones en ufw
De forma predeterminada, ufw está configurado para denegar todas las conexiones entrantes.
a) Dirección IP / subred
Si queremos bloquear el acceso a alguna dirección IP específica, podemos hacerlo siguiendo el comando:
ufw deny from 192.168.1.15
Esto bloqueará todas las conexiones entrantes del host con la dirección IP 192.168.1.15
A continuación, bloquee toda la subred:
ufw deny from 150.165.125.0/24
Esto bloqueará todas las conexiones provenientes de esta subred.
b) Denegar puertos y aplicaciones
Negar un puerto o un servicio
ufw deny 80/tcp
O
ufw deny http
sudo ufw deny 1500: 2000 / tcp * Esto negará los rangos de puertos *
Eliminar y realizar un seguimiento de las reglas
Cuando agrega muchas reglas, puede rastrearlas mejor al ver sus números. Puede obtener números con el siguiente comando:
ufw status numbered
Producción
ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 22 ALLOW IN Anywhere [ 3] 80/tcp ALLOW IN Anywhere [ 4] 53/tcp ALLOW IN Anywhere [ 5] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 22 (v6) ALLOW IN Anywhere (v6) [ 7] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53/tcp (v6) ALLOW IN Anywhere (v6)
Digamos que queremos eliminar las reglas número 2. Lo hacemos siguiendo el comando:
ufw delete 2
Nota :
Después de eliminar la segunda regla en el firewall, la regla 3 ahora será la nueva regla 2. Por lo tanto, si desea eliminar la regla actual 3, la eliminará con el número 2.
ufw delete allow http
Restablecer reglas
Si no está satisfecho con las reglas actuales y desea comenzar de nuevo, puede hacerlo ejecutando
ufw reset
Registro y recarga
Para habilitar el registro, use el siguiente comando:
ufw logging on
Si desea deshabilitar el registro por algún motivo (no recomendado), puede usar este comando:
sudo ufw cerrando la sesión
Los registros están por defecto en /var/log/ufw.log
Para verlos en tiempo real, use tail -f así:
tail -f /var/log/ufw.log /pre> You will see all actions of firewall in that file. If you need to reload firewall for some reason, because you changed some config files manually, use following command.
ufw reload
Si desea ver las reglas que se agregaron recientemente
ufw show added
Archivos de configuración UFW
Para la mayoría de los escenarios, puede usar comandos de terminal, pero en algunos casos, querrá editar los archivos de configuración directamente. El ufw tiene varios archivos de configuración, a saber:
/etc/ufw/before.rules
/etc/ufw/before6.rules
Esos dos archivos contienen reglas que se evalúan antes que todas las reglas que agregó mediante los comandos ufw. Entonces, si desea que se aplique alguna regla primero, la desea allí. El primer archivo es para ipv4 y el segundo es para v6
/etc/ufw/after.rules
/etc/ufw/after6.rules
Estos se evalúan según las reglas del comando ufw. Son buenos para usar si desea anular alguna regla y aplicarla pase lo que pase. Nuevamente, dos archivos, para dos versiones del protocolo IP que se utilizan actualmente.
/etc/default/ufw
Aquí tenemos los módulos del kernel que usa ufw, así como otras configuraciones generales. Puede editar cualquiera de estos archivos de configuración solo como root, y puede usar cualquier editor de texto que desee.
Evite agregar reglas duplicadas
A continuación, observemos el mecanismo contra reglas duplicadas. Primero abriremos el puerto 101
sudo ufw allow 100
Tenga en cuenta que el comando sin protocolo como el anterior abre los puertos UDP y TCP. Entonces, ejecutemos el mismo comando nuevamente para ver qué sucede
ufw allow 100
Producción
Skipping adding existing rule Skipping adding existing rule (v6)
No nos permite agregar una regla duplicada. Eso es bueno, pero aún existe la posibilidad de que podamos agregar una regla duplicada, mediante esta serie de comandos:
ufw allow 101/udp
ufw allow 101/tcp
Después de permitir tanto TCP como UDP en el puerto 101, aún podemos agregar el puerto abierto 101 para todos los protocolos y esta es una regla duplicada, ya que el puerto 101 se abre dos veces, una para cada protocolo y una vez para todos.
ufw allow 101
Esto deja margen para el error y, por lo general, no es una buena práctica. Necesitamos deshacer los tres comandos con el comando ufw delete si queremos volver a los valores predeterminados para el puerto 101.
Para cerrar algún puerto, ejecuta los mismos comandos, solo permite, escribe deny.
En este artículo, hemos cubierto el uso de UFW, que es un cortafuegos sencillo que se utiliza para permitir o restringir el tráfico. Es un firewall muy poderoso para regular el tráfico a su sistema. No dude en probar los comandos en su sistema.