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.
Al usar cualquier sistema operativo, 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 proteger contra códigos maliciosos que atraviesan constantemente Internet. Un firewall 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 mediante el control del 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:
- Cómo habilitar, denegar, permitir y eliminar reglas en Ubuntu UFW Firewall
Instalación de UFW
De manera 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 verificar si ufw se está ejecutando, ejecute
systemctl status ufw
Si se está ejecutando, debería obtener el siguiente resultado
● 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 ejecutar
ufw status
Si está inactivo, obtendrá el siguiente resultado
Status: inactive
Para activar UFW con el conjunto predeterminado de reglas, ejecute
ufw enable
Para deshabilitar la ejecución del cortafuegos
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
Salida
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
Para denegar todas las conexiones entrantes, ejecute
ufw default deny incoming
Salida
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, primero permita ssh. 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 nombre de 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 /etc/services
archivo.
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 ufw
Para activar el firewall, inicie sesión como root y ejecute el siguiente comando:
ufw enable
Es posible que reciba la siguiente advertencia
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Si selecciona Sí, obtendrá el siguiente resultado
Firewall is active and enabled on system startup
Firewall ahora está activo y se iniciará en cada arranque. Podemos volver a mirar las reglas del cortafuegos:
ufw status
La salida ahora mostrará el estado del firewall más los servicios/puertos permitidos
Salida
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)
Permitiendo conexiones en ufw
Puede permitir fácilmente la conexión entrante en el puerto/rango, el nombre de la aplicación, la dirección IP/subred en ufw.
Mira los ejemplos a continuación.
a) Permitir aplicaciones por nombre o número de puerto/rango
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 dirección 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 que puede 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 direcciones IP se conecte al sistema, use la notación CIDR para especificar una máscara de red
ufw allow from 192.168.1.0/24
Lo anterior permite que IPs 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 direcciones 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
Por defecto, ufw está configurado para denegar todas las conexiones entrantes.
a) Dirección IP / subred
Si queremos bloquear el acceso de alguna dirección IP específica, podemos hacerlo con el siguiente 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, bloqueemos 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á rangos de puertos*
Eliminar y hacer un seguimiento de las reglas
Cuando agrega muchas reglas, puede hacer un mejor seguimiento de ellas al ver sus números. Puede obtener números con el siguiente comando:
ufw status numbered
Salida
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 la regla número 2. Lo hacemos con el siguiente comando:
ufw delete 2
Nota:
Después de eliminar la segunda regla en el cortafuegos, la regla 3 ahora será la nueva regla 2. Entonces, si desea eliminar la regla 3 actual, la eliminará usando 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
Inicio de sesión 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 cerrar sesión
Los registros están por defecto en /var/log/ufw.log
Para verlos en tiempo real, usa 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 de 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 múltiples 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 comandos ufw. Entonces, si desea que se aplique alguna regla primero, la quiere 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 después de las reglas de comando ufw. Son buenos para usar si desea anular alguna regla y aplicarla sin importar qué. Nuevamente, dos archivos, para dos versiones del protocolo IP que se utilizan actualmente.
/etc/default/ufw
Aquí tenemos módulos del kernel que usa ufw, así como otras configuraciones generales. Puede editar cualquiera de estos archivos de configuración solo como raíz y puede usar cualquier editor de texto que desee.
Evite agregar reglas duplicadas
A continuación, observemos el mecanismo contra las reglas duplicadas. Primero abriremos el puerto 101
sudo ufw allow 100
Tenga en cuenta que el comando sin protocolo como el anterior abre tanto el puerto UDP como el puerto TCP. Entonces, ejecutemos el mismo comando nuevamente para ver qué sucede
ufw allow 100
Salida
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 TCP y 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 otra 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 al valor predeterminado para el puerto 101.
Para cerrar algún puerto, ejecute los mismos comandos, pero en su lugar permita, escriba denegar.
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 cortafuegos muy poderoso para regular el tráfico a su sistema. Siéntase libre de probar los comandos en su sistema.