Firewall en Ubuntu (ufw)

El kernel de Linux incluye el subsistema Netfilter, que se utiliza para manipular o decidir el destino del tráfico de paquetes de red entrante o saliente de un servidor. Básicamente todos los firewall de Linux utilizan este sistema para el filtrado de paquetes.
El núcleo del sistema de filtrado de paquetes sería de poca utilidad para los administradores, sin una interfaz de espacio de usuario para manejarlo. Este es el propósito de iptables. Cuando un paquete llega al servidor, que se entregan al subsistema Netfilter para la aceptación, la manipulación o el rechazo basado en las reglas que se hayan establecido desde el espacio de usuario a través de iptables. Por lo tanto, iptables es todo lo que necesitamos para administrar un servidor de seguridad, pero de todos modos existen muchas interfaces para simplificar la tarea.

ufw – Uncomplicated Firewall

La herramienta por defecto de Ubuntu para configurar el servidor de seguridad es ufw. Fue desarrollado para facilitar la configuración de iptables, ufw proporciona una manera fácil de crear reglas para una dirección IPv4 o IPv6 firewall basado en host.
ufw por defecto está inicialmente desactivado.
ufw no está destinado a proporcionar la funcionalidad de servidor de seguridad completa a través de su interfaz de comandos, sino que proporciona una forma fácil de añadir o eliminar reglas simples. En la actualidad se utiliza principalmente para firewalls basados ​​en host.

Cómo utilizar ufw?

  • Lo primero que necesitamos hacer es habilitar ufw. Desde una terminal escribimos:
   sudo ufw enable
  • Para abrir un puerto (ssh en este ejemplo):
   sudo ufw allow 22
  • Las reglas también se pueden agregar utilizando un formato de número:
   sudo ufw insert 1 allow 80
  • Del mismo modo, para cerrar un puerto abierto:
   sudo ufw deny 22
  • Para eliminar una regla, usamos el borrado seguido de la regla:
   sudo ufw delete deny 22
  • También es posible permitir el acceso desde servidores específicos o redes a un puerto. El siguiente ejemplo permite el acceso ssh desde el host 192.168.0.2 a cualquier dirección IP en este servidor:
   sudo ufw allow proto tcp from 192.168.0.2 to any port 22
  • Para darle acceso a la subred entera deberíamos colocar 192.168.0.0/24 192.168.0.2
  • Para desactivar el ufw:
   sudo ufw disable
  • Para ver el estado del firewall:
   sudo ufw status
  • Información de estado con mayor detalle:
   sudo ufw status verbose
  • Para ver el formato de número:
   sudo ufw status numbered

Si el puerto que queremos abrir o cerrar se define en /etc/services, podemos usar el nombre del puerto en lugar del número. En los ejemplos anteriores, sería reemplazando 22 con ssh.

Logs

Los logs del firewall son esenciales para el reconocimiento de los ataques, resolución de problemas reglas de firewall, y también para darse cuenta de una actividad inusual en la red. Tenemos que incluir las normas de registro en el servidor de seguridad para que puedan ser generados. Las reglas de registro tienen que ser definidas antes de cualquier regla aplicable en algún puerto (una regla con el objetivo de que decida el destino del paquete, como ACCEPT, DROP, o REJECT).
Dentro de ufw podermos activar el registro de logs de la siguiente manera:

   sudo ufw logging on

Para desactivar el registro de logs de ufw:

   sudo ufw logging off

Por ejemplo: Una petición en el puerto 80 desde la máquina local, entonces, generar un registro en dmesg que tiene este aspecto:

   [4304885.870000] NEW_HTTP_CONN: IN OUT = lo = MAC = 00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC = 127.0.0.1 DST = 127.0.0.1 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 58288 DF PROTO = TCP SPT = 53981 DPT = 80 VENTANA = 32767 RES = 0x00 URGP SYN = 0

El registro anterior también aparecerá en /var/log/messages, /var/log/syslog y /var/log/kern.log. Este comportamiento se puede modificar editando /etc/syslog.conf o mediante la instalación y configuración de ulogd y utilizando el objetivo ULOG lugar de LOG. El demonio ulogd es un servidor de espacio de usuario que recibe las instrucciones de registro del núcleo específicamente para firewall’s, y puede registrar los logs en cualquier archivo, o incluso en una base de datos PostgreSQL o MySQL. Para que la información registrada en los logs tenga sentido se puede simplificar mediante el uso de una herramienta de registro de análisis como fwanalog, fwlogwatch, o lire.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s