DynDNS Alternative als Hintertür

han-solo

Mitglied
Mitglied seit
28 Jul 2005
Beiträge
451
Punkte für Reaktionen
0
Punkte
0
Hallo,

da DynDNS (dyndns.org) am Montag den 12.03.07 einen "Denial of Service" Angriff ausgesetzt war und bis heute die dynamischen IP-Adressen nicht richtig aktualisiert werden, hab ich mir eine Hintertür gebastelt.

Wenn DynDNS also nicht funktioniert, ruft man seine Fritzbox z.B. vom Handy aus an und erhält Sekunden später seine WAN IP-Adresse per mail zugeschickt.

Vorraussetzung:
- Telefon (am Besten eigenes Handy)
- callmonitor


So geht´s:
Im Listener des Callmonitor wird folgendes eingetragen, wobei 01701234567 die eingehende/anrufende Telefonnummer ist und 2591234 die Rufnummer auf die reagiert werden soll. (Z.B. bei 1und1 eine nicht verendete VoIP Nummer für Technik Zwecke)

Code:
in:request 01701234567 2591234 /var/tmp/send_wan_ip.sh

In die Datei /var/flash/debug.cfg trägt man mittels "nvi debug.cfg" folgenden Code ein. Die Variable PASSW und die E-Mail Einstellungen muss man natürlich anpassen.

Code:
# DynDNS Alternative erzeugen
echo "#!/bin/sh" > /var/tmp/send_wan_ip.sh
echo "PASSW='MYFRITZBOXPASSWORD'" >> /var/tmp/send_wan_ip.sh
echo "export REQUEST_METHOD=\"POST\"" >> /var/tmp/send_wan_ip.sh
echo "export REMOTE_ADDR=\"127.0.0.1\"" >> /var/tmp/send_wan_ip.sh
echo "export CONTENT_TYPE=\"application/x-www-form-urlencoded\"" >> /var/tmp/send_wan_ip.sh
echo "POST_DATA=\"login:command/password=\$PASSW\"" >> /var/tmp/send_wan_ip.sh
echo "export CONTENT_LENGTH=\${#POST_DATA}" >> /var/tmp/send_wan_ip.sh
echo "echo -n \"\$POST_DATA\" | /usr/www/html/cgi-bin/webcm > /dev/null" >> /var/tmp/send_wan_ip.sh
echo "export REQUEST_METHOD=\"GET\"" >> /var/tmp/send_wan_ip.sh
echo "export REMOTE_ADDR=\"127.0.0.1\"" >> /var/tmp/send_wan_ip.sh
echo "cd /usr/www/html/cgi-bin" >> /var/tmp/send_wan_ip.sh
echo "export QUERY_STRING=\"getpage=../html/de/menus/menu2.html&var:lang=de&var:lang=de&var:menu=home&var:pagename=home\"" >> /var/tmp/send_wan_ip.sh
echo "" >> /var/tmp/send_wan_ip.sh
echo "./webcm | grep \"+IpAdrDisplay\" | sed \"s/.*('//\" | sed \"s/').*//\" > /var/tmp/myip.txt" >> /var/tmp/send_wan_ip.sh
echo "" >> /var/tmp/send_wan_ip.sh
echo "# Mail verschicken" >> /var/tmp/send_wan_ip.sh
echo "mailer -s \"My FritzBox ip-address\" \\" >> /var/tmp/send_wan_ip.sh
echo "-f '[email protected]' \\" >> /var/tmp/send_wan_ip.sh
echo "-t '[email protected]' \\" >> /var/tmp/send_wan_ip.sh
echo "-m 'smtp.domain.de' \\" >> /var/tmp/send_wan_ip.sh
echo "-a 'account' \\" >> /var/tmp/send_wan_ip.sh
echo "-w 'mymailpwd' \\" >> /var/tmp/send_wan_ip.sh
echo "-i \"/var/tmp/myip.txt\"" >> /var/tmp/send_wan_ip.sh
chmod +x /var/tmp/send_wan_ip.sh

