
Hace un tiempo escribí esto sobre mDNS y esto otro sobre avahi.
¿Estoy harto?
Pues si, estoy un poco harto de un comportamiento que no es compartido por otros sistemas, y que curiosamente solo afecta al hardening de Fedora, RedHat y familia.
En mi casa tengo un TLD en lugar de los habituales .home o .local que suelen existir en domicilios.
La razón es simple y muy similar a por qué un aficionado a los coches puede tener un foso en su aparcamiento. A veces puedo tener un laboratorio en casa.
Y como tengo un laboratorio, quiero que funcione con las mismas características que voy a tener en producción.
Problema
Si quiero resolver localmente, lo lógico es ir a mi DNS local.
Es más, si quiero resolver quiero exactamente eso, resolver, y el orden esperado por mi parte va a ser mi fichero host y a continuación el DNS de la interfaz de red.
Con avahi, se genera una caché de contenido descubierto por el protocolo de turno que se interpone en el camino del comportamiento esperado.
Como es lógico, en producción, no voy a tener como protocolo de uso habitual un protocolo del tipo avahi, bonjour, LNA y originalmente incluso NetBIOS, no solo por seguridad, si no también higiene y otras cosas.
Así que…
Solucionando
Por supuesto lo primero que he hecho es quitar de la ecuación cualquier otra cosa, como el router, o pihole, o incluso mi máquina, hoy ya estoy trabajando con mi máquina definitiva, y actualizada.
Lo primero. Diagnosis del DNS.
Cuando montas una red híbrida siguiendo los conceptos habituales, era tradicional montar un dominio interno empresa.local
, o mejor aún, un empresa.adroot
usando el dominio por compatibilidad NetBIOS.
Desde hace tiempo, por los motivos que sean, todo esto está pasado de moda.
No es que no se pueda, no es que no se deba, es que ahora, ya desde hace unos años, sobre todo con la evolución a la nube, el uso de un FQDN también para el DNS cobra relevancia, con vistas a una posible ubicuidad del recurso, da igual que sea recurso local o remoto, va a ser una resolución DNS el acceso preferido.
Y eso es lo que quiero. Acceder por FQDN, y que la resolución DNS se ocupe de saber si la IP es local, remota, de una interfaz o de otra.
Y es que puedo querer usar el mismo nombre FQDN y que su configuración DNS cambie en función de la ubicación.
Puedo querer que petete
exista en mi casa, en casa de mis padres, en una oficina y en internet, y usar el mismo FQDN para servicios que estarán en una IP diferente en cada caso.
No quiero un solo HombeLab. Quiero muchos homelabs.
Hay quien usa NAT-Loopback. En fín, para gustos los colores.
Por lo tanto, tenemos un ping, y algunas herramientas más.
Ping y nslookup dan respuestas erróneas, sobre todo comparado con una consulta real con dig, como esta:
Y ahí está el detalle, y es que tengo que forzar a mi máquina a que consulte el DNS por encima de otros servicios, dado que no quiero que se pierda en autodescubrimientos y demás, y porque echo de menos el comportamiento limpio de un windows para estos casos.
Técnicamente, si un servidor DNS responde “El registro DNS no existe”, es una respuesta válida, porque es una respuesta. Igual que el meme del servidor web que responde con un 200 para luego informar de un 404 en el payload.
A ver, es una tontería pero técnicamente es válido.
Pues eso, que es una respuesta válida y no un error, aunque no responda como queremos.
Otra cosa sería “No estoy autorizado” o “No es posible realizar la petición”.
Forzando los comportamientos
A ver.
Tengo que editar el fichero nsswitch, pero no puedo editarlo directamente.
Pudiera tener la posibilidad de usar el fichero hosts como resolución de todo esto, pero voy a ser más práctico, voy a hacer que una misma configuración cliente sea válida para múltiples ubicaciones y configuraciones de servidor.
Authselect tiene una característica que es útil. Me permite unirme a dominios y otros entornos complejos de laboratorio. Así que es lo que vo a usar como herramienta para modificar mi entorno.
La solución
Y la lista de comandos, aquí:
sudo authselect list
sudo authselect current
sudo authselect create-profile -b=sssd Petete-first
echo "Petete-first con petete DNS como DNS preferente" | sudo tee /etc/authselect/custom/Petete-first/README
sudo authselect select custom/Petete-first
sudo sed -i 's/dns//g' /etc/authselect/custom/Petete-first/nsswitch.conf
sudo sed -i 's/files/files dns/g' /etc/authselect/custom/Petete-first/nsswitch.conf
sudo authselect disable-feature with-mdns4
sudo authselect disable-feature with-mdns6
sudo authselect disable-feature with-m4
sudo authselect disable-feature with-m6
sudo authselect apply-changes
Y con esto, paso dejo configurado un nivel más básico para cuando quiera jugar con el dominio desde esta máquina.
YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://feedpress.me/sospechososhabituales
Y sin más, os dejo los enlaces:
Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70