Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dynamic DNS und pfSense - IP über custom URL aktualisieren

Mitglied: cantor

cantor (Level 1) - Jetzt verbinden

30.05.2013 um 22:00 Uhr, 5762 Aufrufe, 7 Kommentare

Ich möchte über meine pfSense (2.0.1) den A-Record einer Subdomain von mir automatisch mit der WAN-IP meines Heimnetzwerkes aktualisieren.

Dazu muß ein URL der folgenden Form
https://sub.domain.tld/dns.php?<mehrere parameter>?ip=<WAN-IP>?<weitere Parameter>
aufgerufen werden.

Mein Problem besteht darin, daß ich nicht weiß, wie ich pfSense dazu bringen kann, mit der vorhandenen WAN-IP den obigen URL zusammenzubauen und dann einmal täglich per cron aufzurufen.

Mit pfSense habe ich bisher lediglich über die GUI gearbeitet und ich verfüge bedauerlicherweise über so gut wie keine Linux-Kenntnisse.

Für Tipps, Hinweise und Hilfe bei der Lösung des Problems wäre ich daher sehr dankbar.

Gruß Jürgen
Mitglied: kingkong
30.05.2013 um 23:20 Uhr
Welchen DNS-Server setzt Du denn ein? Bzw. wie würdest Du im PHP-Skript das Update durchführen? Per nsupdate?

Ich frage, weil pfSense grundsätzlich in der Lage ist, als RFC2136-Client, d.h. als DynamicDNS-Client, zu arbeiten. Wenn Du beispielsweise bind einsetzt, dann könnte dieser als RFC2136-Gegenstelle agieren und Du bräuchtest das PHP-Skript nicht.

Ansonsten brauchst Du doch eigentlich nur mit pfSense und z.B. wget eine statische URL aufrufen, in der als einziger Parameter ein Passwort steht. Dynamisch müsste da nichts sein, weil das PHP-Skript ja die Adresse des anfragenden Routers als neue Zieladresse setzen kann, wenn das Passwort korrekt ist.
pfSense ruft nach jeder IP-Änderung auf dem roten Interface sowieso schon ein Skript auf, welches dann den RFC2136-Prozess startet. Da könntest Du u.U. auch Deine Befehle unterbringen.

Ich schätze aber, Du wirst etwas mit Deiner pfSense spielen müssen. Ich weiß gerade selbst nicht, wo die Skripte liegen und wie sie heißen, aber Google müsste zu diesem Thema eigentlich einiges finden.
Bitte warten ..
Mitglied: cantor
30.05.2013 um 23:29 Uhr
Ich verfüge über eine bei all-inkl.com gehostete Domain und kann dort mit der AutoKAS Schnittstellen-API den A-Record meiner Subdomain ändern. dazu muß ich aber besagte URL aufrufen, welche die aktuelle WAN-IP der pfSense als Parameter enthalten muß.

Gruß Jürgen
Bitte warten ..
Mitglied: C.R.S.
30.05.2013 um 23:29 Uhr
Am einfachsten wäre, das ins GUI zu integrieren.

In den beiden Dateien fürs Webinterface sind die Listen um einen eigenen Anbieter zu erweitern (je in zwei aufeinander folgenden Zeilen, entsprechend den voreingestellten):

/usr/local/www/services_dyndns.php
/usr/local/www/services_dyndns_edit.php

Die Anbieterkonfigurationen stehen in /etc/inc/dyndns.class

Ich möchte jetzt aus der Erinnerung kein Tutorial dazu verfassen. Aber wenn Du dich in die dyndns.class ein bisschen reindenktst und die curl_setopt-Zusammensetzung verschiedener Anbieter vergleichst, sollte das nicht mehr allzu schwer sein bzw. ein vorhandener Anbieter schon in etwa zu übernehmen sein.
Das Ganze überlebt ein Update nicht (was bei 2.0.1 zu empfehlen wäre).

