Pages: [1] 2   Go Down
Author Topic: Arduino aus dem Internet erreichen  (Read 2212 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Forum,
über das lokale Heimnetzwerk kann ich meine PINs schalten, nun würde ich das ganze gerne über das Internet tun wollen. dazu muss ich doch sicherlich meinem Router ein DNS Service zuweisen. So etwas habe ich jedoch noch nie komplett selber gemacht, was muss ich das berücksichtigen und welchen Anbieter habt ihr gewählt? Falls es nötig ist, ich habe eine Alice Box, die bereits einige zur Auswahl anbiete.
mfg
Balli 
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich habe seit Jahren "dyndns.org".
Aber vergiss nicht das Portforwarding auf deinem Router. Sonst gehts nicht.

Gruß/hk007
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja das kenne ich von meinen IPCams, die haben einen voreingestellten DNS-Service. Bei DynDNS muss ich doch aber was bezahlen oder nicht?
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dyndns ist immer noch kostenlos, falls Du keinen der Premiumservices nutzt. Für ein einfaches DNS kostet das nix.
Ich würde aber trotzdem dringend davon abraten, den Arduino direkt aus dem Internet zugänglich zu machen.
Es gibt aufgrund der limitierten Rechenleistung keinerlei Sicherheitsmechanismen. Der i.d.R. verbaute WizNET 5100 Ethernet Chip kann glaub ich maximal 2 parallele Netzwerkverbindungen verarbeiten. Alles was darüber hinaus geht, kann ungewollte Seiteneffekte haben.
Ich weiss ja nicht, was Du da schaltest, aber ich vermute mal es gibt keine Authentifizierung oder einen Passwortschutz. Jeder der Deine öffentliche IP kennt, hat damit Zugriff auf den Arduino. Auch wenn Du die IP keinem sagst, es gibt genug Spambots, die nihcts anderes machen als ganze Netze abzugrasen auf der Suche nach offenen Ports. Da bei solchen Scans auch immer Daten geschickt werden, bekommt Dein Arduino wahllos irgendwelche Bytes geschickt.
Bist Du 100%ig sicher, das Dein Projekt gegen alle falsch gesendeten Daten abgesichert ist?
Im schlimmsten Fall schalten Dir irgendwelche Leute das Licht an- und aus, steuerst Du aber z.B. die Heizung von Aquarium oder Deinem Pool, kann das schnell größere Folgen haben (Stromkosten, gekochte Fische, etc.).
Auch wenn es Dein Projekt drastisch vergrößert, ich würde immer einen Server vor den Arduino hängen, der den Zugriff regelt. Hier kannst Du dann mit Paswortabfragen, HTTPS und was weiss ich nicht alles das Projekt sicher machen. Der Webserver selbst redet dann per lokalem Netzwerk mit dem Arduino. Schau Dir mal das Projekt von Cetax an: Hier haben wir sowas detailliert besprochen. http://arduino.cc/forum/index.php/topic,102817.0.html

INTERNET <-----> | Router | <----> Webserver  <----> Arduino

Edit: Ein solcher Server könnte z.B. der Raspberry Pi sein, da läuft ein "normales" Linux drauf und für wenig Last sollte die Performance auf alle Fälle reichen. Außerdem kann die Kist per USB mit Strom versorgt werden und ist entsprechend sparsam. Mit etwas Geschick kann man sich sogar den Arduino-Ethernet oder das Ethernet-Shield sparen, wenn man Raspberry und Arduino über eine serielle Schnittstelle miteinander reden läßt.
« Last Edit: July 17, 2012, 07:06:44 am by mkl0815 » Logged

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1920
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

dyndns.org ist leider seit einiger zeit nicht mehr kostenlos, wenn Du Dich neu anmeldest. die "alten" kostenlosen konten werden weiter betrieben.

sonst kann ich mich mkl nur anschließen. es gibt zwar einen passwortschutz für den arduino-webserver, aber wie sicher der ist...
der raspberry ist sicher optimal für sowas.

gruß stefan
Logged

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich schätze einmal dass es sich nicht um zeitkritische Aufgaben handelt.
Ein Webserver sollte genügen. Der Arduino ist nur Client. Der Router braucht kein Portforwarding. Für die Sicherheit ist der Server zuständig. Der Client schickt in entsprechend kurzen Intervallen Requests an den Server, und „pollt“ damit auch gleich Informationen vom Webserver.

Wenn Du jetzt etwas steuerst, schickt der Webserver beim nächsten Aufruf vom Arduino die Daten weiter.
Der Arduino übermittelt seine Daten via Parameter bei jedem Request.

Ich denke das ist eine günstige und sichere Lösung.
Logged

Offline Offline
Jr. Member
**
Karma: 2
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du brauchst im prinzip keinen Webserver.
Wenn du dir in VB(.Net) oder einer sonstigen Sprache
einen eigenen Server schreiben kannst, dann ist das alles kein Problem!

Du kannst dir einen Clienten dazu schreiben der einen Handshake vorher an den
Server sendet (Sei es von mir aus ein Passowrt) und dann wenn der
Server den richtigen Handshake hat, hat er auch die Erlaubnis Daten
weiter an Arduino zu senden. Vorher nicht! Sprich: Eine Schnittstelle!

Und wenn du wirklich gut bist, schreibst du dir sogar einen Webserver
der eine Passworteingabe verlangt und dann nach dem gleichen Prinzip arbeitet!

Und was die DNS angeht. Naja ich hab noch von dyndns.org eine kostenlose von damals.
Aber ich kann net glauben, dass es heute keinen einzigen Anbieter mehr gibt, der das
noch kostenlos macht. Muss es doch geben!
« Last Edit: July 17, 2012, 08:53:29 am by MindCode » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was da zwischen Arduino und Internat hängt, ist ja im Prinzip egal. Wie das Kind am Ende heisst auch. Wichtig ist eine zwischengeschaltete Kontrollinstanz, welche für die nötige Sicherheit sorgt. Wie das konkret umgesetzt wird, ist vom Projekt abhängig. Es kann ein Webserver sein z.b. inkl. einer schicken HTML-Steueroberfläche, kann aber auch nur ein einfacher Dienst sein, der als "Durchlauferhitzer" fungiert.

Das es keinen freien dynamich DNS Anbieter mehr geben soll, wundert mich auch ein wenig. Das wäre ja fast mal ein eigenes Projekt wert :-)
Logged

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich bin davon ausgegangen, dass ein Webserver existiert. Eigentlich sollte die Polling-Variante auch bei allen Free-Hostern mit PHP Unterstützung funktionieren. PC braucht dann zu Hause keiner laufen. Und da es nur ein Client ist brauche ich mMn keine Kontrollinstanz.

