Cómo Configurar un Firewall con UFW en Ubuntu 14.04.

Actualizado el . Posteado en Tutoriales/VideoTutoriales. Visitado 6044 veces.

 configurar un firewall con ufw en ubuntu

Introducción

Cómo Configurar un Firewall con UFW en Ubuntu 14.04. No es complicado manejar UFW, o Firewall, en donde iptables es una interfaz que está orientada a simplificar el proceso de configuración de un firewall. Si bien iptables es una herramienta sólida y flexible, puede ser difícil para los principiantes aprender a usarla para configurar adecuadamente un firewall. Si está buscando comenzar a proteger su red y no está seguro de qué herramienta usar, UFW puede ser la opción correcta para usted.

Este tutorial le mostrará cómo configurar un firewall con UFW en Ubuntu 14.04.

Prerrequisitos

Antes de comenzar a utilizar este tutorial, debe tener una cuenta de superusuario no root, un usuario con privilegios sudo, configurada en su servidor Ubuntu. Puede aprender cómo hacer esto completando al menos los pasos 1 a 3 en la Configuración inicial del servidor Ubuntu

UFW está instalado por defecto en Ubuntu. Si se ha desinstalado por alguna razón, puede instalarlo con apt-get :

sudo apt-get install ufw

Usando IPv6 con UFW

Si su servidor Ubuntu tiene habilitado IPv6, asegúrese de que UFW esté configurado para admitir IPv6 para que administre reglas de firewall para IPv6 además de IPv4. Para hacer esto, abra la configuración de UFW con su editor favorito. Usaremos nano:

sudo nano /etc/default/ufw

Luego, asegúrese de que el valor de "IPV6" sea igual a "sí". Él debe parecer así.

/etc/default/ufw excerpt
...
IPV6=yes
...

Para Guardar y Salir. Presiona Ctrl-X para salir del archivo, luego Y para guardar los cambios que hiciste, luego ENTER para confirmar el nombre del archivo.

Cuando UFW está habilitado, se configurará para escribir reglas de firewall IPv4 e IPv6.

Este tutorial está escrito con IPv4 en mente, pero funcionará bien para IPv6 mientras lo habilite.

Verifique el Estado y las Reglas de UFW

En cualquier momento, puede verificar el estado de UFW con este comando:

sudo ufw status verbose

Por defecto, UFW está deshabilitado, por lo que debería ver algo como esto:

Output:
Status: inactive

Si UFW está activo, la salida dirá que está activo y mostrará una lista de las reglas establecidas. Por ejemplo, si el Firewall está configurado para permitir conexiones SSH (puerto 22) desde cualquier lugar, el resultado podría verse más o menos así:

Output:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere

Como tal, use el comando de estado si alguna vez necesita verificar cómo UFW ha configurado el firewall.

Antes de habilitar UFW, querremos asegurarnos de que su firewall esté configurado para permitirle conectarse a través de SSH. Comencemos por establecer las políticas predeterminadas.

Configurar las Políticas Predeterminadas

Si recién está comenzando con su firewall, las primeras reglas para definir son sus políticas predeterminadas. Estas reglas controlan cómo manejar el tráfico que no coincide explícitamente con otras reglas. Por defecto, UFW está configurado para denegar todas las conexiones entrantes y permitir todas las conexiones salientes. Esto significa que cualquier persona que intente llegar a su servidor no podra conectarse, mientras que cualquier aplicación dentro del servidor podría alcanzar el mundo exterior.

Establezcamos las reglas de UFW en los valores predeterminados para que podamos estar seguros de que podrá seguir este tutorial. Para configurar los valores predeterminados utilizados por UFW, use estos comandos:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Como habrás adivinado, estos comandos establecen los valores predeterminados para denegar la entrada y permitir conexiones salientes. Estos valores predeterminados de firewall, por sí solos, podrían ser suficientes para una computadora personal, pero los servidores generalmente necesitan responder a solicitudes entrantes de usuarios externos. Veremos eso a continuación.

Permitir Conexiones SSH

Si habilitamos nuestro firewall UFW ahora, denegaría todas las conexiones entrantes. Esto significa que necesitaremos crear reglas que permitan explícitamente conexiones entrantes legítimas (conexiones SSH o HTTP, por ejemplo), si queremos que nuestro servidor responda a esos tipos de solicitudes. Si está utilizando un servidor en la nube, probablemente quiera permitir conexiones SSH entrantes para que pueda conectarse y administrar su servidor.

Para configurar su servidor para permitir conexiones SSH entrantes, puede usar este comando UFW:

sudo ufw allow ssh

Esto creará reglas de firewall que permitirán todas las conexiones en el puerto 22, que es el puerto que escucha el daemon SSH. UFW sabe lo que significa "ssh" y un montón de otros nombres de servicios, porque está listado como un servicio que usa el puerto 22 en el /etc/services .