Grüße
Richard
Bitte warten ..
Mitglied: cantor
31.05.2013 um 00:10 Uhr
Hmm ... Die pfSense habe ich gerade auf 2.0.3 aktualisiert und mir die angesprochenen drei Dateien angesehen. Da ich mehr oder minder als reiner "Anwender" unterwegs bin, steige ich bei dem PHP-Code definitiv nicht durch, um die Scripte und insbesondere die dyndns.class zu ergänzen.

Ich hatte mir eigentlich vorgestellt, ein kurzes PHP-Script zusammenzudengeln, welches lediglich die aktuelle IP in den URL integriert und den URL dann aufruft. Das Script seinerseits hätte ich dann versucht, über einen Cronjob zu starten. Ich scheitere im Moment schon daran, die Variable für die aktuelle WAN-IP zu identifizieren bzw. diese über PHP zu ermitteln.

Gruß Jürgen
Bitte warten ..
Mitglied: aqui
31.05.2013 um 11:13 Uhr
Du kannst das auch über einen CRON Job regeln. Im pfSense Forum mal suchen nach cron da wird man fündig.
Eigentlich ist das schnell erledigt...wenn man denn weiss was man macht ?!
Bitte warten ..
Mitglied: cantor
31.05.2013, aktualisiert um 23:14 Uhr
Zitat von aqui:
Du kannst das auch über einen CRON Job regeln. Im pfSense Forum mal suchen nach cron da wird man fündig.
Eigentlich ist das schnell erledigt...wenn man denn weiss was man macht ?!


Einen Schritt bin ich weitergekommen, aber leider funktioniert das noch nicht wie gewünscht.

Ich habe das folgende PHP-Script erstellt:
01.
<?php 
02.
$ifinfo      = get_interface_info(wan); 
03.
$ip_provider = $ifinfo[ipaddr]; 
04.
 
05.
$url_get     = "http://kasapi.kasserver.com/kas.php?kas_action=get_dns_settings&kas_login=xxxxx&kas_auth_type=sha1&kas_auth_data=yyyyy&zone_host=meinedomain.tld.&nameserver=ns5.kasserver.com"
06.
$url1_set    = "https://kasapi.kasserver.com/kas.php?kas_action=update_dns_settings&kas_login=xxxxx&kas_auth_type=sha1&kas_auth_data=yyyyy&record_name=subdomain&record_type=A&record_data="
07.
$url2_set    = "&record_aux=0&record_id=xxxxx&nameserver=ns5.kasserver.com"
08.
$url_set     =  $url1_set . $ip_provider . $url2_set
09.
 
10.
 
11.
/* IP-der Subdomain ueber AutoKAS API abfragen *
12.
 
13.
$dns_abfrage = file($url_get); 
14.
$ip_nameserver = ereg_replace(".*\'(.*)\'.*","\\1",$dns_abfrage[50]); 
15.
 
16.
 
17.
 
18.
/* Abfrage ob IP-Aenderung auf Nameserver noetig ist *
19.
 
20.
if($ifinfo[pppoelink] == 'up' && $ip_provider != $ip_nameserver){ 
21.
	$curl = curl_init($url_set);  
22.
	curl_setopt($curl, CURLOPT_FAILONERROR, true);  
23.
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  
24.
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);    
25.
	curl_exec($curl); 
26.
	}; 
27.
?>
Wenn ich den Code zwischen <?php und ?> bei pfSense in das Feld "PHP Execute" (unter "Diagnostics" -> "Command Prompt") einfüge und ausführe, klappt alles wie gewünscht und der A-record für die Subdomain wird aktualisiert.

Im nächsten Schritt habe ich die PHP-Datei unter /usr/local/pkg/change_provider_ip.ph abgespeichert und die Rechte 0755 vergeben.

Der Eintrag unter den Cron-Settings (ich habe das Paket Cron installiert) sieht wie folgt aus:
01.
minute hour mday month wday who   command			 
02.
[...] 
03.
*/1    *    *    *     *    root   /usr/local/bin/php /usr/local/pkg/change_provider_ip.php 0
Das Kommando im Cron-Tab orientiert sich an diesem Beitrag im pfSense-Forum.

