¿Necesitas tener más de un usuario para el acceso al panel de control web de tu instalación de AdGuard Home?
Índice
- Story time
- ¿Cómo hacerlo? Aquí, directo al grano.
Story time
Hállome haciendo pruebas con la versión contenerizada de AdGuard Home a través de Docker y docker-compose. La situación consistía en ver qué tal va una posible alternativa a las instalaciones de Pi-hole que uso desde hace cinco años aproximadamente en un pequeño cluster de Raspberry Pi's, con réplicas en una tercera máquina en la misma red local.
En un principio todo correcto con AdGuard Home, hasta que llegó el momento de configurar la réplica en una máquina aparte.
En Pi-hole hacía uso de un script el cual generaba una copia de la configuración, con la función propia del software llamada 'Teleporter' para luego restaurarla en la otra máquina.
Esperaba poder usar algo semejante en AdGuard pero de momento tal función no existe. Técnicamente podría adaptar el anterior mencionado script de modo que en su lugar copiara el archivo que almacena todo la configuración de AdGuard Home. Pero esto implicaría tener dos instalaciones exactamente iguales y en este caso la 'replica' es más una copia redundante con nombre de máquina, credenciales y algún otro parámetro diferentes.
Que nuevamente, se podría adaptar el script para hacer los cambios pertinentes pero debería haber una mejor solución, pensé. Y correcto, la hay: AdGuardHome sync.
Con esta estupenda herramienta, es posible tener un intermediario capáz de conectarse a tus diferentes instancias de AdGuard Home y sincronizar la configuración que le digas de la instalación principal, a las réplicas. perfect.
La herramienta ya viene contenerizada y con claras instrucciones de cómo ponerla en marcha con docker-compose. De este modo, ponerla a prueba fue cuestión de unos pocos segundos.
El problema con esto, no era capáz de acreditarse a ninguna de mis instancias.
Tras rápidamente deducir que el problema eran las contraseñas, las cuales se componen de una gran variedad de carácteres generados aleatoriamente, intenté hacer escape de los símbolos que pudieran interferir con la sintaxis de compose, pero nada.
Al final decidí cambiar la contraseña por algo más sencillo. Y fue entonces cuando percaté el funcionamiento de las credenciales en el archivo de configuración de AdGuard Home:
users:
- name: <usuario>
password: <hash_de_contraseña>Es una simple lista con dos párametros.
Pese a que en la interfaz web de momento no existe la posibilidad de crear nuevos usuarios, aunque es algo que se ha hablado; es posible crearlos añadiendo sus datos a la anterior lista.
De este modo podría crear un usuario específico para el intermediario de la sincronización y seguir usando el actual para la interfaz web. yay.
¿Cómo hacerlo?
Necesitarás principalmente lo siguiente:
- Acceso al archivo de configuración de la(s) instancia(s) de AdGuard Home en cuestión (AdGuardHome.yaml). duh.
- También será necesario hacer uso de httpasswd, herramienta que forma parte de Apache2, el software para servir contenido a través del protocolo http(s) entre otros.
Procedemos añadiendo una nueva entrada en la lista users dentro del archivo de configuración AdGuardHome.yaml
users:
- name: <usuario1>
password: <hash_de_contraseña_usuario1>
- name: usuario2
password:De modo que ahora tenemos un usuario más, usuario2.
Para su contraseña necesitaremos generar su pertinente hash usando la función de encriptación bcrypt de httpasswd, herramienta que podemos usar de diferentes modos, ya sea desde una instalación que ya dispongas en alguna de tus máquinas, con una nueva instalación, usando versiones web o mejor aún, ¡docker!
docker run --rm -ti xmartlabs/htpasswd usuario2 contraseñaRecuerda reemplazar usuario2 y contraseña por tus credenciales deseadas.
Con este sencillo comando, podremos en marcha un ligero contenedor y crear con él nuestro hash. Nos devolverá una cadena de valores semejante al siguiente:
usuario2:$2y$05$T/fdpC.iUNkDuIllvRVs7eD3nLuA8QpmuUTIK6pscoz1OVHXrXslSCompuesta de usuario:hash_de_contraseña
Con estos datos podremos completar la configuración del nuevo usuario en AdGuardHome.yaml:
users:
- name: <usuario1>
password: <hash_de_contraseña_usuario1>
- name: usuario2
password: $2y$05$T/fdpC.iUNkDuIllvRVs7eD3nLuA8QpmuUTIK6pscoz1OVHXrXslSAñadiendo de este modo tantos usuarios como se necesiten.
Una vez guardados los cambios, reiniciamos la instancia de AdGuard Home y podremos hacer uso de los nuevos credenciales sin perder los anteriores.
Ten en cuenta que de este modo todos los usarios tienen el mismo nivel de privilegios. De momento no existe un sistema estable de permisos en AdGuard Home, pero de nuevo, se está hablando sobre ello.