Configurar Firewall con UFW en un Servidor Ubuntu y Debían
Introducción
Una de las primeras líneas de defensa en la seguridad de su servidor es Firewall en funcionamiento. En el pasado, esto a menudo se hacía a través de complicadas y arcanas utilidades. Hay mucha funcionalidad incorporada a estas utilidades, iptables siendo las más populares hoy en día, pero requieren un esfuerzo decente en nombre del usuario para aprender y entenderlas. Las reglas de Firewall no son algo que usted quiera adivinar.
Con este fin, en esta guía presentaremos a UFW como una alternativa considerablemente y muy fácil de usar.
¿Qué es UFW?
UFW, o Uncomplicated Firewall, es un front-end para iptables. Su objetivo principal es hacer la gestión de su Firewall drop-dead simple y proporcionar una interfaz fácil de usar. Es bien soportado y popular en la comunidad de Linux, incluso instalado de forma predeterminada en muchas distribuciones. Como tal, es una gran manera de empezar a asegurar su sevidor.
Antes de Empezar:
Primero, obviamente, usted quiere asegurarse de que UFW esté instalado. Debe instalarse de forma predeterminada en Ubuntu, pero si por alguna razón no lo es, puede instalar el paquete mediante aptitude o apt-get mediante los siguientes comandos:
sudo aptitude install ufw
or
sudo apt-get install ufw
Compruebe el Estado
Puede comprobar el estado de UFW escribiendo:
>sudo ufw status
En este momento, probablemente le diga que está inactivo. Siempre que UFW, esté activo, obtendrá una lista de las reglas actuales que se parecen a esto:
>Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
Uso de IPv6 con UFW
Si su servidor está configurado para IPv6, asegúrese de que UFW está configurado para admitir IPv6 de modo que configure tanto las reglas de Firewall IPv4 como IPv6. Para ello, abra la configuración UFW con este comando:
>sudo vi /etc/default/ufw
A continuación, asegúrese de que "IPV6" esté configurado como "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 firewall para IPv4 e IPv6, cuando sea apropiado.
Ajustes Predeterminados
Una de las cosas que harán la configuración de cualquier Firewall más fácil es definir algunas reglas predeterminadas para permitir y denegar las conexiones. Los valores predeterminados de UFW son negar todas las conexiones entrantes y permitir todas las conexiones salientes. Esto significa que cualquier persona que intente llegar a su servidor no podría conectarse, mientras que cualquier aplicación dentro del servidor podría alcanzar el mundo exterior. Para establecer los valores predeterminados utilizados por UFW, utilice los siguientes comandos:
sudo ufw default deny incoming
and
sudo ufw default allow outgoing
Nota: si quieres ser un poco más restrictivo, también puedes negar todas las solicitudes salientes. La necesidad de esto es discutible, pero si usted tiene un servidor que se enfrenta al público, podría ayudar a prevenir cualquier tipo de conexiones de shell remoto. Hace que su Firewall sea más complicado de manejar porque tendrá que configurar reglas para todas las conexiones salientes. Puede configurarlo como el predeterminado con lo siguiente:
sudo ufw default deny outgoing
Permitir Conexiones
La sintaxis es bastante simple cambia las reglas del Firewall emitiendo comandos en el terminal. Si activamos nuestro Furewall ahora, negaríamos todas las conexiones entrantes. Si estás conectado a través de SSH a tu servidor, eso sería un problema porque estarías bloqueado de tu servidor. Vamos a habilitar las conexiones SSH a nuestro servidor para evitar que eso suceda:
sudo ufw allow ssh
Como puede ver, la sintaxis para agregar servicios es bastante simple. UFW viene con algunos valores predeterminados para usos comunes. Nuestro comando SSH arriba es un ejemplo. Es básicamente sólo taquigrafía para:
sudo ufw allow 22/tcp
Este comando permite una conexión en el puerto 22 usando el protocolo TCP. Si nuestro servidor SSH se está ejecutando en el puerto 2222, podríamos habilitar las conexiones con el siguiente comando:
sudo ufw allow 2222/tcp
Otras Conexiones que Podríamos Necesitar
Ahora es un buen momento para permitir algunas otras conexiones que podamos necesitar. Si estamos protegiendo un servidor web con acceso FTP, podríamos necesitar estos comandos:
sudo ufw allow www
or sudo ufw allow 80/tcp
sudo ufw allow ftp
or sudo ufw allow 21/tcp
Usted kilometraje variará en qué puertos y servicios necesita abrir. Probablemente habrá un poco de pruebas necesarias. Además, desea asegurarse de que deja su conexión SSH permitida.
Rangos de Puerto
También puede especificar rangos de puertos con UFW. Para permitir puertos 1000 a 2000, utilice el comando:
sudo ufw allow 1000:2000/tcp
Si desea UDP:
sudo ufw allow 1000:2000/udp
Direcciones IP
También puede especificar direcciones IP. Por ejemplo, si quería permitir conexiones desde una dirección IP específica (diga mi dirección de trabajo o de casa), usaría este comando:
sudo ufw allow from 192.168.255.255
Negar Conexiones
Nuestra configuración predeterminada es denegar todas las conexiones entrantes. Esto hace que las reglas de Firewall sean más fáciles de administrar, ya que solo estamos permitiendo selectivamente ciertos puertos y direcciones IP a través de. Sin embargo, si desea voltearlo y abrir todos los puertos de su servidor (no recomendado), podría permitir todas las conexiones y, a continuación, podria negar restrictivamente los puertos que no desea dar acceso a mediante la sustitución de "permitir" con "denegar" en el Comandos anteriores. Por ejemplo:
sudo ufw allow 80/tcp
Permitiría el acceso al puerto 80 mientras:
sudo ufw deny 80/tcp
Negaría el acceso al puerto 80.
Eliminación de Reglas
Hay dos opciones para eliminar reglas. El más sencillo es utilizar la siguiente sintaxis:
sudo ufw delete allow ssh
Como se puede ver, usamos el comando "delete" e ingresamos las reglas que queremos eliminar después de eso. Otros ejemplos incluyen:
sudo ufw delete allow 80/tcp
or
sudo ufw delete allow 1000:2000/tcp
Esto puede ser complicado cuando tienes reglas que son largas y complejas.
Una alternativa más sencilla y de dos pasos es escribir:
sudo ufw status numbered
Que tendrá lista UFW todas las reglas actuales en una lista numerada. Entonces, emitimos el comando:
sudo ufw delete [number]
Donde "[número]" es el número de línea del comando anterior.
Encender
Después de que tengamos UFW donde queremos, podemos activarlo usando este comando (recuerde: si se está conectando a través de SSH, asegúrese de que ha configurado su puerto SSH, comúnmente el puerto 22, para que se le permita recibir Conexiones):
sudo ufw enable
Debería volver a ver el símbolo del sistema si todo iba bien. Puede comprobar el estado de sus reglas ahora escribiendo:
sudo ufw status
or
sudo ufw status verbose
Para la visualización más completa.
Para desactivar UFW, utilice el siguiente comando:
sudo ufw disable
Restablecer Todo
Si, por alguna razón, necesita restablecer las reglas de su servidor a sus valores predeterminados, puede hacerlo escribiendo este comando:
sudo ufw reset
Conclusión
Ahora debe tener un servidor configurado correctamente para restringir el acceso a un subconjunto de puertos o direcciones IP.
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