Configuración de un firewall de manera sencilla en Debian/Ubuntu

Uno de los problemas principales a la hora de asegurar un servidor es la de filtrar el tráfico de entrada y de salida del mismo, asegurando así que todas las conexiones entrantes y salientes están controladas y sabemos desde donde podemos entrar a los servicios que queremos y no desde donde no queremos. En esta entrada veremos cómo realizar estos pasos de manera sencilla con ufw.

Instalación

El primer paso que debemos realizar es la instalación de UFW:

$ sudo apt install ufw

Con este paso instalamos el firewall y los comandos principales.

Recuerda repasar el /etc/default/ufw para ver que tenemos activada la opción IPV6=yes

Arranque y parada

Para activar el firewall debemos ejecutar, recuerda no activarlo hasta que tengas al menos acceso por ssh, por si metes la pata:

$ sudo ufw enable

Para desactivar el firewall:

$ sudo ufw disable

Resetear las reglas

Si la hemos cagado siempre podemos intentar empezar desde cero:

$ sudo ufw reset

Punto de partida

Para establecer una serie de principios:

  • Queremos que desde la red interna se pueda acceder sin problemas
  • Queremos que desde Internet tengamos restricciones en el tráfico

Para ello deberemos elegir muy bien las reglas de acceso en cada sentido y desde cada origen

Comprobación del estado del firewall

Para saber cómo está el firewall tenemos dos comandos, el primero nos dará su estado:

$ sudo ufw status numbered

Esto nos dará el lisatdo de reglas configuradas en el firewall de una manera sencilla

Si necesitamos saber más sobre el servicio:

$ sudo ufw status verbose

Esto nos mostrará más información del Firewall

Asegurando el acceso desde la Intranet

Para ello deberemos ejecutar alguna regla controlada:

$ sudo ufw allow from 192.168.1.0/24

En este caso estamos diciendo que queremos permitir el acceso desde nuestra red local, suponiendo que nuestra ip interna sea 192.168.1.x

Si nuestra red interna es 192.168.0.x ejecutaremos:

$ sudo ufw allow from 192.168.0.0/24

Permitiendo la salida de datos del servidor

Para ello deberemos decir que por defecto queremos permitir el tráfico saliente:

$ sudo ufw default allow outgoing

Esto nos ayuda a que si desde el servidor queremos crear conexiones hacia fuera no nos de ningún problema

En el caso de cortar todo el tráfico de entrada ejecutaríamos:

$ sudo ufw default deny incoming

Pero personalmente prefiero decir exactamente que quiero o no dejar entrar a mano

¿Qué puertos tenemos abiertos?

Para saber que puertos tenemos abiertos en nuestra máquina siempre podemos usar el comando nmap, instálalo en el caso de que no lo tengas:

$ sudo apt install nmap

Para saber los puertos abiertos te bastará con ejecutarlo desde el servidor:

$ nmap localhost

Aquí tendrás los puertos abiertos en tu servidor, y podrás hacer un listado de aquellos puertos que quieres cerrar su acceso desde fuera y cuales quieres dejar abiertos.

Cerrando acceso a puertos desde fuera

Para cerrar por ejemplo el acceso a las carpetas compartidas desde fuera ejecutaremos las siguientes reglas:

$ sudo ufw deny from 0.0.0.0/0 to any port 139

$ sudo ufw deny from 0.0.0.0/0 to any port 445

Permitiendo acceso a puertos desde fuera

Para abrir los puertos tendremos que indicar que puertos en concreto queremos indicar:

$ sudo ufw allow from 0.0.0.0/0 to any port 22

Así abriremos el puerto ssh

$ sudo ufw allow from 0.0.0.0/0 to any port 80

Así abriremos el puerto web

Aplicando las reglas

Revisa las reglas que tienes aplicadas:

$ sudo ufw status numbered

Ahora ya sólo queda cruzar los dedos y aplicar las reglas arrancando el servicio de Firewall, como indicamos antes

$ sudo ufw enable

Borrando Reglas

Para borrar reglas en base a su número, que hayamos sacado con status numbered podemos ejecutar:

$ sudo ufw delete numero_regla

por ejemplo

$ sudo ufw delete 2

para borrar la regla 2

Comprobaciones

Ahora ya sólo  te falta comprobar que las reglas que has aplicado funcionan correctamente, tanto desde dentro de la Intranet como desde fuera, desde Internet

Ya sabes que si falla siempre puedes volver a empezar parando el firewall:

$ sudo ufw disable

y reseteando las reglas:

$ sudo ufw reset

Referencias

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos: http://cursosdedesarrollo.com/cursos/

También disponemos de algunos cursos de pago por si son de tu interés: https://cursosdedesarrollo.com/tienda/

Curso de Angular: https://cursosdedesarrollo.com/tienda/angular/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies