Procedimientos de implementación de cbpolicyd en zimbra 8.6.x y 8.7.x para el control del envío de correo nacional e internacional. Elaborado Elaborad o por. Arian Molina Aguiler Aguilera a (linuxcu (linuxcuba@ope ba@openmailbox. nmailbox.org) org) Cluebringer Policyd que es y para que se utiliza así como su implementación en Zimbra. Cluebringer Cluebring er Poli Policyd cyd (Po (Policyd licyd V2) es un serv servicio icio mu multi-p lti-plata lataforma forma que perm permite ite imp impleme lementar ntar polí política ticas s de seg segurida uridad d anti-spa ant i-spam m par para a ser servidore vidores s MTA MTA.. Poli PolicyD cyD es un software desarrolla desarrollado do en C que permite permite imp impleme lementar ntar políticas políticas de seguri seg urida dad d en nu nues estro tro se servi rvidor dor MT MTA A con fa facil cilida idad: d: con contro troll de ac acces ceso, o, ge gestió stión n de EH EHLO/ LO/HEL HELO, O, ge gesti stión ón de SP SPF, F, Greylisting, cuotas, accounting e integración con amavis. Para poder ver todas las funcionalidades que nos ofrece este sistema, aconsejo que se den una vuelta por su sitio web oficial: http://www.pol http://www.policyd.org/ icyd.org/.. Les comento que cuando vi esta variante de control se me hizo la vida un poco más fácil, porque es una herramienta mediante la cual puedes establecer políticas de manera muy rápida y de efecto casi inmediato. A partir de la versión 7.1 de Zimbra, se añadió este servicio, el cual nos permite tener un control exhaust exhaustivo ivo del correo que entrada y salida de nuestro servidor, aparte de darle nuevas funcionalidades al sistema de antispam. El sistema de Policyd por defecto viene deshabilitado en el sistema cuando instalamos Zimbra y no lo podemos habilitar mediante la administración web de manera standard. Si corremos lo siguiente podemos ver que no está habilitado: Primeramento nos logueamos en el servidor de correo bajo el usuario zimbra
# su - zimbra Habilitar CBpolicyd Comprobamos si está instalado y si existe .
# zmprov gs `zmhostname` | grep zimbraServiceInstalled Lo Instalamos si no esta
# zmprov ms `zmhostname` +zimbraServiceInstalled cbpolicyd
Lo habilitamos después
# zmprov ms `zmhostname` +zimbraServiceEnabled cbpolicyd Comprobamos que se habilito sin problema.
# zmprov gs `zmhostname` | grep zimbraServiceEnabled | grep cbpolicyd zimbraServiceEnabled: zimbraSe rviceEnabled: cbpolicyd
Después de un par de minutos, zmconfigd detecta que tenemos el servicio habilitado y automáticamente instala la base de datos y nos inicia el servicio de Policyd. Esperamos un par de segundos y verificamos que el servicio está funcionando correctamente. # zmcbpolicydctl status policyd is running. Una vez el servicio de Policyd esté funcionando, hemos de indicarle al servidor de postfix (MTA de Zimbra) que cuando llegue un correo, lo reenvié al puerto 10031, que es donde escucha por defecto Policyd: # zmprov mcf +zimbraMtaRestriction "check_policy_service inet:127.0.0.1:10031" # zmprov ms `zmhostname` zimbraMtaEnableSmtpdPolicyd TRUE Habilitamos el módulo a emplear, AccessControl: Para el control de acceso a los correos de entrada y salida .
# zmprov ms `zmhostname` zimbraCBPolicydAccessControlEnabled TRUE # zmprov ms `zmhostname` zimbraCBPolicydCheckHeloEnabled TRUE # zmprov ms `zmhostname` zimbraCBPolicydCheckSPFEnabled TRUE Reiniciamos los servicios de Policyd y de postfix, para que se apliquen los cambios que hemos realizado: zmcbpolicydctl restart && zmmtactl restart Ya tenemos el servicio habilitado y corriendo. En la documentación oficial de la wiki de zimbra las modificaciones en cada uno de los módulos habilitados se hace directamente en las bases de datos mediante sentencias sql pero nos haremos más fácil la vida haciendo accesible la web administrativa de Policyd. Creamos el siguiente enlace simbólico:
Esto hay que hacerlo con permiso de root sino nos da acceso denegado, salimos del usuario zimbra con exit luego: Zimbra 8.6.x # ln -s /opt/zimbra/cbpolicyd/share/webui/ /opt/zimbra/httpd/htdocs/policyd Editamos la configuración de módulo de administración de policyd
# nano /opt/zimbra/cbpolicyd/share/webui/includes/config.php Zimbra 8.7.x # ln -s /opt/zimbra/common/share/webui/ /opt/zimbra/data/httpd/htdocs/policyd Editamos la configuración de módulo de administración de policyd
# nano /opt/zimbra/common/share/webui/includes/config.php Comentamos la linea: $DB_DSN="mysql:host=localhost;dbname=cluebringer"; y debajo de ella agregamos lo siguiente:
$DB_DSN="sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb"; Ya con esto garantizamos que la Web de Administración funcione correctamente y podemos acceder a la misma a través de la dirección http://zimbra.subdominio.artex.sa:7780/policyd/index.php nos mostrará la pagina siguiente:
Posteriormente volvemos a loguearnos como zimbra, con su - zimbra: Y chequeamos los log tailf /opt/zimbra/log/cbpolicyd.log | ccze Segunda parte:
Viene la mejor parte, configurar el cbpolicyd desde la web de administración, una vez logueados en su página.
Creamos un grupo g_nacionales, en group, add nuevo grupo.
Después que lo crees lo seleccionas y lo habilitamos posteriormente le agregamos los miembros ( members ): Estos son los usuarios que solo tendrán derecho a enviar correos solo nacional.
Recordar que cualquier cosa que se crees se crea deshabilitado por defecto, por lo que tienes que seleccionar cada uno y decirle change y en disabled poner no. Ahora creamos un grupo dominio_cu y agregamos un miembro a este grupo @*.cu todos los dominios .cu.
Después vamos a Policies->Main y creamos la política p_nacionales_in para comprobar la entrada de los correos.
Después la seleccionamos y vamos a agregar los miembros (members )
Nos debe quedar así.
Después creamos la política p_nacionales_out para comprobar la salida de los correos.
Ahora la seleccionamos y vamos a agregar los miembros (members )
Nos debe quedar así
El símbolo ' !' es la negación es decir lo contrario por tanto !%dominio_cu quiere decir; Los que no sean cu. Recuerda habilitar los miembros de la política al igual que la política.
Lo que hemos hecho hasta aquí, en dichas políticas es agregar dos miembros uno hacia dominios no cu y otros desde dominios no cu para más adelante crear la regla access control y que se deniegue tanto entrada no nacional como salida no nacional desde o hacia el grupo que creo de usuarios nacionales (g_nacionales). Ya teniendo esto hecho ahora vamos a Access Control y agregamos una regla para la salida y otra para la entrada, así le daremos un mensaje distinto al usuario que intenta enviar un correo hacia un dominio no permitido y otro mensaje a cualquier usuario externo que envíe un correo un usuario de nuestro dominio que no está permitido recibir. Vamos a Access Control -> Configure y agregamos una nueva ACL para la entrada de correos.
Se vincula esta regla a la política policy_nacionales_in y el veredicto es REJECT devolviendo en el mensaje de error al usuario que envía el correo el mensaje: Este usuarios solo puede recibir correos de dominios .cu Recuerda que también tienes que habilitar esta regla. Creamos la acl para la salida de los correos.
Se vincula esta regla a la política policy_nacionales_out y el veredicto es REJECT devolviendo en el mensaje de error al usuario que envía el correo el mensaje: Su cuenta de correo solo puede enviar correos nacionales. Recuerda que también tienes que habilitar esta regla. Estos son los mensajes de error que debe mostrar el cliente de correo Thunderbird y Zimbra Web Client, cuando un usuarios trata de enviar un mensaje a donde no está autorizado y no se le es permitido el envío.