De hecho, podemos escribir la regla equivalente especificando el puerto en lugar del nombre del servicio. Por ejemplo, este comando funciona igual que el anterior:

sudo ufw allow 22

Si configuró su daemon SSH para usar un puerto diferente, tendrá que especificar el puerto apropiado. Por ejemplo, si su servidor SSH está escuchando en el puerto 2222, puede usar este comando para permitir conexiones en ese puerto:

sudo ufw allow 2222 

Ahora que su Firewall está configurado para permitir conexiones SSH entrantes, podemos habilitarlo.

Habilitar UFW

Para habilitar UFW, use este comando:

sudo ufw enable

Recibirá una advertencia que dice que el "comando puede interrumpir las conexiones ssh existentes". Ya configuramos una regla de firewall que permite conexiones SSH, por lo que debería estar bien continuar. Responda al aviso con y .

El firewall ahora está activo. No dude en ejecutar el comando sudo ufw status verbose para ver las reglas establecidas.

Permitir otras Conexiones

Ahora debería permitir todas las otras conexiones a las que su servidor necesita responder. Las conexiones que debe permitir dependen de sus necesidades específicas. Afortunadamente, ya sabes cómo escribir reglas que permiten conexiones basadas en un nombre de servicio o puerto: ya lo hicimos para SSH en el puerto 22.

Mostraremos algunos ejemplos de servicios muy comunes que quizás deba permitir. Si tiene otros servicios para los cuales desea permitir todas las conexiones entrantes, siga este formato.

Puerto HTTP 80

Las conexiones HTTP, que es lo que utilizan los servidores web no cifrados, se pueden permitir con este comando:

sudo ufw allow http

Si prefiere usar el número de puerto, 80, use este comando:

sudo ufw allow 80

HTTPS-puerto 443

Las conexiones HTTPS, que es lo que utilizan los servidores web cifrados, se pueden permitir con este comando:

sudo ufw allow https

Si prefiere usar el número de puerto, 443, use este comando:

sudo ufw allow 443

Puerto FTP 21

Las conexiones de FTP, que se utilizan para transferencias de archivos sin encriptar (que probablemente no debería usar de todos modos), se pueden permitir con este comando:

sudo ufw allow ftp

Si prefiere usar el número de puerto, 21, use este comando:

sudo ufw allow 21/tcp

Permitir Rangos de Puertos Específicos

Puede especificar rangos de puertos con UFW. Algunas aplicaciones usan puertos múltiples, en lugar de un solo puerto.

Por ejemplo, para permitir las conexiones X11, que usan los puertos 6000-6007, use estos comandos:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

Al especificar rangos de puertos con UFW, debe especificar el protocolo ( tcp o udp ) al que deben aplicarse las reglas. No hemos mencionado esto antes porque no especificar el protocolo simplemente permite ambos protocolos, lo que está bien en la mayoría de los casos.

Permitir Direcciones IP Específicas

Cuando trabaje con UFW, también puede especificar direcciones IP. Por ejemplo, si desea permitir conexiones desde una dirección IP específica, como una dirección IP de trabajo o doméstica de 15.15.15.51 , debe especificar "desde" luego la dirección IP:

sudo ufw allow from 15.15.15.51 

También puede especificar un puerto específico al que la dirección IP puede conectarse agregando "a cualquier puerto" seguido del número de puerto. Por ejemplo, si desea permitir que 15.15.15.51 conecte al puerto 22 (SSH), use este comando:

sudo ufw allow from 15.15.15.51 to any port 22 

Permitir Subredes

Si desea permitir una subred de direcciones IP, puede hacerlo usando la notación CIDR para especificar una máscara de red. Por ejemplo, si desea permitir todas las direcciones IP que van desde 15.15.15.1 a 15.15.15.254 , puede usar este comando:

sudo ufw allow from 15.15.15.0/24 

Del mismo modo, también puede especificar el puerto de destino al que la subred 15.15.15.0/24 puede conectarse. Nuevamente, usaremos el puerto 22 (SSH) como ejemplo:

sudo ufw allow from 15.15.15.0/24 to any port 22

Permitir Conexiones a una Interfaz de Red Específica

Si desea crear una regla de Firewall que solo se aplique a una interfaz de red específica, puede hacerlo especificando "allow in on" seguido del nombre de la interfaz de red.

Es posible que desee buscar sus interfaces de red antes de continuar. Para hacerlo, usa este comando:

ip addr

Output Excerpt:
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
...
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
...

La salida resaltada indica los nombres de la interfaz de red. Por lo general, reciben el nombre de "eth0" o "eth1".

Entonces, si su servidor tiene una interfaz de red pública llamada eth0 , puede permitir el tráfico HTTP (puerto 80) con este comando:

sudo ufw allow in on eth0 to any port 80 

De lo contrario, su servidor podría recibir solicitudes HTTP de Internet público.

