1/9/20

Alertas vía mail de espacio en disco en Windows con Powershell

El siguiente es un script al que en su momento le saque mucho provecho y había olvidado que lo tenia. Su función es verificar diariamente (mediante una tarea programada) el espacio libre disponible y en caso de que dicho espacio sea menor al umbral definido envía una alerta vía mail con el detalle. Adicionalmente en cada ejecución guarda un log.

El mismo está pensado para envíos desde cuentas Office365 pero es fácilmente adaptable a otras cuentas.


2/5/20

Personalizar Apache Guacamole Guacamole

En artículos anteriores vimos como montar un servicio de puerta de enlace de escritorio remoto vía web con Apache Guacamole, todo sobre Docker, con SSL y autentificación en dos pasos.

Si seguiste esos artículos y se lo mostrarte a tu jefe, de seguro todas maravillosas prestaciones del producto quedaron apocadas por comentarios chistosos/despectivos sobre el nombre, el logo y el contexto de la url. Así que en este articulo solucionaremos todas esas quejas y pasaremos de esto:

A algo como esto:


Cambiar la URL:
La manera como yo la hago es muy sencilla y consiste solo en ingresar al contenedor borrar la carpeta "ROOT" del tomcat y renombrar la carpeta "guacamole" a "ROOT", haciendo esto mi dominio pasa a apuntar directamente al Apache Guacamole sin necesidad de agregar el contexto, es decir:
  • Antes: https://midominio.algo/guacamole
  • Después: https://midominio.algo
Si por el contrario solo quieres renombrar el contexto de la url de "/guacamole" a "/otracosa", solo debes eliminar "ROOT" (opcional pero recomendable) y renombrar "guacamole" a "otracosa".

Como sabrás hacer este cambio en docker es solo temporal y durará hasta que se actualice la imagen, a menos que le hagas un docker commit, lo cual genera una nueva imagen y posteriormente cambies en el docker-compose.yml la imagen oficial de guacamole por tu nueva imagen creada, lo cual yo no recomiendo hacer. Mi sugerencia es que se armen un pequeño script como el siguiente:



Y así si en algún momento se pierde el cambio solo corren el script y listo, ni siquiera es necesario reiniciar el contenedor. 

Cambiar Logo y Nombre: 
Para esto utilizaremos un plugin, el cual antes de pasarlo al servidor lo deben descargar en un PC:

descargar

Logo:
Abran el archivo branding.jar con 7-zip; van a la carpeta "images" y allí verán un archivo de nombre logo-place-holder.png, el cual deben reemplazarlo con el logo que deseen; es recomendable mantener el mismo nombre de archivo así no hace falta modificar nada más.


Por ultimo para ir ajustando el tamaño de la imagen tienen que ir modificando los siguientes valores en el archivo login-override.css:


Nombre:
Ingresamos a la carpeta "translations", hacemos una copia del archivo en.json, y creamos uno nuevo llamado es.json con el siguiente contenido:

Reemplacen "RD Gateway" con el nombre que quiera.

Ahora abran el archivo "guac-manifest.json" y cambian para que lea el archivo de traducción correcto:



Subir el archivo al servidor:
Ya con el cambio de logo y nombre realizado, suban el archivo al servidor alojandolo en la carpeta de las extensiones la cual si siguieron mis artículos anteriores seria: /docker/guacamole/config/extensions y reinicien el contenedor de Guacamole.

1/5/20

Apache Guacamole en Docker con certificado SSL de Let's Encrypt

En un articulo anterior les mostré como montar un servicio de puerta de enlace de escritorio remoto vía web con Apache Guacamole, todo sobre Docker, en este articulo vamos a añadir otra capa de seguridad sumando dos contenedores adicionales, un nginx proxy y un companion que se encarga de generar un certificado SSL de Let's Encrypt y mantenerlo actualizado.

A considerar antes de iniciar:
  • NOTA1: Debemos contar con un dominio o un DDNS.
  • NOTA2: Si ya siguieron el tutorial anterior tienen dos opciones... Borrarlo todo y seguir este nuevo tutorial o solamente hacer los ajustes necesarios al .yml y al archivo .env para añadir los dos nuevos contenedores.
  • NOTA3Let's Encrypt necesita que tengas el puerto 443 y 80 abiertos en tu router a modo de poder hacer la validación y generar el SSL. 
Si comienzan desde "cero" pueden correr el siguiente script:


Del siguiente modo:

Cambiar a sudo:

sudo su

Descargar el script:

wget https://gist.githubusercontent.com/JManzur/bb5b1128c5da6dec53ae545f0a60a849/raw/1c70eb1558997f6807223cb22c35072deb22ce55/docker-compose.yml

Hacerlo ejecutable:

chmod +x prep_guacamole_ssl.sh

Ejecutarlo:

./prep_guacamole_ssl.sh

IMPORTANTE: Una vez finalice la ejecución del script es recomendable que editen el archivo de variable de entorno que genera y coloquen su propio usuario y contraseña para la base de datos, adicionalmente ingresen la información de su dominio, y correo, para ello editen el archivo /docker/guacamole/.env 



El script también se encargó de bajar el docker-compose.yml el cual contiene los 6 contenedores necesarios:


Y antes del primer inicio necesitamos ejecutar el contenedor que genera la base de datos:

docker-compose up init-guac-db

NOTA: El proceso anterior solo se realiza por única vez antes del primer inicio.
Y una vez finalice levantamos todo con:

docker-compose up -d

Hecho esto ya podemos ingresar a

https://IP/guacamole/#/

Con los credenciales:
  • Usuario: guacadmin
  • Contraseña: guacadmin
Al ingresar se nos presentará un código QR, (es recomendable respaldarlo) el cual tendremos que escanear con la app Google Authenticator disponible para Android y iOS y así podremos hacer la autentificación en dos pasos.

Ejemplo:

Clic en la imagen para agrandar

NOTA: Cada vez que creemos un nuevo usuario debemos marcarle la opción "permitir el cambio de contraseña" a modo de que puede utilizar la autentificación  en dos pasos.


21/4/20

DDNS con Duck DNS en Docker

Años atrás NO-IP, era el servicio gratuito de DDNS que elegíamos los SysAdmin en nuestros proyectos personales o incluso como una solución para algún cliente pequeño; pero hoy en día la mejor alternativa es sin lugar a dudas Duck DNS. En este articulo les mostrare como utilizar el servicio en Docker, con Docker Compose.

Si aun no tienen instalado docker y docker-compose pueden instalarlo (en Ubuntu) con el siguiente comando:
  • sudo apt-get install docker.io docker-compose
Ahora ejecuten los siguientes comandos para crear un directorio donde descargaremos el docker-compose.yml
Hecho esto obtendremos un archivo como este:


Ahora antes de levantar el contenedor. Ingresen a Duck DNS, proceden a registrarse con el método que prefieran y verán en el home sus datos de usuarios, incluido el "Token", el cual deben copiar y pegar en el compose en "TOKEN=" (sin espacios luego del símbolo "=" ):


Proceden a crear su subdominio:


Lo definen en el compose en "SUBDOMAINS=" (sin espacios luego del símbolo "= " y sin http://)

Ejemplo:

  • - SUBDOMAINS=ejemplo.duckdns.com

Ahora estando en /docker/tools/ hacen:

  • docker-compose up -d
Esto seria todo ya tienes un DDNS que se renovara automáticamente.

NOTA: Recuerden cambiar la time zone, pueden identificar la suya con la ayuda de este listado