Saludos amigos, hace unos días os mostraba todo lo que necesitamos saber sobre Veeam Backup for AWS v2, por si acaso no habéis estado atentos, os pego el blog aquí:
Hoy os traigo un paso más sobre cómo securizar de manera correcta nuestra instancia de Veeam Backup for AWS v2.
Para ello nos basaremos en Let’s Encrypt, el famoso proyecto open source que nos permite generar certificados SSL gratuitos.
NOTA: Este proceso no está soportado oficialmente por Veeam, y cualquier consecuencia de seguir los pasos de manera incorrecta, o cualquier incidencia derivada de estos pasos nos dejará sin soporte. Tendremos que desplegar el appliance de nuevo, ¡tenerlo en cuenta!.
Instalación de los requisitos del sistema
Para hacer funcionar todo vamos a necesitar un par de paquetes para hacer de manera automática todo esto:
- jq
- Los paquetes necesarios de Let’s Encrypt
Para instalar jq, lanzaremos el siguiente comando:
sudo apt-get install jq -y
Una vez tenemos jq, ahora instalaremos los paquetes de Let’s Encrypt, que es tan sencillo como lanzar lo siguiente:
cd /root curl https://get.acme.sh | sh
Esto nos creará el siguiente directorio con lo siguiente dentro:
ls .acme.sh/ -lah total 240K drwx------ 8 root root 4.0K May 15 10:44 . drwx------ 5 root root 4.0K May 15 12:32 .. -rw-r--r-- 1 root root 345 May 15 12:33 account.conf -rwxr-xr-x 1 root root 193K May 15 09:36 acme.sh -rw-r--r-- 1 root root 78 May 15 09:36 acme.sh.env drwxr-xr-x 3 root root 4.0K May 15 10:44 ca drwxr-xr-x 2 root root 4.0K May 15 09:36 deploy drwxr-xr-x 2 root root 4.0K May 15 09:36 dnsapi -rw-r--r-- 1 root root 332 May 15 14:49 http.header drwxr-xr-x 2 root root 4.0K May 15 09:36 notify
Ya tenemos todo listo, vamos al siguiente paso.
Descargar, y configurar el script veeam_aws_ssl.sh
He creado un script que lo que hace realmente es combinarse con el Script de Let’s Encrypt, e instalar el Certificado SSL en Veeam Backup for AWS v2, que necesita convertirse a .pfx, pero esto lo hace todo el script, lo descargaremos desde aquí, yo lo pondría en /root también, o en la misma carpeta donde hemos descargado Let’s Encrypt:
Hay que configurar unos poquitos parámetros, pero no son difíciles, vamos a verlos aquí:
- veeamDomain: Este es el FQDN de tu VBA, por ejemplo – vba.domain.com
- veeamSSLPassword: Una contraseña para cifrar el certificado .pfx
- veeamUsername: El usuario con acceso al Veeam Backup for AWS v2 RESTFul API
- veeamPassword: La contraseña para el usuario con acceso al Veeam Backup for Microsoft AWS v2 RESTFul API
- veeamBackupAWSServer: La IP Pública, o FQDN, del Veeam Backup for AWS v2
veeamDomain="YOURVEEAMAWSAPPLIANCEDOMAIN" veeamSSLPassword="YOURVEEAMSSLPASSWORD" #Introduce a password that will be use to merge the SSL into a .PFX veeamOutputPFXPath="/tmp/bundle.pfx" veeamUsername="YOURVEEAMBACKUPUSER" veeamPassword="YOURVEEAMBACKUPPASS" veeamBackupAWSServer="https://YOURVEEAMBACKUPIP" veeamBackupAWSPort="11005" #Default Port
Una vez tengamos todo relleno, podremos salir del editor de texto y continuar con el siguiente paso.
Lanzando Let’s Encrypt y obteniendo un certificado SSL
Ahora que ya tenemos nuestro script preparado, y también Let’s Encrypt, llega el momento de lanzar el comando de Let’s Encrypt, como sabéis, el comando se puede lanzar con varios modos de verificación, en este caso voy a usar Cloudflare, pero funcionaría también con standalone, etc. Mirar más aquí sobre los métodos que hay:
El Script que he creado mirará dentro de /root/.acme.sh/VUESTROFQDN, con lo que mientras todo esté en este directorio, funcionará, vamos a ver cómo yo he usado Cloudflare.
cd /root export CF_Key="NUESTRAKEYDECLOUDFLARE" export CF_Email="[email protected]" # La direccion email que usamos en CloudFlare .acme.sh/acme.sh --issue -d VUESTROVBA.DOMINIO.COM --dns dns_cf --reloadcmd "/root/veeam_aws_ssl.sh" --force
Para conocer vuestra Key de Cloudflare, aquí donde podéis encontrarlo:
Una vez lanzamos este comando con todo bien, podremos ver un resultado similar a éste:
[Sun Jun 21 11:38:36 UTC 2020] Single domain='vbaws.jorgedelacruz.es' [Sun Jun 21 11:38:36 UTC 2020] Getting domain auth token for each domain [Sun Jun 21 11:38:37 UTC 2020] Getting webroot for domain='vbaws.jorgedelacruz.es' [Sun Jun 21 11:38:37 UTC 2020] vbaws.jorgedelacruz.es is already verified, skip dns-01. [Sun Jun 21 11:38:37 UTC 2020] Verify finished, start to sign. [Sun Jun 21 11:38:37 UTC 2020] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/89380917/3863053238 [Sun Jun 21 11:38:38 UTC 2020] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/045600bfd0d43d58bb1c832bf4b755a51429 [Sun Jun 21 11:38:40 UTC 2020] Cert success. -----BEGIN CERTIFICATE----- MIIFZDCCBEygAwIBAgISBFYAv9DUPVi7HIMr9LdVpRQpMA0GCSqGSIb3DQEBCwUA MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDA2MjExMDM4MzhaFw0y [...] TNorQsk2U8SsLAxERvXjV460ni0ryjeuBQp+7mhAmuPSOa+FHDJWOx0ntmDWKwyD GtaUTA9HIqk577fJqNypUfMYNwdMCv9i4FCQTF3pqNGC3+ix6IrI4A== -----END CERTIFICATE----- [Sun Jun 21 11:38:40 UTC 2020] Your cert is in /root/.acme.sh/vbaws.jorgedelacruz.es/vbaws.jorgedelacruz.es.cer [Sun Jun 21 11:38:40 UTC 2020] Your cert key is in /root/.acme.sh/vbaws.jorgedelacruz.es/vbaws.jorgedelacruz.es.key [Sun Jun 21 11:38:40 UTC 2020] The intermediate CA cert is in /root/.acme.sh/vbaws.jorgedelacruz.es/ca.cer [Sun Jun 21 11:38:40 UTC 2020] And the full chain certs is there: /root/.acme.sh/vbaws.jorgedelacruz.es/fullchain.cer [Sun Jun 21 11:38:40 UTC 2020] Run reload cmd: /root/veeam_aws_ssl.sh Your Veeam Backup for AWS SSL Certificate has been replaced with a valid Let's Encrypt one. Go to https://vbaws.jorgedelacruz.es [Sun Jun 21 11:38:43 UTC 2020] Reload success
Y si todo ha ido bien, tendremos el mensajito que nos dice que podemos ir a nuestro https://TUFQDN, si vamos podremos ver lo siguiente finalmente:
Si expandimos el Certificado SSL, podremos ver a que FQDN nos ha asignado este Certificado SSL: 
Programar el comando para que se ejecute cada 90 días
Estos Certificados SSL caducan cada 90 días, con lo que podremos programarlo con el siguiente comando, y tener un certificado SSL válido para siempre, siempre que se ejecute esta tarea programada:
* * */89 * * .acme.sh/acme.sh --issue -d VUESTROVBA.DOMINIO.COM --dns dns_cf --reloadcmd "/root/veeam_aws_ssl.sh" --force > /var/log/syslog
Con esto ya tendríamos todo listo. Dejar los comentarios e ideas en los comentarios. Gracias por leerlo.

Leave a Reply