Nach einem Reboot der FritzBox kanns losgehen.

Man ruft jetzt seine FritzBox unter Verwendung der im Listener eingetragenen Rufnummern an und lässt einmal klingeln.
Danach erhält man Sekunden später ein email mit der WAN IP-Adresse der FritzBox.



Benachrichtigung per SMS:
Falls ihr die Benachrichtigung auf euer Handy als SMS bekommen möchtet, dann geht das bei E-Plus z.B so:

Einfach eine SMS mit dem Inhalt "start" an die Nummer 7676245 (smsmail) senden und schon ist es aktiviert.
Ihr bekommt eine SMS mit der email-Adresse zurück geschickt, welche dann im o.g. script als Empfänger-Adresse zu verwenden ist.
ACHTUNG: Kostet pro SMS ein paar Cent.



Funktioniert Super. Viel Spaß beim ausprobieren.

Gruß
HS
 
Zuletzt bearbeitet:
Hallo Han Solo,

Danke find ich ne super Idee, da muß man erstmal drauf kommen. :)

tschüs

chriwi
 
Na ja, man könnte sich ja auch bei zwei oder drei geographisch verteilten Dynamic-DNS-Diensten registrieren und diese parallel aktualisieren lassen ;-)

--gandalf.
 
Hallo Gandalf,

Ja könnte man, aber dieses Verfahren funktioniert auch wenn man unvorbereitet ist und im notfall sogar ohne jeglichen DNS-Service, besser wäre natürlich wenn die Fritzbox die IP dann über SMS zurücksenden würde, dmit gäbe es dann auch keine Probleme falls die Fritzbox die Mail mangels DNS nicht rausschicken kann. Abgesehen davon funktioniert dieses Verfahren auch dann wenn man sich garnicht bei einen DNS-Service angemeldet hat, weil man das vielleicht zu selten braucht, interessant wäre es in so einem Fall vielleicht auch den Port 80 normal zu zu haben und das Forwarding durch den Telefonanruf erst für eine begrenzte Zeit zu aktivieren.

tschüs

chriwi
 
Hi

Mein "Backup" ist ein Textfile mit der IP, dass per cronjob und FTP auf meine HP geladen wird. Das läuft aber auf einer NSLU2.

Die DTMF-Box sollte man sich auch mal anschauen. Soweit ich das verfolgt habe gibt es da die Möglichkeit von dynamisch generierter Sprachausgabe: man könnte sich die IP vorlesen lassen. Habs aber bei mir nicht installiert und kann da nicht weiterhelfen.

Grüsse

Psychodad
 
@chriwi: Hab mein Posting ergänzt und kurz beschrieben wie man sich z.B. bei E-Plus die Benachrichtigung als SMS schicken lassen kann.

Gruß
HS
 
Hallo Psychodad,

Damit hat du ja fast deien eigenen DynDNS-Service. :)

Das setzt aber ne Homepage voraus, sie nicht von DynDNS abhängig ist sonst beisst sich die Katze in den Schwanz (meine Homepage ist leider auf nem NSLU2 hinter DynDNS und Fritzbox, wäre damit also auch nicht erreichbar). :(
Dein Script würde mich aber trotzdem interessieren, weil ich auf dem NSLU2 dnsmasq als outbound Nameserver für meine Domain laufen und müsste eigentlich da immer die aktuelle IP in die dnsmasq.conf eintragen und den Dämonn neu starten, vom prinziep her ein ähnliches Problem wie dein Textfile. :)

tschüs

chriwi
 
Hallo Han Solo,

Danke, aber solange man dann immernoch ne e-mail braucht deckt das den von mir angenommenen Fall in dem nur noch ip tut und keine DNS mehr nicht ab. :(

tschüs

chriwi
 
aber gerne

Hi

chriwi schrieb:
Das setzt aber ne Homepage voraus, die nicht von DynDNS abhängig

Das ist klar. Aber heute kriegst Du ja kaum mehr Internet ohne zumindest ein par MB Webspace ;-)

Mein Script geht etwa so:

