Ein CGI -Wrapper für RFC2136 NSUPDATE.
Kompatibel für AVM Fritz! Box, Ubiquiti Edgerouter und viele mehr.
Die HMAC -Schlüssel zum Senden von Updates an Namenserver sind verschlüsselt .
Der Keyname und die Passphrase sind der Benutzername und das Passwort für das Skript.
Der Standardendpunkt.
Verwendet von AVM Fritz! Box.
| Parameter erhalten | Beschreibung | Beispiel |
|---|---|---|
| Modus | Steuerelemente, wenn die IP -Adresse aus den Abfrageparametern oder aus dem Anforderungsheader ausgewählt werden sollte | all : Parameter und Anforderungs -IP werden verwendet, request : Anforderungs -IP werden verwendet, parameter : Abfrageparameter werden verwendet |
| Benutzername | Der Name des von NSUPDATE verwendeten HMAC -Schlüssels | exampleddns = /var/www/dyndns-cgi/keys/hmac-exampleddns.enc |
| Passwort | Passphrase zum Entschlüsseln des HMAC -Schlüssels | |
| Domain | Die zu aktualisierende Domain | ddns.example.com |
| IP4 | IPv4 -Adresse zur Verwendung | 127.0.0.1 |
| IP6 | IPv6 -Adresse zur Verwendung | :: 1 |
| IP | Die zu verwendende IPv4- oder IPv6 -Adresse wird der Parameter ignoriert, wenn ip4 oder ip6 definiert sind | 127.0.0.1 |
Dyndns Version 1.
Der Endpunkt erfordert eine grundlegende Authentifizierung von HTTP.
| Parameter erhalten | Beschreibung | Beispiel |
|---|---|---|
| Host_id | Die zu aktualisierende Domain | ddns.example.com |
| myip | IPv4- oder IPv6 -Adresse zur Verwendung | 127.0.0.1 |
Dyndns Version 2.
Verwendet von ubiqiti edgerouter.
Der Endpunkt erfordert eine grundlegende Authentifizierung von HTTP.
| Parameter erhalten | Beschreibung | Beispiel |
|---|---|---|
| Hostname | Die zu aktualisierende Domain | ddns.example.com |
| myip | IPv4- oder IPv6 -Adresse zur Verwendung | 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 " Es gibt auch ein Ansible-Beispiel in Ansible-Example.yml.
apt install dnsutils nginx-full libnginx-mod-http-lua fcgiwrapPlatzieren Sie Dateien auf Ihrem Debian/ Ubuntu -System wie im SRC/ Ordner.
Wenn Sie eine weitere Linux -Verteilung ausführen, müssen Sie möglicherweise einige Änderungen vornehmen.
Alle erforderlichen Konfigurationen finden Sie in src/etc/nginx/dyndns_cgi.conf.
Es muss in einen virtuellen Nginx -Host aufgenommen werden.
Eine Beispiel für die virtuelle Host-Konfiguration finden Sie in SRC/etc/nginx/sites-fähig/Beispiel.conf.
Ein Passwort generieren:
perry@localhost ~ $ pwgen 32 1
eeh2phioyaa6ro1eiphuaRiuthee8EiJErstellen Sie einen HMAC -Schlüssel:
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: 20210925150939Verschlüsseln Sie den Schlüssel mit dem Passwort:
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: eeh2phioyaa6ro1eiphuaRiuthee8EiJFügen Sie Ihren Bind9 -Namenserver den Schlüssel hinzu:
key exampleddns {
algorithm hmac-sha512;
secret "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==";
};Natürlich müssen Sie jetzt auch Update -Richtlinien in die Zone hinzufügen .