Xtreme Flash Policy Server v1.2

Adobe Flash cross-domain-policy Socket Delivering Server

Orientado (pero sin limitar) a entornos de IRC con mecanismos de aislamiento, protección contra flood y Bot de IRC para IRCops.

Xtreme Flash Policy Server está diseñado para ser utilizado en conjunto con LightIRC (http://www.lightirc.com/), sin embargo también es apto para muchos otros entornos en donde sea necesario servir y distribuir archivos "cross-domain-policy" a través de la red, siempre y cuando estos sean conformes a las especificaciones y estándares establecidos por Adobe (Más información: http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html).

Xtreme Flash Policy Server además incluye otras características de utilidad:

  • Tres métodos de atención de conexiones: QUEUE, FORK y THREAD.
  • Protección contra flood de conexiones usando umbrales de cantidad y tiempo (detección y lista negra).
  • Bot de IRC para monitoreo de actividad.
  • Comandos !fantasía para IRCops que permiten interactuar con el Bot de IRC.
  • Registro de actividades en archivo log (server-side).
  • Liviano y Portable.

Instalar Xtreme Flash Policy Server

Xtreme Flash Policy Server es desarrollado y publicado bajo los términos de la Licencia GNU GENERAL PUBLIC LICENCE v2.

Citación de la licencia:

Si usted descarga, instala y utiliza Xtreme Flash Policy Server, usted está aceptando los términos y condiciones de esta licencia.

Requerimientos para Xtreme Flash Policy Server

Xtreme Flash Policy Server está desarrollado en lenguaje Perl (http://www.perl.org/) y NO requiere módulos adicionales. Nuestro objetivo es que pueda utilizarse "out-of-the-box", con lo cual solo se requiere tener instalado el intérprete Perl con los módulos que forman parte de su núcleo (perl-core-modules) generalmente provistos por el mismo meta-paquete.

Es necesario que el intérprete de Perl sea versión 5.6.0 o superior, ya que a partir de esta versión el manejo de hilos (threads) sufrió cambios importantes y el servicio no funcionará correctamente en versiones inferiores.

Corrobore la versión de Perl con el siguiente comando:

# perl -version

No se requiere ningún software adicional y puede ejecutar el servicio como un usuario sin privilegios o bien como root (aunque no es lo recomendado).

Descargar Xtreme Flash Policy Server

Descomprimir, configurar parámetros y verificar

Descomprima el paquete de Xtreme Flash Policy Server en el directorio "home" del usuario:

# tar -xvvzf lookflashpolicy-1.2.tgz

Le creará el directorio lookflashpolicy-1.1. Ingrese en el:

# cd lookflashpolicy-1.2

Abra con su editor preferido (emacs, vim, nano, etc.) el archivo config.pm-dist y parametrícelo de acuerdo a su necesidad. La parametrización se encuentra entre los bloques:

# ------------------------------------
# Config Start for Xtreme Flash Policy
# ------------------------------------

..

# ----------------------------------
# Config end for Xtreme Flash Policy
# ----------------------------------

Lea detenidamente cada una de las descripciones para cada constante antes de ajustar un valor y no modifique ni borre aquellas líneas que se indican como "system stuff".

Una vez parametrizado guarde los cambios y renombre el archivo config.pm-dist a config.pm:

# mv config.pm-dist config.pm

Ahora verifique el funcionamiento de Xtreme Flash Policy Server ejecutándolo:

# ./lookflashpolicy.pl
Xtreme Flash Policy Server

Puede ejecutar el software como usuario root si lo desea, pero se recomienda hacerlo como un usuarios normal sin privilegios por razones de seguridad. Tenga en cuenta que para poder hacer uso de puertos inferiores a 1024 deberá correrlo como root o bien realizar configuraciones extras en su plataforma (SO).

Para correrlo como un servicio en segundo plano (background) ejecute:

# ./lookflashpolicy.pl start

Para detenerlo:

# ./lookflashpolicy.pl stop

Xtreme Flash Policy Server Features

Here will explain some of the main Xtreme Flash Policy Server features with the purpose you can take advantage of this software usability and functionalities. It's recommended you spend a few minutes to learn more about and to understand better this, even more if you think to deploy it.

Características de Xtreme Flash Policy Server

Detallaremos el funcionamiento de algunas de las características principales de Xtreme Flash Policy Server con el objetivo que usted obtenga un mejor y más óptimo funcionamiento en su utilización. Se recomienda que dedique unos minutos para conocer un poco más en profundidad esta aplicación.

Métodos de atención de conexiones: QUEUE, FORK y THREAD.

Los métodos de atención de conexiones se refieren a la manera en que cada solicitud de archivo 'cross-domain-policy' (remota vía socket) es manejada internamente por Xtreme Flash Policy Server. La posibilidad de contar con varios métodos hace que Xtreme Flash Policy Server sea más escalable y versátil en diferentes entornos de producción.

Xtreme Flash Policy Server es capaz de "tratar" esas solicitudes con tres mecanismos diferentes, pero deberá escoger un mecanismo para todas ellas, no es posible utilizar más de un mecanismo a la vez. Veamos como es el funcionamiento y que ventajas y desventajas tiene cada uno:

QUEUE

Es el mecanismo más básico, pero tambiín puede llegar a ser el más óptimo en algunos escenarios poco exigidos. Todas las conexiones son manejadas por un mismo proceso y son encoladas (queue) y atendidas en la modalidad FIFO (First-In First-Out). Este método es el que menos recursos de sistema consume pero no ofrece aislamiento (isolation).

Xtreme Flash Policy Server - QUEUE diagram

FORK

El método FORK manipula cada conexión encapsulándola en un sub-proceso fork(). En nuestras pruebas hemos obtenido excelentes resultados de escalamiento más allá de que es sabido que la creación de sub-procesos tiene un costo (overhead) en cuanto a la utilización de recursos, ya que el sistema clona todo el proceso y lo hace heredar (inherite) de todos los descriptores abiertos. Este método puede llegar ser óptimo en entornos medianamente exigidos, cuenta con aislamiento (isolation) pero el sistema base (OS) puede limitar la cantidad de sub-procesos simultáneos abiertos.

Xtreme Flash Policy Server - FORK diagram

THREAD

Cada conexión es atendida y derivada a un hilo (thread). Un hilo es como un pequeño sub-proceso "liviano" ejecutándo dentro del proceso principal (a diferencia de fork() que el sub-proceso se clona y "desprende" del proceso principal). Los hilos tardan mucho menos tiempo en ser creados y consumen mucho menos recursos que los sub-procesos fork(). Este es el método indicado para entornos con mucha exigencia y cuenta con aislamiento (isolation).

Xtreme Flash Policy Server - THREAD diagram

Utilizando el método THREAD puede experimentar un poco de pérdida de memoria (memory leak) dependiendo de la versión de Perl que usted disponga: Este problema está resuelto a partir de la versión 5.13.5 (https://rt.perl.org/rt3/Public/Bug/Display.html?id=69598) y es un fallo de Perl, no de Xtreme Flash Policy Server.

Protección contra flood en Flash Policy

Xtreme Flash Policy Server cuenta con protección contra flood de conexiones funcional en cualquiera de los tres métodos citados más arriba (QUEUE, FORK y THREAD). La protección es mediante umbrales de cantidad de conexiones en un tiempo determinado desde una dirección IP.

Cuando se sobrepasa el límite de conexiones en ese tiempo establecido desde determinada dirección IP esta pasa a formar parte de una lista negra (blacklist) interna y será ignorada por un tiempo ilimitado o pre-establecido (según como sea configurado). La lista negra es "volátil", es decir que será reinicializada cada vez que se reinicie el servicio Xtreme Flash Policy Server ya que la misma permanece en memoria. El objetivo de la protección es detener ataques de flood de conexiones que intenten desestabilizar o dejar fuera de producción el del servicio.

Para usuarios avanzados se cuenta con la opción de poder ejecutar un programa o script externo cada vez que una dirección IP es detectada como atacante. Por ejemplo, para poder establecer una regla de firewall que impida conectar desde esa IP mediante capa de red 3 (Network layer 3).

Bot IRC para Flash Policy

Debido a la naturaleza de este software, orientado (pero sin limitar) a entornos de IRC, se ofrece la posibilidad de poder conectar un Bot de IRC a un canal en donde se pueda monitorear toda la actividad del servicio Xtreme Flash Policy Server.

El Bot mostrará en el canal asignado cada uno de los eventos que se vayan produciendo:

*** Joins: PolicyServ (Xtreme@policy.nandox.com) has joined #Services
<PolicyServ> Xtreme Flash Policy [looksharp+endurance] v1.2 is UP!
<PolicyServ> Trigger is: !policy
..
<PolicyServ> Connection from [xx.xx.xxx.xxx:3103] - Valid request, policy sent - tid(6)
<PolicyServ> Connection from [xx.xx.xxx.xxx:3208] - Invalid request. Ignoring - tid(7)
<PolicyServ> Connection from [xxx.xxx.xx.xx:6060] - Waiting request timeout - tid(8)
..
<PolicyServ> Blacklist: xxx.xxx.xxx.xxx Added! (21 attempt/s in less than 1 minute/s) Expires in 10 minute/s
..
<PolicyServ> Blacklist: xxx.xxx.xxx.xxx Removed! (Expired)
  <Amaz|ng^> !policy
<PolicyServ> Options for !policy are: <alive|stats>

También se incorporan algunos comandos !fantasía: Use !policy para que el bot muestre los comandos disponibles.

El IRC Bot es opcional y puede desactivarlo si usted no lo necesita.

Nosotros estamos siempre intentando mejorar la calidad de nuestros servicios.

Si usted disfruta utilizándolos, siempre puede aportarnos su donación.