#!/bin/sh
cd /opt
rm ip.shtml
wget www.xyz.ch/ip.shtml
cat ip.shtml >nslu.html
USER=user
PASSWD=password
ftp -n www.xyz.ch <<END
user $USER $PASSWD
cd html
asc
put nslu.html
chmod 755 nslu.html
quit
END


--und dann natürlich:

chmod 755 getip.sh

Eintrag in crontab:
...
0 15 * * 0 root /opt/getip.sh
...
(einmal täglich reicht bei mir)


Die IP.shtml sieht so aus:
<html><head><title>NSLU2 Weiterleitungsseite</title></head>

<body>
<!--#echo var="REMOTE_ADDR" -->
</body>
</html>


Hinweise:

-Das ganze hat keine Sicherheitsabfragen oder so, schlimmstenfalls bleiben irgenwelche Prozesse hängen. Hatte aber noch nie Probleme.

Bei der FB könnte man die IP auch direkt auslesen und müsste den Umweg über IP.shtml nicht machen. (dafür funktioniert das auch hinter einem NAT-Router)

Und wie immer: kein Gewehr für irgendwas ;-)
 
han-solo schrieb:
Hallo,
Vorraussetzung:
- Telefon (am Besten eigenes Handy)
- callmonitor

gibt es den callmonitor auch als statische anwendung? (ich habe das originale avm image drauf und will den callmonitor wenn es geht per wget auf die fitzbox bekommen.)

Benachrichtigung per SMS:
Falls ihr die Benachrichtigung auf euer Handy als SMS bekommen möchtet, dann geht das bei E-Plus z.B so:

geht es auch an einer email adresse?
 
Hallo TriaxMan,

soweit ich weis kann man den Callmonitor auch per wget auf die Box holen.
Ich hab allerdings keine Anleitung dazu und ich weis auch nicht, wie das dann mit dem Listener funktioniert. Musst du mal hier im Forum suchen.

Ich nutze den Callmonitor im ds-mod und der ist einfach super. Damit kann man noch ganz andere Späße machen.

Selbstverständlich kannst du die Benachrichtigung an jede beliebige email-Adresse senden lassen.

Gruß
HS
 
@Psychodad: Du hast nicht zufälliger weise PHP fähigen Webspace? Das würde das ganze um einiges leichter machen. PHP Script mit wget einmalig laden und man muss nichts mehr uploaden. Das ganze könnte man dann noch mit Passwort sichern, so dass man nur selbst das ganze aufrufen kann.

Dann wäre das z.B. so:

wget http://www.domain.de/ip.php?user=xyz&password=abc


Aber die beste alternative ist immer noch, einen Domainanbieter zu haben wo sowas als Leistung mit drin ist. Für 1 Euro/Monat bekommt man sowas schon inklusive .de Domain (ich habe es sogar noch für 33 cent/Monat). Das läuft bestens und wenn mal was nicht gehen würde hat man sofort einen Support dem man das meldet. Da man dafür zahlt kann man da auch "mehr erwarten" ;)
 
han-solo schrieb:
Ich hab allerdings keine Anleitung dazu und ich weis auch nicht, wie das dann mit dem Listener funktioniert. Musst du mal hier im Forum suchen.

danke! dann suche ich mal. hauptsache ich finde eine binary.

Selbstverständlich kannst du die Benachrichtigung an jede beliebige email-Adresse senden lassen.

schon mal gemacht?
hast du eine ahnung wie man per shell mit einem befehl "mail" oder so, eine email versenden kann?
 
@TriaxMan
ich hab doch oben den kompletten code gepostet.
Ändere das FriBo Kennwort und die Mail-Eigenschaften und rein damit in die debug.cfg und fertig.
 
@han-solo:hast recht. mein fehler! :-Ö
 
eine viel einfachere lösung ohne syslogd, aber mit einem externen webserver mit php drauf.

current_wan_ip.php:
Code:
<?php
echo $_SERVER['REMOTE_ADDR'];
?>

