Script triggern wenn externe WAN IP sich ändert

Started by astromeier, June 06, 2020, 10:13:56 PM

Previous topic - Next topic
June 06, 2020, 10:13:56 PM Last Edit: June 06, 2020, 10:23:04 PM by astromeier
Hallo allerseits!
Ich suche eine Möglichkeit (ähnlich dem Service Dyn DNS) ein eigenes Script zu triggern, wenn sich die externe WAN IP ändert.
Hintergrund:
Ich habe bei Lima-City eine Domain mit Mail, deren A-Record auf meine IP zeigt. Wenn diese sich ändert, soll das Script eine API bei Lima-City aufrufen und die neue IP setzen.
Das Script:
#!/bin/bash
ip=$(curl -s http://whatismyip.akamai.com/)
data={\"nameserver_record\":{\"name\":\"MeineDomain.de\",\"type\":\"A\",\"ttl\":\"1000\",\"content\":\"$ip\"}}
curl -X PATCH --header 'Content-Type: application/json' --header 'Accept: application/json' -u api:API-KEY --url https://www.lima-city.de/usercp/domains/Domain-ID/records/Record-ID -d $data

# response: {"status":"ok"}


Unter Services/Monit hab ich nichts passendes gefunden und das script per cron dauerfeuern lassen möchte ich nicht.

Und mit dem Service Plugin "newwanip" steigt ich noch nicht durch...

Hat jemand eine Idee oder einen Hinweis?
Dank vorab!
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

Hätte 3 Ideen...
1. Wenn dein DNS Server Aktualisierungen via ddclient zulässt, einen kleinen Linuxserver installieren und via ddclient die IP aktualisieren lassen

2. Ein Script schreiben, welches via curl die aktuelle IP in eine Datei schreibt wenn es diese noch nicht gibt. Wenn es die Datei bereits gibt, dann den Inhalt vergleichen und bei Änderung die Aktualisierung ausführen.

3. DNS Anbieter wechseln. Beispielsweise auf cloudflare.

Gesendet von meinem LG-H815 mit Tapatalk


Mit dem Web-Interface der Sense fand ich nix passendes,
... aber: auf der command line finde ich mit "pluginctl -c" den hook "newwanip"..
Wie gehts dann weiter?
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

June 06, 2020, 10:35:57 PM #3 Last Edit: June 06, 2020, 10:38:24 PM by astromeier
Danke, SuperWinni2,
Mein Provider stellt ja eine API zur Verfügung und ich suche eine Funktion in der Sense...
Ansonsten kann ich ja auch was externes aufsetzen, wie du vorschlägst.
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

Alternative...
Du kannst doch den DNS Anbieter "custom" benutzen...
ist doch relativ easy....


Service Type: Custom
Client
Client


Benutzername und Passwort leer lassen
und bei Update URL dein kompletter Updatestring rein... Musst eben deine Variablen mit einbauen...


Dann sollte das bereits klappen?!?

Super, Winni2!!!
Das teste ich mal
... mal sehen wie da die neue IP-Adresse reinkriege. 
Also "ip=$(curl -s http://whatismyip.akamai.com/)"

Hast Du einen Tip?
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

Kommt drauf an welche lösung du anstrebst.. .
Ich würde meine letzte (die Alternative) nehmen da hier alles bereits in der OPNsense integriert ist...
Einfach deinen einen Befehl in eine Zeile schreiben... dort wo deine neue IP hinein kommt musst du %IP% eingeben ( steht auch so in der hilfe)  ;)

Moin, ich nutze Cloudflare als DNS Service. So kann ich über die api der Sense mit dem packet dyndns nutzen, läuft super bei mir. Und kostet nix


Gesendet von iPad mit Tapatalk Pro
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

Hallo Superwinni2, ich kriegs nicht hin - es hängt wohl daran, dass die API im json format arbeitet und ich den data-string nicht an die Update-URL anhängen kann..
Ich hatte die Hoffnung, dass diese als curl-Argument direkt an curl geht...

Meine Einstellungen:
x Enable verbose logging
username api
password API-Key (siehe meinen curl-aufruf im script)
update-url "https://www.lima-city.de/usercp/domains/Domain-ID/records/Record-ID -d {"nameserver_record":{"name":"domain.de","type":"A","ttl":"1000","content":"%IP%"}}"
result match "\{"status":"ok"\}" mit und ohne escape getestet.


Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

Quote from: micneu on June 07, 2020, 02:28:18 AM
Moin, ich nutze Cloudflare als DNS Service. So kann ich über die api der Sense mit dem packet dyndns nutzen, läuft super bei mir. Und kostet nix

Danke, ich suche halt für meinen Provider (mit domain mit mail) eine Lösung.

Ich denke, ich gehe noch mal tiefer ins Thema Legacy Plugin Hook "newwanip" rein...
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

weiter gehts:
Ein test ohne den result match test "result match "\{"status":"ok"\}" "
lief laut log der Sense erfolgreich durch und nun wird die gecachte IP in der Sense angezeigt......
Danke, SuperWinni2, scheint wohl soweit zu klappen.
Ich kann leider nicht nachprüfen, ob der A-record bei Lima-City wirklich aktualisiert wurde.
Ich warte mal den nächsten IP-Wechsel ab..
Stay secure!
Thomas

OPNsense 22.x / Qotom Q370G4 ram8G ssd256G

Okay dann ist ja gut...

Zum testen alternativ manuell mit nem curl Befehl kurz die IP ändern und dann nochmals nen force update machen

Gesendet von meinem LG-H815 mit Tapatalk