Ich bin mit meinem (begrenzten) Wissen leider am Ende; ich kann nicht erkennen, wo der Fehler steckt. Vielleicht kann mir ja noch jemand einen Schubs in die richtige Richtung verpassen.

Eintweilen herzlichen Dank im voraus.

Gruß Jürgen
Bitte warten ..
Mitglied: cantor
02.06.2013, aktualisiert 04.06.2013
Das Problem ist gelöst.
Für das Ursprungsscript bzw. die dort aufgerufene Funktion get_interface_info() hätte ich noch guiconfig.inc mittels require bzw. require_once einbinden müssen. Aus für mich nicht nachvollziehbaren Gründen bricht mein Script aber reproduzierbar ab, wenn ich eine beliebige Ressource mittels require oder require_once einbinde. Auf meine diesbezügliche Anfrage im pfSense-Forum ist keine Antwort eingegangen.

Das Script sieht mittlerweile wie folgt aus:

01.
<?php 
02.
$wan        = pfsense_get_interface_addresses('pppoe0'); 
03.
$ip_wan     = $wan[ipaddr]; 
04.
$status_wan = $wan[status]; 
05.
 
06.
$url_get    = "https://kasapi.kasserver.com/kas.php?kas_action=get_dns_settings&kas_login=xxxxx&kas_auth_type=sha1&kas_auth_data=yyyyy&zone_host=meinedomain.tld.&nameserver=ns5.kasserver.com"
07.
$url1_set   = "https://kasapi.kasserver.com/kas.php?kas_action=update_dns_settings&kas_login=xxxxx&kas_auth_type=sha1&kas_auth_data=yyyyy&record_name=subdomain&record_type=A&record_data="
08.
$url2_set   = "&record_aux=0&record_id=zzzz&nameserver=ns5.kasserver.com"
09.
$url_set    =  $url1_set . $ip_wan . $url2_set
10.
 
11.
 
12.
/* IP-der Subdomain ueber AutoKAS API abfragen *
13.
 
14.
$dns_abfrage = file($url_get); 
15.
$ip_nameserver = ereg_replace(".*\'(.*)\'.*","\\1",$dns_abfrage[50]); 
16.
 
17.
 
18.
/* Abfrage ob IP-Aenderung auf Nameserver noetig ist *
19.
 
20.
if($status_wan == 'up' && $ip_wan != $ip_nameserver){ 
21.
	$curl = curl_init($url_set);  
22.
	curl_setopt($curl, CURLOPT_FAILONERROR, true);  
23.
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  
24.
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);    
25.
	curl_exec($curl); 
26.
	}; 
27.
?>
Die Funktion pfsense_get_interface_addresses() kann ich direkt verwenden. Auch wenn ich nicht verstehe, warum das so ist - es funktioniert jedenfalls wie gewünscht.
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
Pfsense WAN Failover LTE and dynamic DNS
Frage von sleeplessnightLAN, WAN, Wireless9 Kommentare

Hallo, eine Frage an euch spezis: Ich hab mir ein WAN Failover zusammengebastelt. Das ganze funktioniert soweit auch ganz ...

DNS
Microsoft DNS URL forward zu IP
gelöst Frage von simon-niDNS2 Kommentare

Hallo liebes Forum, da mir googln leider nicht geholfen hat, wende ich mich an euch. Auf unserem Microsoft SBS2011 ...

Netzwerkmanagement
PfSense URL Blocker einrichten
gelöst Frage von twicefaceNetzwerkmanagement2 Kommentare

Guten Morgen, nachdem ich letzte Woche recht erfolgreich pfSense installiert habe läuft das System sehr gut. Jedoch habe ich ...

Internet Domänen

Empfehlung Domain-Registrar mit unterstüztung für pfSense-Dynamic-DNS oder API

gelöst Frage von soyougemanInternet Domänen6 Kommentare

Hallo, ich möchte gerne meine zahlreich verstreuten Domains (nur de/org/com) zu einem neuen Anbieter umziehen. Teilweise kosten mich vor ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 17 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 23 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...