Uso básico de PolicyD Cluebringer: Creación de cuentas y miembros

En el artículo anterior vimos como instalar y comprobar el servicio Cluebringer. En esta siguiente entrega veremos las reglas para definir políticas y como crear cuentas con miembros para posteriormente crear controles de accesos, comprobaciones de EHLO/HELO y Cuotas. La opciones de comprobación SPF y Greylisting no se cubrirán aquí. Para ello puede consultarse la página de ayuda de PolicyD o mi artículo sobre uso de reglas SPF. Empecemos pues por las reglas:


Las reglas para especificar una política en PolicyD Cluebringer son:

  • Una política puede especificarse para el origen (remitente) y para el destino (receptor).
  • Se permite el uso de direcciones IP sólo para el origen, no para el destino.
  • El formato de las especificaciones es el que sigue más abajo y pueden unirse mediante una coma (,) para generar operaciones lógicas equivalentes a AND.
  • Todas las especificaciones, excepto ANY, permiten la negación con el uso del prefijo !.
  • Prioridad: las prioridades se procesan en orden ascendente, la prioridad 0 tiene preferencia sobre la 10 y ésta sobre la 20.

Especificaciones

Cualquier dirección o lo que seaNULL ANY
Cualquier dirección perteneciente a @dominio@dominio
Cualquier dirección igual a usuario@dominiousuario@dominio
Cualquier dirección <>@
Desde la versión 2.1.x
IP exactaa.b.c.d
Cualquier dirección en un rango CDIRa.b.c.d/e
IP exacta del servidor que gestiona la política (peer server)[a.b.c.d]
Cualquier dirección en un rango CDIR del peer server[a.b.c.d/e]
IPv6 exactaa:b:c:d:e:f:g:h[/e]
Bitmask opcional, por defecto 128 si se especifican todos los octetos o se especifica el del extremo derecho. Si éste no existe se calcula el bitmask automáticamente según el número de bits a la izquierda.
Cualquier dirección IPv6 en un rango CDIR del peer server[a:b:c:d:e:f:g:h[/e]
Cualquier dirección definida en un grupo%grupo
Dicho grupo debe contener especificaciones siguiendo estas mismas reglas y se recorren recursivamente. Con esta especificación y el uso de la negación (!) pueden implementarse operaciones OR.
Cualquier nombre de usuario SASL$sasl_nombre_usuario
Se permite $* para cualquier SASL y $- para ninguno.
rDNS desde la que conecta el clienteservidor.ejemplo.com

  • El uso del comodín * equivale a cualquiera excepto entre puntos (no es valido servidor.*.ejemplo.com)
  • La especificación ejemplo.com sólo equivale a ejemplo.com
  • La especificación .ejemplo.com equivale a ejemplo.com y también a servidor.ejemplo.com
  • Técnicamente, el comodín * se expande como [a-z0-9\-_\.] y si no se especifica el prefijo punto (.) se usa ^
  • Todas las especificaciones DNS inversa finalizan con $

Para ejemplos véase PolicyD - Policies.

Creación de cuentas (accounting)

Con estas reglas en mente ya podemos empezar a definir nuestras políticas, empezando por las cuentas y sus miembros. Pulsamos la opción Main del menú Policies. Por defecto PolicyD ya viene configurado con 5 cuentas:

El proceso de creación de cuentas se desarrolla en dos fases: primero se crea una cuenta y después se le asignan miembros, que no son más que especificaciones sobre a qué origen y destino queremos controlar. En la lista desplegable central (Action) es donde podemos elegir añadir, cambiar, eliminar o ver los miembros de cada cuenta, después de haber seleccionado el correspondiente radiobutton. En mi caso decidí inhabilitar todas las políticas por defecto (y los grupos y todo lo que venía por defecto) y empezar desde cero. Para crear una cuenta abrimos el desplegable Action y elegimos Añadir (add) para acceder a la siguiente pantalla:
Vamos a abrir una cuenta para asignar posteriormente cuotas de salida a ciertos usuarios del correo. Le asignamos un nombre, por ejemplo BloqueoSalida, especificamos una prioridad, podemos usar 10 que es la que viene en los ejemplos, y una descripción obligatoria. Aceptamos y ya tenemos una cuenta preparada para agregarle miembros. Importante: nótese en la columna Disabled que la cuenta recién creada aparece como Yes (inhabilitada). Cualquier ítem creado en PolicyD está por defecto inhabilitado hasta que no lo cambiamos (Action - Change) para evitar problemas mientras definimos los parámetros.

Miembros

Seleccionamos la cuenta recien creada y elegimos Action - Members en el menú desplegable. Accederemos a una pantalla vacía con el desplegable Action en el centro y tres columnas: Source, Destination y Disabled. Aquí es donde especificamos a cuales direcciones de origen (remitentes) y destino (receptores) afectará nuestra cuenta. La idea de ejemplo que vamos a usar es que para cualquier correo cuyo dominio del remitente sea ejemplo.com, independientemente del destinatario que sea, queremos aplicarle la regla. Así pues elegimos Action - Add y accedemos a la pantalla de miembros:
En Source especificamos a qué direcciones de origen queremos controlar: según las reglas anteriores para indicar que queremos afectar a un dominio escribiremos @ejemplo.com; en Destination especificamos a cuales direcciones de destino, se nos permiten las mismas especificaciones que en Source excepto el uso de IPs. En este caso es indiferente a quien vaya dirigido el email así que escribimos any. El comentario es optativo. Pulsamos Enviar consulta y listo. Ya tenemos una cuenta creada con un miembro que afecta a todas las cuentas del dominio ejemplo.com sea quien sea el destinatario. Este sería el caso más sencillo. 

Supongamos ahora que no solo queremos que nuestra política afecte a ejemplo.com, sino también a clientes.com y a ofertas.es. Una manera de hacerlo sería creando un miembro para cada dominio tal como hicimos con ejemplo.com, pero hay otra manera más cómoda: usando grupos. Un grupo nos permite reunir todas las direcciones que deseemos en un solo conjunto de forma que indicándole al miembro que grupo debe consultar ya obtenemos la funcionalidad buscada, siendo más cómodo realizar cambios posteriormente. Para crear un grupo elegimos la opcíon de menú Group en Policies y elegimos Add en el desplegable Action:
Le damos un nombre, por ejemplo ListaInterna y enviamos la consulta. El comentario es optativo. Una vez creado el grupo lo seleccionamos y, de nuevo en la lista desplegable, seleccionamos Members. Accedemos a una pantalla en blanco con dos columnas: Member y Disabled. Seleccionamos otra vez Action - Add y aquí es donde podemos especificar las direcciones a las que afectará nuestra política. Se aplican las reglas de las especificaciones, por lo tanto añadimos las direcciones @ejemplo.com, @clientes.com y @ofertas.es,  el comentario también es optativo. Con este grupo definido volvemos a la opción Main de Policies, seleccionamos nuestra cuenta recien creada BloqueoSalida y elegimos Action - Members. En members seleccionamos la regla definida y de nuevo Action - Change y, en el campo Source donde especificamos @ejemplo.com, lo sustituimos por %ListaInterna. Guardamos y listo. Nuestra cuenta nos permitirá aplicar políticas a los correos cuyo origen sea algún dominio de los anteriormente descritos pudiendo modificar el grupo cómodamente cuando nos interese.

En la siguiente entrega veremos como aplicar límites a los buzones de correo mediante cuotas usando la cuenta recién creada.

1 comentario:

  1. Saludos, e implementado una configuración en policyd y los log me devuelve esto,
    [POLICIES] WARNING: [ID:6/Name:p_af_in]: No group members for source group ‘domain_af’
    Teniendo en cuenta que con dominio usuario@cf.af como miembro del grupo domain_af puse @*. af

    ResponderEliminar