in /var/flash/debug.cfg hinzufügen:
Code:
wget http://dein.webserver.de/current_wan_ip.php
mv current_wan_ip.php current_wan_ip.txt
mailer -s 'Fritz!Box IP-Adresse' -f '[email protected]' -t '[email protected]' -m 'dein.smtp.server.de' -a 'dein_account_name' -w 'dein_passwort' -i '/var/tmp/current_wan_ip.txt'
 
doch...

beckmann schrieb:
wget http://www.domain.de/ip.php?user=xyz&password=abc

Hi

Ich bin eher von der Perl-Fraktion ;-). Natürlich könnte man sich so das FTP sparen. Dafür bräuchte es halt ein Script auf der HP.

Bei gerade mal 15 Zeilen Script ist der Optimierungsbedarf aber nicht allzugross ;-). Zumal DynDNS ja im normalfall gut geht und meine IP ziemlich statisch ist (VDSL mit DHCP).

Gruss

Psychodad

[Edit wichard: Quote repariert]
 
gandalf94305 schrieb:
Na ja, man könnte sich ja auch bei zwei oder drei geographisch verteilten Dynamic-DNS-Diensten registrieren und diese parallel aktualisieren lassen ;-)

--gandalf.


Hallo wie geht diese parallel aktualiseren...

ich will 2 Dynamic DNS provider

dyndns.org

andere von

no-ip.com

parallel mit eine fritzbox aktualisieren ....

kann jemand mir erklären ?

vielen dank

hoppala00
 
@hoppala

ganz einfach:
zuerst trägst du deine dyndns daten in der Box ein und übernimmst sie.
Dann öffnest du im telnet die ar7.cfg: nvi /var/flash/ar7.cfg
scrollst bis zu "ddns"
dort findest du unter accounts nunden eintrag für deine dyndns.
das sieht so aus:
Code:
ddns {
        accounts {
                enabled = yes;
                domain = "meindyndnsaccount.dnsalias.com";
                iface = 0;
                username = "$$$$BABCDEFGHIJKLMNOPZIQGHSLLFMNCA5VR6GRQ4OHQRGFF12RTY4XB255M1OAF3A3LV1A1VUOAAA";
                passwd = "$$$$ABCDEFGHIJKLMNOPU3W3ITT5MIGAIQ1EW3SKMWGPX5YVBPYF2WVIYJR52ANEROE6LSBIAAA";
                ddnsprovider = "dyndns.org";
        }
die zeilen schreibst du dir am besten ab oder kopierst sie in die zwischenablage oder so. Dann wieder raus aus der ar7 ins webinterface und die no-ip daten eintragen.
wieder die ar7 mit nvi öffnen, wieder zum ddns eintrag und da stehen dann die no.ip daten drin. da kopierts oder schreibst du dann die dyndns daten dazu, das sieht dann so aus:
Code:
ddns {
        accounts {
                enabled = yes;
                domain = "meindydnsaccount.dnsalias.com";
                iface = 0;
                username = "$$$$BABCDEFGHIJKLMNOPSLLFMNCA5VR6GRQ4OHQRGFF12RTY4XB255M1OAF3A3LV1A1VUOAAA";
                passwd = "$$$$ABCDEFGHJIKLMNOPOZPMU3W3ITT5MIGAIQ1EW3SKMWGPX5YVBPYF2WVIYJR52ANEROE6LSBIAAA";
                ddnsprovider = "dyndns.org";
        } {
                enabled = yes;
                domain = "meinnoipaccount.no-ip.org";
                iface = 0;
                username = "$$$$ABCDEFGHIJKLMNME16CCLS2FH4NC5VAXH2QTSJPI1SPGPJVIP2MGSHJG5K2KSRQINJEHIRPHXGEAAA";
                passwd = "$$$$3ABSCDEFGHJKLMNIOPYMR1JDRIF3IHUM5DBFCVJIHR5OTWIDGEKHQM3JOLKASVA3JCTRHMIIBCSAAA";
                ddnsprovider = "No-IP.com";
        }
        types {
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.