viernes, 6 de agosto de 2010

Configuración firewall para servicio Samba en FreeNAS.

El presente artículo tiene como objetivo añadir políticas de seguridad al firewall mediante la configuración de las reglas de ipfw (IPFIREWALL de FreeBSD que se incluye en la instalación de FreeNAS) que permita a un cliente acceder a los recursos compartidos via Samba que ofrece el servidor NAS.

Veamos el escenario (arquitectura de una instalación típica) al que vamos a aplicar esta política.

Objetivo
  • Limitar el acceso al PC 192.168.1.5 para que sólo pueda acceder a los servicios de SMB/CIFS del servidor NAS.
Configuración
Aplica las reglas del firewall del servidor NAS 192.168.1.4 para que el PC 192.168.1.5 sólo pueda acceder al servicio de Samba (poder copiar o leer ficheros de carpetas compartidas).

En el artículo previo, se habían dado permisos globales al cliente 192.168.1.5 de acceso al servidor FreeNAS 192.168.1.4, siendo las reglas de ipfw las siguientes:


Eliminamos dichas reglas.

Ahora, vamos a hacer el firewall más restrictivo, tal que este cliente sólo tenga acceso al servicio de compartición de recursos Samba, en otras palabras, que el PC 192.168.1.5 (Windows XP) pueda grabar ficheros en un directorio compartido del servidor NAS.


siendo las reglas generadas:
00060 allow udp from 192.168.1.5 137 to any dst-port 137 via re0
00061 allow udp from 192.168.1.5 138 to any dst-port 138 out via re0
00062 allow tcp from 192.168.1.5 to 192.168.1.4 dst-port 139 via re0
00064 allow udp from 192.168.1.4 137 to 192.168.1.5 dst-port 137 via re0
00065 allow udp from 192.168.1.4 138 to 192.168.1.5 dst-port 138 in via re0
00066 allow tcp from 192.168.1.4 139 to 192.168.1.5 via re0


Observaciones
  1. Las reglas 60 y 62 deberían de ser sólo OUTput, mientras que las 64 y 66 ser sólo INput, no obstante se han activado de IN/OUT por la propagación de SMB originados en el cliente XP.
  2. Hay que tener especial cuidado en los puertos de las reglas 62 y 66, de ahi que nos aseguremos que uno de los puntos sea el puerto 139, ya que la comunicación abre un puerto del 1024 al 65535 y estos deben estar auditados siempre.
  3. Para ser puristas, las reglas 62 y 66 sobre el protocolo NETBIOS session service (139) deberían de tener el flag de ESTABLISHED en la configuración de la regla en FreeNAS, para asegurarnos que sólo hay comunicación tras el establecimiento de sesión.

Notas
El servicio que ofrece FreeNAS para conectarse con redes Windows es mediante Samba y en específico CIFS (Microsoft's Common Internet File System). Suponemos que tenemos el servicio SMB/CIFS de FreeNAS activo y configurado correctamente (Grupo de trabajo, elementos a compartir, etc.) ya que en el presente artículo sólo hemos configurado el firewall de FreeNAS para que un cliente determinado pueda acceder a dichos elementos compartidos.

jueves, 5 de agosto de 2010

Ejemplo de firewall en FreeNAS

La protección que ofrece disponer del firewall activado en un servidor de FreeNAS es más que evidente para el alto volumen de datos que almacena y que deben ser administrados, gestionados y auditados para un correcto uso y seguridad.

Veamos un ejemplo de la configuración de FreeNAS en una arquitectura doméstica típica, en este caso, es la propia de la que os escribe instalada en su casa.

La configuración la vamos a realizar en el elemento del dibujo llamado Firewall FreeNAS que para su entendimiento lo hemos separado visualmente del Servidor NAS (FreeNAS), pero que forma parte intrínseca de él.

En el gráfico siguiente el conjunto de reglas aplicadas al firewall (en formato GUI) para la arquitectura anterior, al cual se accede mediante la opción de menú Red->Cortafuegos.


siendo las reglas generadas las siguientes:
freenas# ipfw list
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00400 allow ip from 192.168.1.2 to any in via re0
00500 allow ip from any to 192.168.1.2 out via re0
00600 allow ip from 192.168.1.3 to any in via re0
00700 allow ip from any to 192.168.1.3 out via re0
00800 allow ip from 192.168.1.5 to any in via re0
00900 allow ip from any to 192.168.1.5 out via re0
01000 allow ip from 192.168.1.10 to any in via re0
01100 allow ip from any to 192.168.1.10 out via re0
01200 allow ip from any to 192.168.1.255 dst-port 137 via re0
01300 allow ip from any to 192.168.1.255 dst-port 138 via re0
01400 allow ip from any to 192.168.1.255 dst-port 139 via re0
01500 allow tcp from any 22 to any via re0
01600 allow icmp from any to any via re0
01700 allow ip from any to any dst-port 123 via re0
01800 allow udp from any 5353 to any dst-port 5353 via re0
01900 allow ip from any to 80.58.61.250 dst-port 53 via re0
02000 allow ip from 80.58.61.250 53 to any via re0
02100 allow ip from any to 224.0.0.251 out via re0
02200 allow ip from any to 224.0.0.1 in via re0
02300 deny log logamount 5 ip from any to any in via re0
02400 deny log logamount 5 ip from any to any out via re0
65535 allow ip from any to any


Explicación de las reglas de acceso al servidor FreeNAS:
  • Al dispositivo 192.168.1.3 se le da acceso total a los servicios/puertos de FreeNAS; se trata de un portátil de propósito general.
  • Al dispositivo 192.168.1.5 se le da acceso total a los servicios/puertos de FreeNAS; se trata de un MiniPC fanless de descargas.
  • Al dispositivo 192.168.1.10 se le da acceso total a los servicios/puertos de FreeNAS; se trata de un NetworkedMediaTank que reproduce contenidos multimedia hacia la TV desde contenidos almacenados en red.
  • El dispositivo 192.168.1.2 es un router Wireless 802.11N que ofrece alta velocidad de transmissión (72Mbps en receptores WifiN MIMO 1T1R, 150Mbps en receptores WifiN 1T2R; ambos trabajando a la frecuencia de 20, a la de 40 se duplica hasta los 300Mbps) al cual se le abren todos los servicios/puertos del FreeNAS, para la nueva red 192.168.2.x (Explicaremos más sobre este router inalámbrico y su uso en un nuevo post).
  • Se abren los puertos de difusión de NetBIOS (para la compartición CIFS/SMB).
  • Se abre el puerto de SSH (Puerto 22).
  • Se abre el puerto 123 para sincronización NTP.
  • Se configura el puerto 53 y 5353 para sincronización DNS y DNS bonjour.
  • Se abre el puerto de ICMP (ping).
  • Se abre IGMP debido a multidifusión del proveedor (ADSL y Televisión).
  • Se cierra todo el resto.
NOTA: Se pueden cerrar más los puertos para los PCs que acceden, pero de momento no es necesario acotar las funcionalidades.

Espero que pueda servir de base para proteger vuestro entorno doméstico y/o profesional y entender su funcionamiento en un escenario real y típico.