Teltonika RutOS - DynDNS und ACME mit Cloudflare

Um dyndns mit Cloudflare nutzen zu können bedarf es derzeit eines umschreibens des scriptes, da es nicht mit API umgehen kann.

Prüfung ob der Ordner noch benötigt wird FIXME

  • Zuerst unter „Services→Dynamic DNS“ eine neue Configuration anlegen.
  • Als Service cloudflare.com-v4 auswählen (ja das ist das script, welches mit api „noch“ nicht umgehen kann)
  • Lookuphost: sollte der lokale FQDN sein, dieser löst erst auf 192.168.1.1, später dann auf die Public IP auf.
  • Hostname: das ist der gewünschte DNS-Eintrag in Cloudflare
  • Username: bei API-Nutzung unbedingt leer lassen
  • Password: hier kommt der API-Token rein
  • IP address source: Custom
  • Network: zb Mobile (PPP)
  • Intervalle einfach default lassen oder anpassen.

Achtung der DNS-Eintrag muss zuerst in Cloudflare per Hand angelegt werden, da das Script nur einen vorhandenen Eintrag ändert.

Anpassung Script

Um das Skript anpassen zu können ist es notwendig sich mit ssh (zB. Putty) zu verbinden

Der Username für die Anmeldung via ssh ist root und nicht admin

Bearbeitung mit vi

vi /usr/lib/ddns/update_cloudflare_com_v4.sh

Original:

[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"

Zeile auskommentieren:

#[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"

Original:

...
__PRGBASE="$__PRGBASE --header 'X-Auth-Email: $username' "
__PRGBASE="$__PRGBASE --header 'X-Auth-Key: $password' "
...
und diesen Teil anpassen:
...
if [ -z "$username" ]; then
__PRGBASE="$__PRGBASE --header 'Authorization: Bearer $password' "
else
__PRGBASE="$__PRGBASE --header 'X-Auth-Email: $username' "
__PRGBASE="$__PRGBASE --header 'X-Auth-Key: $password' "
fi
...

Zuerst installieren:

curl https://get.acme.sh | sh

Danach etwas aufräumen um Platz zu sparen.

rm /root/.acme.sh/deploy/*  #Ordner sicherheitshalber stehen lassen
find /root/.acme.sh/dnsapi/ ! -name 'dns_cf.sh' -type f -exec rm -f {} +
  • Im Ordner /root/.acme.sh/notify weiß ich noch nicht, muss ich erst schauen. =) FIXME
  • Sämtliche Token von Cloudflare in .profile hinterlegen:

export CF_Token=""
export CF_Account_ID=""
export CF_Zone_ID=""

. "/root/.acme.sh/acme.sh.env"

export TERM=xterm

und zum Schluss eigentlich nur noch diesen Befehl ausführen:

acme.sh --issue --dns dns_cf -d FQDN --fullchain-file /etc/uhttpd.crt --key-file /etc/uhttpd.key --reloadcmd "/etc/init.d/uhttpd restart" -m LE_MAILACCOUNT

Weil wir ja Platz sparen wollen, können wir die Logs abdrehen indem wir den Eintrag „LOG_FILE“ auskommentieren.

#LOG_FILE='/root/.acme.sh/acme.sh.log'
Möchte man den Befehl nochmals ausführen braucht man „–force“

acme.sh --issue --dns dns_cf -d FQDN --fullchain-file /etc/uhttpd.crt --key-file /etc/uhttpd.key --reloadcmd "/etc/init.d/uhttpd restart" -m LE_MAILACCOUNT --force

Nach dieser ganzen Prozedur scheint es, als ob das Webinterface viel flüssiger läuft.