Un envoltorio CGI para RFC2136 NSUPDATE.
Compatible con AVM Fritz! Box, Edgerouter Ubiquiti y muchos más.
Las claves HMAC para enviar actualizaciones a los servidores de nombres están encriptadas .
El nombre clave y la frase son el nombre de usuario y la contraseña para el script.
El punto final predeterminado.
Usado por AVM Fritz! Box.
| Obtener parámetro | Descripción | Ejemplo |
|---|---|---|
| modo | Controles si la dirección IP se debe elegir desde los parámetros de consulta o desde el encabezado de solicitud | all : se utilizan parámetros y solicitud IP, request : Solicitud IP se usan, parameter : se utilizan los parámetros de consulta |
| nombre de usuario | El nombre de la tecla HMAC utilizada por NSUPDATE | exampleddns = /var/www/dyndns-cgi/keys/hmac-exampleddns.enc |
| contraseña | Passfrass utilizado para descifrar la tecla HMAC | |
| dominio | El dominio para actualizar | ddns.example.com |
| IP4 | Dirección IPv4 para usar | 127.0.0.1 |
| IP6 | Dirección IPv6 para usar | :: 1 |
| IP | La dirección IPv4 o IPv6 para usar, el parámetro se ignora cuando se definen ip4 o ip6 | 127.0.0.1 |
Dyndns versión 1.
El punto final requiere autenticación básica HTTP.
| Obtener parámetro | Descripción | Ejemplo |
|---|---|---|
| host_id | El dominio para actualizar | ddns.example.com |
| myip | La dirección IPv4 o IPv6 para usar | 127.0.0.1 |
Dyndns versión 2.
Utilizado por Ubiqiti Edgerouter.
El punto final requiere autenticación básica HTTP.
| Obtener parámetro | Descripción | Ejemplo |
|---|---|---|
| nombre de host | El dominio para actualizar | ddns.example.com |
| myip | La dirección IPv4 o IPv6 para usar | 127.0.0.1 |
# original endpoint
curl " https://ns.example.com/cgi-bin/dyndns.cgi?username=exampleddns&password=eeh2phioyaa6ro1eiphuaRiuthee8EiJ&ip4=127.0.0.1&ip6=::1 " # dyndns1
# picked from ubiquiti edge router
curl -u exampleddns:eeh2phioyaa6ro1eiphuaRiuthee8EiJ " https://ns.example.com/nic/dyndns?action=edit&started=1&hostname=YES&host_id=ddns.example.com&myip=127.0.0.1 " # dyndns2
# picked from ubiquiti edge router
curl -u exampleddns:eeh2phioyaa6ro1eiphuaRiuthee8EiJ " https://ns.example.com/nic/update?system=dyndns&hostname=ddns.example.com&myip=127.0.0.1 " También hay un ejemplo ansible en Ansible-Example.yml.
apt install dnsutils nginx-full libnginx-mod-http-lua fcgiwrapColoque los archivos en su sistema Debian/ Ubuntu al igual que están en la carpeta SRC/.
Si ejecuta otra distribución de Linux, es posible que deba hacer algunos cambios.
Todas las configuraciones requeridas se pueden encontrar en src/etc/nginx/dyndns_cgi.conf.
Debe incluirse en un host virtual NGINX.
Se puede encontrar un ejemplo de configuración de host virtual en SRC/etc/nginx/sites-habilitado/ejemplo.conf.
Generar una contraseña:
perry@localhost ~ $ pwgen 32 1
eeh2phioyaa6ro1eiphuaRiuthee8EiJCrea una tecla HMAC:
perry@localhost ~ $ dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST exampleddns
Kexampleddns.+165+26667
perry@localhost ~ $ cat Kexampleddns.+165+26667.private
Private-key-format: v1.3
Algorithm: 165 (HMAC_SHA512)
Key: 0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==
Bits: AAA=
Created: 20210925150939
Publish: 20210925150939
Activate: 20210925150939Cifre la clave con la contraseña:
root@localhost ~# echo -n "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==" | openssl enc -aes-256-cbc -e -iter 1000 -a -salt > /var/www/dyndns-cgi/keys/hmac-exampleddns.enc
enter aes-256-cbc encryption password: eeh2phioyaa6ro1eiphuaRiuthee8EiJ
Verifying - enter aes-256-cbc encryption password: eeh2phioyaa6ro1eiphuaRiuthee8EiJAgregue la tecla a su servidor de nombres bind9:
key exampleddns {
algorithm hmac-sha512;
secret "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==";
};Por supuesto, ahora también necesita agregar políticas de actualización a la zona .