Volver al blog

Conceptos básicos de UFW: Aprendiendo los comandos esenciales del cortafuegos

Conceptos básicos de UFW: Aprendiendo los comandos esenciales del cortafuegos

Introducción

UFW significa firewall sin complicaciones (uncomplicated firewall). Es una plataforma frontend que le permite administrar fácilmente las funciones y comandos de su firewall. Obtiene UFW como una opción predeterminada con su Ubuntu servidor. Maximizar el potencial de los comandos y funciones del firewall puede ser difícil si aún no está familiarizado con la herramienta.

Nuestro objetivo es proporcionarle una guía completa que pueda utilizar como principiante. Complementaremos las explicaciones con ejemplos de varias acciones que puede realizar con UFW. Muchas de las reglas serán muy útiles para los servicios y actividades cotidianas. ¡Comencemos!

Requisitos previos

Antes de continuar leyendo, asegúrese de que su UFW esté configurado con el conjunto de reglas predeterminado. Esto significa que el firewall permite el tráfico saliente pero bloquea el tráfico entrante. El beneficio de este restablecimiento predeterminado es que puede seleccionar qué tráfico permitir a través del firewall. Si no está seguro del estado del conjunto de reglas actual en su UFW, use este comando para verificarlo: sudo ufw status. También puede usar este comando:

Aparte de eso, es libre de saltar a la sección que sea más relevante para sus necesidades. No tiene que usar necesariamente cada uno de los comandos proporcionados en esta guía. Puede combinarlos según sus necesidades personales.

Cómo bloquear una dirección IP

Comencemos con una de las funciones más básicas de cualquier firewall: bloquear direcciones IP. Existe un comando muy simple que puede usar para bloquear cualquier conexión de red que provenga de una dirección IP determinada. Digamos, por ejemplo, que la dirección IP específica en nuestro caso es 15.15.15.51. Puede sustituir este valor con la dirección IP que desea bloquear a través de su UFW. Este es el comando que usaría para este propósito:

Aquí, from 15.15.15.51 indica únicamente la dirección IP de origen, que es ‘15.15.15.51’. Si en su lugar hay una subred que desea especificar, puede agregarla de la siguiente manera: 15.15.15.0/24. El comando funcionará igual de bien. Puede especificar esta dirección IP de origen en cualquier regla de firewall que desee, como la regla allow.

  • Bloqueo de conexiones de interfaz de red

A veces, el requisito puede ser bloquear las conexiones de red que se originan en una dirección IP específica hacia una interfaz de red específica. Si este es el caso, tendremos que especificar la interfaz de red junto con la dirección IP de origen. Para este ejemplo, considere que la dirección IP de origen es 15.15.15.51 y la interfaz de red es eth0:

Al igual que la dirección IP de origen, también puede especificar la interfaz de red en cualquier regla de firewall. El propósito de estas especificaciones es limitar la regla de firewall dada a una red o conexión en particular únicamente.

Cómo permitir conexiones SSH

Esta sección es relevante para usted si está utilizando un servidor en la nube. Para poder establecer una conexión con su servidor en la nube, necesita que el firewall permita las conexiones SSH entrantes. Estas conexiones SSH se realizan a través del puerto 22. Puede seguir este tutorial para aprender cómo usar SSH para conectarse a un servidor remoto en Ubuntu.

Al establecer conexiones SSH, puede administrar con éxito su servidor en la nube utilizando su unidad local. Aquí cubriremos las diversas reglas relevantes para la configuración del firewall asociado a SSH:

  • Permitir SSH

Use el siguiente comando para permitir todas las conexiones SSH entrantes:

Por otro lado, también puede ejecutar el comando especificando en su lugar el número de puerto del servicio SSH:

  • Permitir SSH entrante desde una dirección IP específica

En caso de que solo desee permitir conexiones SSH entrantes desde una dirección IP o subred específica, tiene la capacidad de especificar el origen. Por ejemplo, supongamos que la subred que desea permitir es 15.15.15.0/24. Aquí está el comando que necesitará ejecutar:

  • Permitir Rsync entrante desde una dirección IP específica

Ejecutándose en el puerto 873, Rsync le permite realizar transferencias de archivos de un sistema informático a otro. Si solo desea permitir la conexión Rsync proveniente de una dirección IP o subred específica (en este ejemplo, 15.15.15.0/24), puede hacerlo utilizando este comando:

Esto significa que se permitirá a toda la subred 15.15.15.0/24 realizar Rsync a su servidor. Aquí también tiene un completo tutorial sobre cómo utilizar Rsync para sincronizar directorios locales y remotos en su servidor.

Cómo configurar las solicitudes del servidor web

A continuación, pasaremos a las reglas relacionadas con el servicio de servidor web. Los servidores web como Apache y Nginx generalmente reciben solicitudes para conexiones HTTP y HTTPS desde dos puertos: el puerto 80 y el puerto 443. El puerto 80 atiende las solicitudes HTTP. El puerto 443 es responsable de las solicitudes HTTPS.

Como comentamos en los requisitos previos, está utilizando el conjunto de reglas predeterminado para UFW. Según este conjunto de reglas, el cortafuegos bloquea o deniega todo el tráfico entrante. Por lo tanto, tendrá que configurar nuevas reglas que permitan al servidor recibir y leer estas solicitudes entrantes.

  • Permitir todo el tráfico HTTP

