Um invólucro CGI para RFC2136 NSUPDATE.
Compatível para AVM Fritz! Box, Ubiquiti Edgerouter e muito mais.
As teclas HMAC para enviar atualizações aos servidores de nomes são criptografadas .
O nome da chave e a senha são o nome de usuário e a senha do script.
O terminal padrão.
Usado por AVM Fritz! Box.
| Obtenha o parâmetro | Descrição | Exemplo |
|---|---|---|
| modo | Controles se o endereço IP for escolhido nos parâmetros de consulta ou no cabeçalho da solicitação | all : Parâmetros e IP de solicitação são usados, request : Solicitação IP é usada, parameter : os parâmetros de consulta são usados |
| nome de usuário | O nome da chave HMAC usada por nsupdate | exampleddns = /var/www/dyndns-cgi/keys/hmac-exampleddns.enc |
| senha | Senha usada para descriptografar a chave HMAC | |
| domínio | O domínio para atualizar | ddns.example.com |
| IP4 | Endereço IPv4 para usar | 127.0.0.1 |
| IP6 | Endereço IPv6 para usar | :: 1 |
| IP | Endereço IPv4 ou IPv6 a ser usado, o parâmetro é ignorado quando ip4 ou ip6 são definidos | 127.0.0.1 |
Dyndns versão 1.
O terminal requer autenticação básica HTTP.
| Obtenha o parâmetro | Descrição | Exemplo |
|---|---|---|
| host_id | O domínio para atualizar | ddns.example.com |
| myip | Endereço IPv4 ou IPv6 para usar | 127.0.0.1 |
DynDNS versão 2.
Usado por Ubiqiti Edgerouter.
O terminal requer autenticação básica HTTP.
| Obtenha o parâmetro | Descrição | Exemplo |
|---|---|---|
| nome do host | O domínio para atualizar | ddns.example.com |
| myip | Endereço IPv4 ou 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 " Há um exemplo Ansible no Ansible-Exemplo.yml também.
apt install dnsutils nginx-full libnginx-mod-http-lua fcgiwrapColoque os arquivos no seu sistema Debian/ Ubuntu, assim como eles estão na pasta SRC/.
Se você executar outra distribuição do Linux, pode ser necessário fazer algumas alterações.
Todas as configurações necessárias podem ser encontradas no SRC/etc/nginx/dynDNS_CGI.conf.
Ele deve ser incluído em um host virtual nginx.
Um exemplo de configuração do host virtual pode ser encontrado no src/etc/nginx/sites-sites-inabled/exemplo.conf.
Gerar uma senha:
perry@localhost ~ $ pwgen 32 1
eeh2phioyaa6ro1eiphuaRiuthee8EiJCrie uma chave 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: 20210925150939Criptografar a chave com a senha:
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: eeh2phioyaa6ro1eiphuaRiuthee8EiJAdicione a chave ao seu servidor de nomes bind9:
key exampleddns {
algorithm hmac-sha512;
secret "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==";
};É claro que você precisa agora adicionar políticas de atualização à zona também.