Wenn es stattdessen ein eigener PC/RaspberryPI werden soll, könnte man obige Free-Hoster mit ein paar Zeilen Code als eigenes DNS Service verwenden. (Natürlich nur wenn man damit nicht gegen die Nutzungsbestimmungen verstößt.)
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
vielen Dank für die zahlreichen Tipps und Hinweise. Ich denke ich werde erstmal den ganzen Spaß als Heimnetzanwendung laufen lassen.
Gibt es einen solchen Server auch gleich inklusive Router, damit ich nicht zwei Boxen stehen habe, worauf müsste ich achten, wenn ich mir ein solches Geschoss zulege?
mfg
Balli
Logged

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du kannst als Server im Prinzip jeden PC nehmen der in deinem Netz hängt, Laufen muss dieser halt immer.
Um den PC als Server verwenden zu können, brauchst Du nur ein Programm, das gibt’s als Freeware. Z.B: EasyPHP (sogar ohne Installation), oder viele andere.
Also für den Anfang musst Du nichts investieren.

Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke, das ist mir sogar klar und habe ich auch schon gemacht, jedoch habe ich keinerlei Erfahrungen mit den Serverboxen und wenn ich mir denn irgendwann eine zulegen sollte, würde ich gerne eine nehmen in der der Router integriert ist, damit ich nicht noch ein Teil mehr rumstehen habe. Wobei mir die Raspberry-Variante auch ganz gut gefällt.
mfg
Balli
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Am Ende ist sowas immer eine Kostenfrage. Zum Einen in der Anschaffung und zum Anderen bei den laufenden Kosten (Strom). Bei beidem liegt der Raspberry super im Rennen, denn für 35 Euro eine Linuxbüchse (wenn auch eine kleine) die kaum Strom braucht ist kaum zu schlagen. Aber auch bei einem eigenen Server sollte man wissen was man macht, wenn man nach außen Dienste exportiert. Alles was von außen erreichbar ist, ist potentiell gefährdet. Also sind hier regelmäßige Updates und eine gute Konfig Pflicht.

@Voralpenkreuz:
Die Variante, das der Arduino aktiv mit einem externen Webserver kommuniziert geht natürlich auch. Allerdings hat man, je nach Auslastung des Arduino und wie oft er Zeit für einen Webrequest hat (plus den Aufwand den man für DNS, timeouts, Fehlertolleranz etc. treiben muss), immer einen zeitlichen Versatz zwischen Befehl auf der Weboberfläche anklicken und der Reaktion des Arduino. Es ging ja darum, den Arduino von außen zu steuern.
Wer einen guten Router hat, kann aber beider kombinieren. Portforwarding von public-IP des Routers nach innen auf den Arduino. Firewall des Routers blockt alle Anfragen auf diesem Port außer von der IP des Webservers. Bei shared Hostern ist das zwar nicht 100%ig, schränkt aber die Zahl der möglichen "Täter" massiv ein :-)
Leider können sowas nicht alle Router, die Fritzbox z.B. nicht (zumindest meine 7270 nicht). Mein Vigor Router könnte das z.B.
 
Logged

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Natürlich ist es für zeitkritische Anwendungen nicht geeignet.
Ich denke jedoch für Anfänger die 1 Sekunde warten können, und sich dafür die ganzen Sicherheits –und Netzwerkfragen ersparen, ist die Variante interessant. Außerdem kann man es auch in einem fremden Netzwerk einsetzen ohne etwas einstellen zu müssen.(DHCP vorausgesetzt)
Um mit einer Pan Tilt Kamera jemanden zu verfolgen ist es viel zu langsam.

Wg. Aufwand für DNS
Verstehe ich nicht ganz. Der Vorteil ist ja dass ich kein DNS-Service benötige.

Logged

Hamburg
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Verstehe ehrlich gesagt die Problematik nicht ganz.
Mein Arduino Ethernet Webserver hängt auch am Internet und ich mache mir keine Sorgen wegen der Sicherheit.

Ich habe dabei 5 "Schutzmechanismen" eingebaut.

1. Nicht Port 80, sondern 9999
2. htaccess Authentifizierung
3. Document Root liefert eine weiße Seite, im Unterordner liegt mein Script versteckt. (z.b. /GzaEdHXd92A33/
4. Variablen zum Steuern der Scripte sind ebenfalls dem Angreifer unbekannt.
5. Jede Seite liefert nen 404 Text smiley-wink
Logged

Pages: [1] 2   Go Up
Jump to: