¿Cómo configurar un servidor de seguridad (Firewall) con UFW en un servidor de Ubuntu y Debian en la Nube?

Una de las primeras líneas de defensa para proteger su servidor de la nube es un firewall funcionamiento. Para este fin, UFW es una alternativa considerablemente más fácil de usar.

 ¿Qué es la UFW?

Uncomplicated Firewall (ufw) es un cortafuegos diseñado para ser de fácil uso desarrollado por Ubuntu. Utiliza la línea de comandos para configurar las iptables usando un pequeño número de comandos simples.

 

 Antes de empezar

En primer lugar, obviamente, usted quiere asegurarse de UFW está instalado. Debe ser instalado por defecto en Ubuntu, pero si por alguna razón no lo es, se puede instalar el paquete de aptitude o apt-get usando los siguientes comandos:

$ sudo aptitude install ufw

o

$ sudo apt-get install ufw

 

Comprobar el estado

Puede comprobar el estado de la UFW, escribiendo:

$ sudo ufw status

En este momento, probablemente le dirá que está inactiva. Siempre que UFW está activo, obtendrá una lista de las normas actuales que se parece a esto:

Status: active
To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere

 

El uso de IPv6 con UFW

Si su VPS está configurado para IPv6, asegúrese de que UFW está configurado para soportar IPv6 para que se configure tanto su IPv4 e IPv6 reglas de firewall. Para ello, abra la configuración de la UFW con este commano:

$ sudo nano /etc/default/ufw

A continuación, asegúrese de que "IPv6" está ajustado a "sí", así:

IPV6=yes

Guardar y Salir. A continuación, reinicie el servidor de seguridad con los siguientes comandos:

$ sudo ufw disable
$ sudo ufw enable

Ahora UFW configurará el cortafuegos para IPv4 e IPv6, cuando sea apropiado.

 

Configuraciones predeterminadas

Una de las cosas que harán que la configuración de cualquier servidor de seguridad más fácil es definir algunas reglas predeterminadas para permitir y denegar conexiones. los valores predeterminados del UFW son para negar todas las conexiones entrantes y permitir que todas las conexiones salientes. Esto significa que cualquier persona tratando de comunicarse con el servidor de nube no sería capaz de conectar, mientras que cualquier aplicación dentro del servidor sería capaz de llegar al mundo exterior. Para establecer los valores por defecto utilizados por la UFW, utilizaría los siguientes comandos:

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Nota: si quieres ser un poco más restrictiva, también se puede denegar todas las solicitudes de salida también. La necesidad de esto es discutible, pero si usted tiene un servidor de la nube de cara al público, podría ayudar a prevenir contra cualquier tipo de conexiones de shell remotos. Se hace que el servidor de seguridad más difícil de manejar, ya que tendrá que establecer reglas para todas las conexiones salientes también. Puede establecer esto como el defecto a la siguiente:

$ sudo ufw default deny outgoing

 

Permitir conexiones

La sintaxis es bastante simple. Cambia las reglas del firewall mediante la emisión de comandos en el terminal. Si nos presentamos en nuestro servidor de seguridad ahora, sería negar todas las conexiones entrantes. Si está conectado a través de SSH al servidor de la nube, que sería un problema, ya que sería bloqueado de su servidor. Vamos a habilitar conexiones SSH a nuestro servidor para evitar que esto ocurra:

$ sudo ufw allow ssh

Con el comando "ufw allow nombre_servicio" para permitir

 

Otras conexiones que podríamos necesitar

Si tenemos acceso a FTP puede ser que necesite estos comandos:

$ sudo ufw allow www or sudo ufw allow 80/tcp sudo ufw allow ftp or sudo ufw allow 21/tcp

Los rangos de puertos

También puede especificar rangos de puertos con UFW. Para permitir que los puertos 1000 y 2000, utilice el comando:

$ sudo ufw allow 1000:2000/tcp

Si desea UDP:

$ sudo ufw allow 1000:2000/udp

IP Addresses

También puede especificar direcciones IP. Por ejemplo, si quería permitir conexiones desde una dirección IP específica (decir que mi trabajo o domicilio), que haría uso de este comando

$ sudo ufw allow from 192.168.255.255

 

Negando Conexiones

Nuestra predeterminado establecido es negar todas las conexiones entrantes. Esto hace que las reglas de firewall más fácil de administrar ya que estamos permitiendo sólo selectivamente ciertos puertos y direcciones IP a través. Sin embargo, si desea darle la vuelta y abrir todos los puertos de su servidor (no se recomienda), podría permitir que todas las conexiones y luego negar restrictiva puertos que no quiere dar acceso a mediante la sustitución de "permitir" por "negar" en el comandos anteriores. Por ejemplo:

$ sudo ufw allow 80/tcp

permitiría el acceso al puerto 80, mientras que:

$ sudo ufw deny 80/tcp

negaría el acceso al puerto 80.

 

Eliminación de reglas

Hay dos opciones para eliminar reglas. La más sencilla es utilizar la siguiente sintaxis:

$ sudo ufw delete allow ssh

Como se puede comprobar, utilizamos el comando "delete" y la entrada de las reglas que desea eliminar después de eso. Otros ejemplos incluyen:

$ sudo ufw delete allow 80/tcp

o

$ sudo ufw delete allow 1000:2000/tcp

Esto puede ser complicado cuando se tiene reglas que son largos y complejos.
Un simple, alternativa de dos pasos es teclear:

$ sudo ufw status numbered

El cual tendrá la lista de UFW a cabo todas las normas vigentes en una lista numerada. Luego, ejecute el comando:

$ sudo ufw delete [number]

 

Encenderlo el cortafuego

$ sudo ufw enable

Usted debe ver el símbolo del sistema de nuevo si todo ha ido bien. Puede comprobar el estado de sus reglas ahora escribiendo:

$ sudo ufw status

o para la exhibición más completa

$ sudo ufw status verbose

Para apagagar el cortafuego

$ sudo ufw disable

 

Restablecer Todo

$ sudo ufw reset

 

Ver perfiles de aplicaciones

$ sudo ufw app list

 

Ver perfil completa de OpenSSH

$ sudo ufw app info OpenSSH