O, si quiere que su servidor de base de datos MySQL (puerto 3306) escuche conexiones en la interfaz de red privada eth1 , por ejemplo, podría usar este comando:

sudo ufw allow in on eth1 to any port 3306 

Esto permitiría que otros servidores en su red privada se conecten a su base de datos MySQL.

Denegar Conexiones

Si no ha cambiado la política predeterminada para las conexiones entrantes, UFW está configurado para denegar todas las conexiones entrantes. En general, esto simplifica el proceso de creación de una política de firewall seguro al requerirle que cree reglas que permitan explícitamente la administración de puertos y direcciones IP específicos. Sin embargo, a veces querrá negar conexiones específicas basadas en la dirección IP o subred de origen, tal vez porque sabe que su servidor está siendo atacado desde allí. Además, si desea cambiar su política entrante predeterminada para permitir (lo cual no se recomienda en interés de la seguridad), deberá crear reglas de denegación para cualquier servicio o dirección IP para los que no desee permitir conexiones.

Para escribir reglas de denegación , puede usar los comandos que describimos anteriormente, excepto que debe reemplazar "permitir" por "denegar".

Por ejemplo, para negar conexiones HTTP, puede usar este comando:

sudo ufw deny http

O si quiere negar todas las conexiones desde 15.15.15.51 , puede usar este comando:

sudo ufw deny from 15.15.15.51 

Si necesita ayuda para escribir cualquier otra regla de denegación , simplemente mire las reglas de permiso anteriores y actualícelas según corresponda.

Ahora echemos un vistazo a cómo eliminar reglas.

Eliminar Reglas

Saber cómo eliminar las reglas del firewall es tan importante como saber cómo crearlas. Hay dos formas diferentes de especificar qué reglas eliminar: por número de regla o por regla real (similar a cómo se especificaron las reglas cuando se crearon). Comenzaremos con el método de eliminar por número de regla porque es más fácil, en comparación con escribir las reglas reales para eliminar, si es nuevo en UFW.

Por Número de Regla

Si usa el número de regla para eliminar reglas de firewall, lo primero que debe hacer es obtener una lista de sus reglas de firewall. El comando de estado de UFW tiene una opción para mostrar los números al lado de cada regla, como se muestra aquí:

sudo ufw status numbered

Numbered Output:
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

Si decidimos que queremos eliminar la regla 2, la que permite las conexiones del puerto 80 (HTTP), podemos especificarla en un comando de eliminación UFW como este:

sudo ufw delete 2 

Esto mostraría un mensaje de confirmación y luego eliminaría la regla 2, que permite conexiones HTTP. Tenga en cuenta que si tiene habilitado IPv6, también querrá eliminar la regla IPv6 correspondiente.

Por Regla Real

La alternativa a los números de reglas es especificar la regla real para eliminar. Por ejemplo, si desea eliminar la regla "permitir http", puede escribirla así:

sudo ufw delete allow http 

También puede especificar la regla por "permitir 80", en lugar de por nombre del servicio:

sudo ufw delete allow 80 

Este método eliminará las reglas IPv4 e IPv6, si existen.

¿Cómo Deshabilitar UFW? (opcional)

Si decide que no desea usar UFW por alguna razón, puede deshabilitarlo con este comando:

sudo ufw disable

Cualquier regla que hayas creado con UFW ya no estará activa. Siempre puede ejecutar sudo ufw enable si necesita activarlo más tarde.

Restablecer Reglas UFW (opcional)

Si ya tiene las reglas de UFW configuradas pero decide que desea volver a comenzar, puede usar el comando de reinicio:

sudo ufw reset

Esto deshabilitará UFW y eliminará cualquier regla que haya sido definida previamente. Tenga en cuenta que las políticas predeterminadas no cambiarán a su configuración original, si las modificó en algún momento. Esto debería darle un nuevo comienzo con UFW.

Conclusión

Su firewall ahora debería estar configurado para permitir (al menos) conexiones SSH. Asegúrese de permitir cualquier otra conexión entrante que su servidor, mientras limita las conexiones innecesarias, para que su servidor sea funcional y seguro.

Para obtener más información sobre las configuraciones de UFW más comunes, consulte este tutorial: Fundamentos de UFW: Reglas y Comandos de Firewall más Comunes.

Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian

licencia creative common

 

Sobre el Autor
Pipe Peña
Author: Pipe Peña
Soy un loco enamorado de la vida. Licenciado en Ciencias Sociales y Humanas, amante de la informática y la astrofísica. Me gusta crear e investigar proyectos que enriquezcan la construcción y desarrollo del conocimiento individual y colectivo. Me encantan los videojuegos, el cine, la química, matemáticas, la física cuántica y la música, en donde actualmente soy compositor. Me baso en la idea que toma Baruch Spinoza sobre Dios.

Imprimir


Comentar este artículo en los foros (0 respuestas).