• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Zimbra: Loguearse a Zimbra usando Certificados X.509

23 March, 2015 - Escrito en: zimbra

ssl-auth-x509-bannerSaludos amigos, hoy os traigo una entrada muy interesante que os puede venir muy bien para securizar, un poco más, una instalación de Zimbra Collaboration, se trata de la autenticación mediante Certificado SSL, sin necesidad de introducir un usuario y una contraseña. La autenticación mediante SSL se introdujo en Zimbra 7.1, por lo tanto no es que sea una novedad, pero siempre está bien tenerla a mano. Podéis leer más acerca de los pros y contras en el siguiente hilo.

Este método es seguro si los certificados son generados desde el departamento de IT y proporcionados o instalados en los equipos de los clientes mediante GPOs, por ejemplo. Este artículo tiene varios puntos clave y es por ello que os dejo el tradicional menú de cuando una Entrada es algo extensa 🙂

  • Generar la CA auto-firmada
  • Generar los Certificados SSL de los clientes
  • Importar el SSL en el cliente
  • Configuración de Mailboxd
  • Configuración de Proxy
  • Probando la autenticación de Cliente

Generar la CA auto-firmada

Vamos a utilizar SSL auto-firmados porque esto es un Laboratorio, ya sabéis que siempre os recomiendo usar por favor SSL comerciales válidos. Además, haremos uso de las herramientas de OpenSSL que Zimbra trae en su interior, no de zmcertmgr.

El primer paso es movernos hasta un directorio donde nos sintamos cómodos para empezar a generar todos los nuevos ficheros.

root@zimbra-sn-u14-10:/home/oper# mkdir certs
root@zimbra-sn-u14-10:/home/oper# cd certs/
Después crearemos la nueva CA, key y certificado, introducir vuestros propios datos cuando generéis el SSL:
root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl genrsa -out CA.key 2048
Generating RSA private key, 2048 bit long modulus
..............+++
......................................................................................................................................+++
e is 65537 (0x10001)
root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl req -new -key CA.key -x509 -days 3650 -out CA.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:TX
Locality Name (eg, city) []:Frisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Zimbra Inc
Organizational Unit Name (eg, section) []:Support
Common Name (e.g. server FQDN or YOUR name) []:zimbra-sn-u14-10.zimbralab.local
Email Address []:

Generar los Certificados de los Clientes

Es el turno de generar los SSL para los clientes, hay que generar uno a uno, aunque supongo que habrá alguna manera de generar un Script que lo haga, no lo he encontrado, por ahora a mano.

Generar la key el Certificado para admin, introducir vuestros propios campos, el más importante es el de la dirección de email:

root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl genrsa -out admin.key  2048
Generating RSA private key, 2048 bit long modulus
.............................+++
......................................................+++
e is 65537 (0x10001)
root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl req -new -key admin.key -out admin.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:TX
Locality Name (eg, city) []:Frisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Zimbra Inc
Organizational Unit Name (eg, section) []:Support
Common Name (e.g. server FQDN or YOUR name) []:Admin
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Ahora firmaremos el Certificado con nuestra CA, que hemos creado anteriormente:

root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl x509 -req -in admin.csr -CA CA.crt -CAkey CA.key -out admin.crt -set_serial 3
Signature ok
subject=/C=US/ST=TX/L=Frisco/O=Zimbra Inc/OU=Support/CN=Admin/[email protected]
Getting CA Private Key

Y ahora, para poder importar el Certificado en algunos navegadores, sacaremos del SSL el fichero PCK12, nos pedirá una password que luego hay que introducir para importarlo.

root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/openssl/bin/openssl pkcs12 -export -clcerts -in admin.crt -inkey admin.key -out admin.p12
Enter Export Password:
Verifying - Enter Export Password:
root@zimbra-sn-u14-10:/home/oper/certs#

Importar el SSL en el Cliente

Con todos los ficheros en una carpeta, USB, etc. Nos iremos a nuestro Firefox e importaremos el SSL de la siguiente manera, Google Chrome y Safari comparten el Keychain del sistema, asi que importarlo en el Keychain del sistema vale para ambos navegadores.

ssl-auth-x509-004

En la pestaña de Avanzado buscaremos Certificados  pulsaremos Ver Certificadosssl-auth-x509-005Pulsaremos Importar y seleccionaremos el fichero .p12 para importar, nos pedirá la contraseña y ya lo tendremos disponible en el Navegador.ssl-auth-x509-001

Configuración de Mailboxd

[alert style=”yellow”]Atención, si usamos Zimbra Proxy, saltar al siguiente paso.[/alert]

Lo primero que tenemos que hacer es decirle a Zimbra que solo acepte HTTPS, esto es una buena práctica, pero por si acaso no lo estabáis siguiendo y permites acceso por HTTP, con este tutorial hay que forzarlo a https, vamos a consultar cómo lo tenemos configurado:

zimbra@zimbra-sn-u14-10:~$ zmprov gs `zmhostname` zimbraMailMode
# name zimbra-sn-u14-10.zimbralab.local
zimbraMailMode: https

En mi caso ya es https, pero si no fuera https, entonces hay que cambiarlo a https, de la siguiente manera:

zmtlsctl https

Además, tenemos que establecer el zimbraMailSSLClientCertPort para la autenticación de certificados de clientes. La autenticación de certificado de cliente sucede durante el protocolo de enlace SSL. No se puede usar el mismo puerto que (zimbraMailSSLPort) o que el puerto de admin (zimbraAdminPort). Por lo tanto zimbraMailSSLClientCertPort se debe configurar en su propio puerto (por ejemplo, 9443).

zimbra@zimbra-sn-u14-10:~$ zmprov ms zimbra-sn-u14-10.zimbralab.local zimbraMailSSLClientCertPort 9443

Debemos también configurar el zimbraMailSSLClientCertMode. Tres tipos diferentes están soportados: Disabled, NeedClientAuth, WantClientAuth.

  • Disabled: La autenticación de Cliente está deshabilitada.
  • NeedClientAuth: La autenticación de Cliente es requerida durante el SSL handshake en la autenticación por el puerto SSL (ver el paso anterior zimbraMailSSLClientCertPort). El handshake SSL fallará si el clienteT no presenta un SSL, o presenta uno inválido.
  • WantClientAuth: La autenticación de cliente es opcional, esto quiere decir que durante el handshake SSL por el puerto de SSL se requiere la autenticación. Si el cliente no presenta el SSL adecuado, o no presente ningún SSL, el usuario será redirigido a la página normal de login, la típica en puerto 443, donde deben introducir su usuario y contraseña de manera regular.

En este tutorial marcaremos NeedClientAuth, ya que queremos ser estrictos:

zimbra@zimbra-sn-u14-10:~$ zmprov ms zimbra-sn-u14-10.zimbralab.local zimbraMailSSLClientCertMode NeedClientAuth

Los últimos pasos son los siguientes, primero añadiremos la CA que hemos creado a nuestro store de SSL de nuestro mailbox. Los clientes, cuando se validen, lo harán comprobando y confiando en la CA que tengamos instalada.

  • Si usamos self-signed SSL, como es el caso, deberemos importar el fichero CA.crt que generamos anteriormente.
  • Si usamos SSL comerciales, necesitaremos importar las CA root y las intermedias para que los clientes puedan confiar en el SSL completamente.

Lanzar como root:

root@zimbra-sn-u14-10:/home/oper/certs# /opt/zimbra/bin/zmcertmgr addcacert CA.crt

Lo normal que OCSP esté habilitado para comprobar ciertos aspectos del certificado de cliente como es la fecha de expiración, si contiene todos los datos, etc. Pero como estoy usando certificados SSL auto-firmados, vamos a proceder a deshabilitar OCSP.

¿Qué es OCSP?

[accordion]
[accordion-group title="¿Qué es OCSP?"]Click en el siguiente tab para ver[/accordion-group]
[accordion-group title="OCSP"]
============
OCSP support
============
Server uses OCSP protocol to obtain revocation status of X.509 client certificate. All
the certificates that were issued after 2005-05-16 should have the OCSP Service URL
automatically included. That is why server checks AuthorityInfoAccess extension of
certificate to retrieve OCSP responder service url. If aforementioned extension exists,
OCSP request is made using OCSP responder service url to obtain revocation status of
certificate in question. Two way certificate based authentication succeeds only in case
if OCSP returns positive status for submitted certificate. Otherwise if OCSP service is
down or revoked certificate status is returned, server concludes that client certificate
is not valid and redirects to password based login page.
=========
OCSP flow
=========
- As a part of evaluation of client certificate, server retrieves OCSP responder url
and sends request containing client certificate along with CA certificate.
- OCSP responder analyzes certificates provided and returns revocation status of certificate
- Based on revocation status, server makes a conclusion in regards to validity of
client certificate
[/accordion-group]
[/accordion]
zimbra@zimbra-sn-u14-10:~$ zmprov ms zimbra-sn-u14-10.zimbralab.local zimbraMailSSLClientCertOCSPEnabled FALSE

Y como usuario zimbra reiniciaremos el mailbox:

zimbra@zimbra-sn-u14-10:~$ zmmailboxdctl restart

Configuración de Proxy NGINX

Si tu entorno tiene el rol de Proxy activado y funcionando (deberás tenerlo 100% desde la versión 8.7 en adelante) entonces los pasos son algo diferentes, no debes seguir ninguno de los pasos anterior, por favor.

Lo primero que haremos será forzar el tráfico solo a HTTPS, para comprobar como está configurado nuestro proxy lanzaremos el siguiente comando:

zimbra@zimbra-sn-u14-01:~$ zmprov gs zimbra-sn-u14-01.zimbralab.local zimbraReverseProxyMailMode
# name zimbra-sn-u14-01.zimbralab.local
zimbraReverseProxyMailMode: https

En mi caso ya tengo HTTPS, pero se puede establecer en HTTPS del siguiente modo:

