Un wrapper CGI pour RFC2136 nSupdate.
Compatible avec Avm Fritz! Box, Ubiquiti Edgerouter et bien d'autres.
Les clés HMAC pour envoyer des mises à jour aux serveurs de noms sont cryptées .
Le nom de clé et la phrase de passe sont le nom d'utilisateur et le mot de passe du script.
Le point de terminaison par défaut.
Utilisé par Avm Fritz! Box.
| Obtenir le paramètre | Description | Exemple |
|---|---|---|
| mode | Contrôles Si l'adresse IP doit être choisie dans les paramètres de requête ou à partir de l'en-tête de demande | all : Paramètres et demande IP sont utilisés, request : la demande IP est utilisée, parameter : les paramètres de requête sont utilisés |
| nom d'utilisateur | Le nom de la clé HMAC utilisée par NSUpdate | exampleddns = /var/www/dyndns-cgi/keys/hmac-exampleddns.enc |
| mot de passe | Phrase de passe utilisée pour décrypter la clé HMAC | |
| domaine | Le domaine à mettre à jour | ddns.example.com |
| ip4 | Adresse IPv4 à utiliser | 127.0.0.1 |
| ip6 | Adresse IPv6 à utiliser | :: 1 |
| IP | Adresse IPv4 ou IPv6 à utiliser, le paramètre est ignoré lorsque ip4 ou ip6 sont définis | 127.0.0.1 |
DYDDNS Version 1.
Le point de terminaison nécessite l'authentification de base HTTP.
| Obtenir le paramètre | Description | Exemple |
|---|---|---|
| host_id | Le domaine à mettre à jour | ddns.example.com |
| myip | Adresse IPv4 ou IPv6 à utiliser | 127.0.0.1 |
DYDDNS Version 2.
Utilisé par Ubiqiti Edgerouter.
Le point de terminaison nécessite l'authentification de base HTTP.
| Obtenir le paramètre | Description | Exemple |
|---|---|---|
| nom d'hôte | Le domaine à mettre à jour | ddns.example.com |
| myip | Adresse IPv4 ou IPv6 à utiliser | 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 " Il y a également un exemple anible dans anible-example.yml.
apt install dnsutils nginx-full libnginx-mod-http-lua fcgiwrapPlacez des fichiers sur votre système Debian / Ubuntu, tout comme ils sont dans le dossier SRC /.
Si vous exécutez une autre distribution Linux, vous devrez peut-être effectuer des modifications.
Toutes les configurations requises peuvent être trouvées dans Src / etc / nginx / dyndns_cgi.conf.
Il doit être inclus dans un hôte virtuel Nginx.
Un exemple de configuration d'hôte virtuel peut être trouvé dans SRC / etc / nginx / sites-compatible / example.conf.
Générer un mot de passe:
perry@localhost ~ $ pwgen 32 1
eeh2phioyaa6ro1eiphuaRiuthee8EiJCréez une clé 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: 20210925150939Crypter la clé avec le mot de passe:
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: eeh2phioyaa6ro1eiphuaRiuthee8EiJAjoutez la clé à votre serveur de noms Bind9:
key exampleddns {
algorithm hmac-sha512;
secret "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==";
};Bien sûr, vous devez également ajouter des politiques de mise à jour à la zone .