Si desea permitir todas las conexiones y solicitudes HTTP provenientes del puerto 80, use el comando:

También puede utilizar el número de puerto (puerto 80) para especificar el servicio HTTP en el comando:

  • Permitir todo el tráfico HTTPS

Si desea permitir todas las conexiones y solicitudes HTTPS provenientes del puerto 443, ejecute este comando:

De manera similar al comando anterior, puede reemplazar 'https' con el número de puerto del servicio HTTPS:

  • Permitir todo el tráfico HTTP y HTTPS

En caso de que desee permitir tanto las solicitudes HTTP como HTTPS, puede utilizar una regla colectiva para ambas. A través de este único comando, puede permitir el tráfico entrante tanto desde el puerto 80 como desde el puerto 443:

El comando proto tcp es necesario cuando se especifican múltiples puertos a la vez.

También puede seguir estas guías detalladas sobre cómo proteger Nginx y Apache con Let’s Encrypt en Ubuntu.

Cómo permitir MySQL

MySQL las conexiones entran a través del puerto 3306. Tendrá que usar una regla para permitir el tráfico entrante si un cliente está utilizando su base de datos MySQL en un servidor remoto. Siga nuestro tutorial para aprender los conceptos básicos de MySQL y cómo configurar MySQL en un servidor.

  • Permitir MySQL desde una dirección IP específica

Como ya hemos visto en reglas anteriores, debe especificar el origen para permitir las conexiones MySQL entrantes. Su origen puede ser una dirección IP específica o una subred. En nuestro ejemplo, utilizaremos toda la subred 15.15.15.0/24 para ejecutar el comando:

  • Permitir MySQL en una interfaz de red específica

Utilizará un comando diferente si también necesita especificar la interfaz de red a la que está permitiendo las conexiones MySQL. Supongamos que la interfaz de red que está utilizando es una interfaz de red privada llamada eth1. Puede sustituir este valor con el nombre de su propia interfaz de red:

Cómo permitir PostgreSQL

Las conexiones de PostgreSQL entran a través del puerto 5432. De manera similar a las conexiones MySQL, si un cliente está utilizando la base de datos PostgreSQL en un servidor remoto, debe permitir el tráfico entrante. Puede hacerlo utilizando los comandos que se presentan a continuación.

  • Permitir PostgreSQL desde una dirección IP específica

Si sabe que las conexiones de PostgreSQL provienen de una subred o dirección IP específica, debe especificar el origen. Aquí, utilizaremos el ejemplo de la subred 15.15.15.0/24 una vez más:

En caso de que su política OUTPUT no esté configurada como ACCEPT, tendrá que ejecutar un segundo comando. Este comando permite el tráfico saliente de las conexiones PostgreSQL ya establecidas.

  • Permitir PostgreSQL en una interfaz de red específica

De manera similar a la regla anterior, permitiremos las conexiones PostgreSQL a una interfaz de red específica. En nuestro caso es eth1:

En caso de que su política OUTPUT no esté configurada como ACCEPT, tendrá que ejecutar un segundo comando. Este comando permite el tráfico saliente de las conexiones PostgreSQL ya establecidas. Puede aprender cómo configurar PostgreSQL en Ubuntu siguiendo nuestro tutorial detallado.

Cómo configurar servidores de correo

También es posible que esté utilizando servidores de correo como Sendmail y Postfix en su sistema. Estos servidores están abiertos a varios puertos. Los puertos en los que escuchan dependen de los protocolos configurados para la entrega de correo. Es por eso que primero tendrá que determinar qué protocolos está ejecutando en su sistema de entrega de correo. Posteriormente, permitirá los tipos de tráfico relevantes según esta información.

  • Bloquear el correo SMTP saliente

Antes de pasar a los comandos que permiten el tráfico entrante para sus servidores de correo, veamos cómo puede bloquear el correo saliente SMTP. Puede usar este comando si no desea que su servidor envíe ningún correo saliente. El correo SMTP utiliza el puerto 25. Use este comando para bloquear este tráfico:

Como resultado de ejecutar este comando, su cortafuegos descartará todo el tráfico saliente en el puerto 25. Si desea bloquear otro puerto, simplemente reemplace el puerto '25' con el número de puerto correspondiente.

  • Permitir SMTP entrante

Ahora que sabe cómo bloquear el tráfico saliente, permitir el tráfico entrante le parecerá igual de sencillo. Use este comando para permitir que el servidor reciba conexiones SMTP en el puerto 25:

  • Permitir IMAP entrante

Si desea permitir que el servidor establezca una conexión IMAP en el puerto 143, use el siguiente comando:

  • Permitir IMAPS entrante

Use este comando para permitir que el servidor responda a conexiones IMAPS en el puerto 993:

  • Permitir POP3 entrante

Este comando permite que su servidor responda a todas las conexiones POP3 a través del puerto 110:

  • Permitir POP3S entrante

Finalmente, puede permitir que su servidor reciba solicitudes desde el puerto 995 para conexiones POP3S usando este comando:

Conclusión

Esta guía le ayudará a familiarizarse con las funciones básicas de UFW. Hemos cubierto los comandos esenciales con los que debe estar familiarizado para poder configurar su cortafuegos. Puede elegir los comandos que mejor se adapten a sus requisitos específicos para crear una solución de cortafuegos personalizada. La naturaleza flexible de UFW permite dicha personalización. Experimente para descubrir qué funciona mejor para usted.

¡Feliz informática!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.