zimbra@zimbra-sn-u14-01:~$ zmprov ms zimbra-sn-u14-01.zimbralab.local zimbraReverseProxyMailMode https

Después deberemos configurar por el puerto porque que queremos que suceda el Cert Auth, no se puede usar ninguno de los puertos que ya usa Zimbra, como es el 443, 9443, etc, en este caso he seleccionado el 3443, pero lo dejo a vuestra libertad:

zimbra@zimbra-sn-u14-01:~$ zmprov ms zimbra-sn-u14-01.zimbralab.local zimbraMailSSLProxyClientCertPort 3443

Debemos también configurar el zimbraMailSSLClientCertMode. Tres tipos diferentes están soportados: Disabled, NeedClientAuth, WantClientAuth.

  • Disabled (off): La autenticación de Cliente está deshabilitada.
  • NeedClientAuth (on): La autenticación de Cliente es requerida durante el SSL handshake en la autenticación por el puerto SSL (ver el paso anterior zimbraMailSSLClientCertPort). El handshake SSL fallará si el clienteT no presenta un SSL, o presenta uno inválido.
  • WantClientAuth(optional): La autenticación de cliente es opcional, esto quiere decir que durante el handshake SSL por el puerto de SSL se requiere la autenticación. Si el cliente no presenta el SSL adecuado, o no presente ningún SSL, el usuario será redirigido a la página normal de login, la típica en puerto 443, donde deben introducir su usuario y contraseña de manera regular.

En este tutorial marcaremos NeedClientAuth, ya que queremos ser estrictos, en proxy se establece de la siguiente manera:

zimbra@zimbra-sn-u14-01:~$ zmprov ms zimbra-sn-u14-01.zimbralab.local zimbraReverseProxyClientCertMode on

Lo siguiente será añadir la CA creada anteriormente a Nginx, debido al siguiente Bug, deberemos hacer este pequeño truco para que funcione:

zimbra@zimbra-sn-u14-01:~$ content=`cat /home/oper/certs/CA.crt`
zimbra@zimbra-sn-u14-01:~$ zmprov -m -l -- mcf zimbraReverseProxyClientCertCA  "$content"

Aparte, debemos añadir todas las IP de todos los proxy que tengamos al comando zimbraReverseProxyAdminIPAddress, de esta manera Zimbra sabrá donde debe redirigir las peticiones de Nginx lookup, si no establecemos este comando, nos devolverá un error 403:

zimbra@zimbra-sn-u14-01:~$ zmprov mcf +zimbraReverseProxyAdminIPAddress 192.168.211.129

Lo normal que OCSP esté habilitado para comprobar ciertos aspectos del certificado de cliente como es la fecha de expiración, si contiene todos los datos, etc. Pero como estoy usando certificados SSL auto-firmados, vamos a proceder a deshabilitar OCSP.

zimbra@zimbra-sn-u14-10:~$ zmprov ms zimbra-sn-u14-10.zimbralab.local zimbraMailSSLClientCertOCSPEnabled FALSE

Y por último reiniciaremos los servicios de zimbra

zmcontrol restart

Probando la autenticación de Cliente

Ya está todo listo y podemos irnos a la siguente URL:

Webclient URL;

  • Usando Mailbox:
    • https://FQDN:9443/certauth
  • Usando Proxy:
    • https://FQDN:3443/certauth

Admin Console URL:

  • Usando Mailbox:
    • https://FQDN:9443/certauth/admin
  • Usando Proxy:
    • https://FQDN:3443/certauth/admin

Nos solicitará el SSL que hemos importado anteriormente.

ssl-auth-x509-002

Y accederemos a la URL sin necesidad de introducir ningún usuario y contraseña, porque ya estamos usando nuestro propio certificado SSL que garantiza que somos nosotros.ssl-auth-x509-006Hasta aquí el tutorial, este método de autenticación puede estar muy bien para dar un toque adicional de seguridad. Para empresas de Hosting que solo ofrezcan Webmail seguro via certificado SSL, etc.

Especiales gracias a Irfan.

Filed Under: zimbra Tagged With: zimbra 2-steps, zimbra 2-way, zimbra cert auth, zimbra ssl auth

Reader Interactions

Comments

  1. Gabriela says

    7 April, 2015 at 22:15

    Una consulta..ya que hablamos de medidas de seguridad adicionales en la capa de autenticacion de Zimbra, existe alguna manera de implementar autenticacon de doble factor en Zimbra? No estoy encontrando mucha informacion acerca de esto, te agradeceria mucho si pudieras dar algunas referencias utiles para esto..
    Saludos!

    Reply
    • Jorge de la Cruz says

      7 April, 2015 at 22:51

      Saludos,
      Por ahora no hay nada integrado en la plataforma, puede ser que Zimbra 9.0 traiga algo pero no he visto nada de momento, hay un Bug que seguir – https://bugzilla.zimbra.com/show_bug.cgi?id=21405

      Por ahora usando aplicaciones de terceros, en cuanto sepa algo mas lo pondre en el Blog.

      Un saludo

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

March 2015
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Feb   Apr »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz