Hallo,
als AVR-Freak und stiller Mitlesen dieses Forums jetzt mal ein Beitrag
von mir über ein Problem mit IPV6 an einem AVR-Webserver und deren
Lösung.
IPV4 Stirbt langsam aus, es lebe IPV6 !!!
zum Problem:
Letzte Woche bekam ich einen neuen Internet Anschluss. Beim einrichten
des Routers bemerkte ich, das man mir einen vollwertigen IPV6 Anschuss
verkauft hat, mit einem DS-Lite-Tunnel der mich zwar immer noch via IPV4
ins Netz lässt, vom Netz aus in mein LAN via IPV4 geht jetzt nicht mehr.
Da ich in meinem LAN mehrer AVR-Webserver für Steuerung, Logging - und
Überwachungs Aufgaben betreibe, konnte ich von heute auf morgen nicht
mehr auf diese von außen zugreifen. Der AVR-Webserver unterstützt noch
kein IPV6. Damit ich wieder auf diese zugreifen kann suchte ich nach
einer schnellen Lösung.
Die Lösung:
Bei mir werkelt neben den AVR’s noch ein RASPBERRY PI (RPI) als
Linux-Server im LAN, der mir das von außen ankommenden IPV6 Paket in
IPV4 Pakete umwandet und dieses dann an dem AVR-Webserver weiterleitet.
Das funktioniert sehr gut.
Beispiel:
Ich nutze einen Web-Browser irgendwo im WWW oder Mobil und spreche den
RPI via IPV6 mit seiner Globalen IPV6 Adresse über Port 8092 an. SOCAT
lauscht auf Port 8092 und macht aus dem Ankommenden IPV6 Paket ein IPV4
Paket und leitet es weiter zum AVR-Webserver an 192.168.1.92:80. Der RPI
dient hier als IP-Relay.
Der Linux befehl:
Die Gegenstelle:
IPV6 funktioniert bei den meisten Mobilfunkprovidern noch nicht. Hier
kann man sich z.B. unter Androrid das APP "Androiccu" Installieren, ein
IPV6
Tunnel, damit man wieder auf seinen reinen IPV6 Anschuss zugreifen kann.
Nach dieser kleinen Erweiteung ist alles wieder wie bei meinen alten
reinen IPV4 anschluss und so als ob nie was gewesen ist.
Einzige sache die etwas gewohnheit erfordert sind die neunen IPV6
Adressen. Da könnte der DDNS dienst "freedns.afraid.org" weiterhelfen.
Hoffe es hilft hier jemanden weiter über Feedback würde ich mich freuen
!!!
Solange du nur HTTP machen willst, kannst du auch einen Proxy auf
einem IPv6-Host einrichten, der dann intern auf IPv4-Ziele zugreifen
kann. Musst du natürlich irgendwo gegen Missbrauch durch Fremde
sichern, aber das müsstest du ohnehin. (Insbesondere solltest du
sicherstellen, dass er keine Anfragen aus dem Internet wieder ins
Internet relayt, nicht dass sich irgendwelche Schwarzgeldwäscher
oder dergleichen darüber deiner Identität bedienen.)
Martin P....... schrieb:> hast du ethersex schon gesehen?
Ja, da geht wohl IPv6 bzw. Dual-Stack. Meine AVR-Web's fahren mit einer
der ersten Version vom Ullich Radig's Webserver den ich nach meinen
bedürfnissen umgebaut habe. Mein ganzes Projekt jetzt auf Ethersex
umzubauen wäre mir zu aufwendig. Ich dachte aber schonmal daran den
Ethersex Dualstack in meinen modefizierten UR-Webserver einzubauen. Ich
glaube aber das IPv6 wegen der IPv4 knappheit immer mehr zum Theam wird,
das es auch kurz oder lang ein Dual-Stack für den UR-Webserver gibt.
Jörg Wunsch.......schrieb:
> Proxy auf einem IPv6-Host einrichten....
OK, an einem Proxy hab ich erstmal nicht gedacht... Das könnte Intern
eine Linux Kiste übernehmen, wenn ich den als Proxy einrichte. Wenn ich
mich jetzt einen Proxy Host irgendwo Online bediene, wie soll dieser
dann via IPv4 auf mein Internes Netz zugreifen ?? Wenn mein
Internetanschluß von Aussen nur noch IPv6 kann ???
Nochmal zu der Problematik. Mein Provider (UM) hat mir einen reinen IPv6
Anschuss verpasst, der über einen Tunnel auch IPv4 macht. Ich kann damit
wie gewohnt vom LAN ins WWW in IPv4 und IPv6 nutzen. IPv6 geht direkt,
IPv4 über Tunnel der nur ein Richtung kennt.
Möchte ich vom WWW auf mein LAN geht das nur noch mit IPv6.
Also kann man diese Umsetztung von IPv6 nach IPv4 nur noch bei mir im
LAN machen.
Oder hab ich jetzt irgendwo einen Denkfehler ????
snkrde schrieb:> Wenn ich> mich jetzt einen Proxy Host irgendwo Online bediene, wie soll dieser> dann via IPv4 auf mein Internes Netz zugreifen ?? Wenn mein> Internetanschluß von Aussen nur noch IPv6 kann ???
Wenn du von außen auf den Proxy zugreifen kannst, kann es auch
jemand anders. Klar, nur über IPv6, aber das schränkt ja den Kreis
potenzieller Angreifer nun nicht gerade auf 0 ein. ;-) (Auch ich
poste gerade via IPv6 ...)
> Also kann man diese Umsetztung von IPv6 nach IPv4 nur noch bei mir im> LAN machen.
Ja.
Ralph schrieb:> Je nachdem was für einen Router du hast....
Der Router leitet die IP Pakete nur weiter ! Umwandel von 4nach6 oder
6nach4 macht der nicht.
Das einige was ich noch gefunden habe war ein openWRT Router der genau
das macht was ich in meinen ersten Beitag beschrieben habe. Meine
Cable-Fritte kann das (noch) nicht, dann wäre es einfach gewesen und
mein AVR-Web braucht kein Dual-Stack.
Jörg Wunsch schrieb:> Musst du natürlich irgendwo gegen Missbrauch durch Fremde> sichern, aber das müsstest du ohnehin.....
Klar, mit einem Samba Fileserver würde ich das unter gar keinen
umständen machen. Dashalb auch ein RPI als separater Web-Server für
Experimentier zwecke.
>Auch ich poste gerade via IPv6 ...
Wie ich gerade im 'sixornot' FF plugin sehe, ist das hier im Forum auch
schon möglich. Toll, noch eine IPv6 fähige Seite. :-)
Patrick Dohmen schrieb:> Jörg Wunsch schrieb:>> (Auch ich poste gerade via IPv6 ...)>> Sieht aber nicht danach aus... :-)
Ja, aus irgendeinem Grund war meine Brause an diesem Tag wohl der
Meinung, IPv4 vorziehen zu müssen. Das verstehe, wer will ...
Ah, ich habe mir vor ein paar Tagen einen neuen Feuerfuchs installiert,
der scheint mal wieder alles ganz anders zu machen. :-/
Hallo,
diese Baustelle ist zwar schon etwas älter aber wohl immer noch aktuell.
Ich habe nun auch das Problem wegen WAN IPv6 und LAN IPv4.
Wie macht man das mit socat wenn auf der IPv4 Seite (LAN) mehrere
Teilnehmer sind die man von "außen" erreichen will?
Geht das wenn man socat nach dem Muster:
Testen Sie unsere Portmapper jetzt 50 Tage kostenlos und unverbindlich !
Weil ich aber schon einen Raspberry Pi rund um die Uhr laufen habe wäre
mir die lokale Lösung mit socat lieber als einen externen Dienst zu
bemühen.
Wie der TO schreibt das mit socat ja grundsätzlich lokal machbar.
Meine Frage war nur geht es mittels socat auch zu mehreren IPv4 Geräten
im lokalen Netz. Und wenn ja, wie.
Heinz schrieb:> Wie macht man das mit socat wenn auf der IPv4 Seite (LAN) mehrere> Teilnehmer sind die man von "außen" erreichen will?>> Geht das wenn man socat nach dem Muster:>
c-hater schrieb:> Was hindert dich daran, es einfach auszuprobieren?
Eigentlich nur die investierte Zeit in den Versuch und meine arg
mangelhaften Linux Kenntnisse.
Wenn mir jemand sagt: "Nein, das geht nicht weil ..."
Könnte ich mir eine Menge Trial and Error ersparen und die Zeit für die
Suche nach Alternativen nutzen.
Wenn mir jemand sagt: "Ja, das geht aber pass hier ... und hier... auf."
Würde ich den Versuch angehen.
Heinz schrieb:
[...]
> Wenn mir jemand sagt: "Ja, das geht aber pass hier ... und hier... auf."> Würde ich den Versuch angehen.
Ja, sollte gehen.
Wenn du aber dein Netz nach draußen aufmachst, dann solltest du auch auf
Authentifizierung etc. achten. Und SSL/TLS kann auch nicht schaden. Und
wenn man eh einen Proxy fährt, dann kann man diesen auch gleiche diese
Aufgaben erledigen lassen -> sieh dir evtl. auch mal stunnel an, damit
kannst du auf ähnliche Weise einen Tunnel mit SSL/TLS aufmachen und auch
das Client-Zertifikat zwecks Authentifizierung prüfen lassen. Das
reduziert dann die Last für den µC.
Danke @Ralf für die Erklärungen.
"socat" bekäme ich wahrscheinlich auf dem RASPBERRY PI noch installiert
und zum laufen.
Aber bei SSL/TLS, Client-Zertifikat, Authentifizierung usw. bin ich mit
meinem Latein am Ende. Das wäre dann eine Lebensaufgabe für mich.
Wie sieht es denn aus wenn ich darauf verzichte, denn die
Netzwerkteilnehmer die ich nach außen sichtbar machen will sind nur
Arduinos und ESP8266. Ich will über diesen Weg keine PCs aus dem Lokalen
Netzwerk erreichbar machen.
Bestünde den für das gesamte lokale Netzwerk ein Sicherheitsrisiko wenn
ich auf eine Absicherung verzichte?
Heinz schrieb:> Bestünde den für das gesamte lokale Netzwerk ein Sicherheitsrisiko wenn> ich auf eine Absicherung verzichte?
rein theoretisch schon - wenn es jemand schafft auf ein von aussen
erreichbares Gerät durch eine Lücke in dessen Software eine andere
Software zu laden. Was man für den Arduino wohl ausschließen kann, ist
beim ESP mit seinem ClosedSource Core noch eher denkbar.
Die Frage ist letztlich ob sich einer die Mühe macht gerade bei Dir
einen Angriff zu starten.
Das Risiko muss jeder selbst abschätzen.
Sascha
Sascha W. schrieb:> Die Frage ist letztlich ob sich einer die Mühe macht> gerade bei Dir einen Angriff zu starten.
Oder ob einer der üblichen Breitbandangriffe, die ständig durchs Netz
gehen, bei dir funktioniert.
Sascha W. schrieb:> rein theoretisch schon - wenn es jemand schafft auf ein von aussen> erreichbares Gerät durch eine Lücke in dessen Software eine andere> Software zu laden. Was man für den Arduino wohl ausschließen kann
Ach watt. Selbst wenn man das mal auf Arduinos beschränkt, die auf AVR8
laufen (und damit fett von der Tatsache profitieren will, dass der Code
"unveränderlich" ist, weil im Flash), stimmt das schlicht nicht.
Denn Flash ist auch änderbar und das Werkzeug dafür steckt sogar in fast
jedem Arduino in Form des weitgehend standardisierten Bootloaders
bereits drinne. D.h.: der Angreifer muss also bloß noch einen Weg
finden, den vorhandenen Code des Bootloader für den Zweck seines
Angriffs nutzbar zu machen und kann dann dauerhaft den eigenen Code im
Zielsystem ablegen.
Die Vorstufe dieses Angriffs wäre allerdings, erstmal die Lage der
vorhandenen und für so einen zielgerichteten Angriff benötigten
Codeteile (Bootloader und Netzwerkstack) herauszubekommen. Das ist
allerdings viel einfacher, als DAU zu glauben vermag. Denn die
Quasi-Standardisierung des Arduino-Krams und die Copy&Paste-Mentalität
der meisten Benutzer dieses Zeugs hilft auch hierbei enorm. Darüber
hinaus natürlich auch die Tatsache, dass der Programmspeicher selber mit
maximal 128kWords recht klein ist.
Das zusammen schränkt einfach den Suchraum für die anfänglich naturgemäß
blinden Angriffe so stark ein, dass ein "brute force"-Angriff auf eine
bekannte Sicherheitslücke mit unbekannter Adresse auf dem Ziel absolut
praktikabel wird.
Sprich: alles, was man braucht, um einen Arduino komplett zu übernehmen,
ist EINE EINZIGE ausnutzbare Lücke in einer Netzwerk-Anwendung oder im
Netzwerkstack selber. Die muss nur irgendwie zulassen, ein paar Bytes
auf den Stack zu schreiben, so dass irgendwann ein "ret" oder "reti" den
so adressierten vorhandenen Code zur falschen Zeit zur Ausführung
bringt. Der dann natürlich so gewählt ist, dass er dem Angreifer weiter
hilft...
Sobald so eine Lücke erstmal gefunden ist, ist der Rest ziemlich
einfach. Jedenfalls für erfahrene Asm-Programmierer. Für die ist es auch
relativ einfach, nach solchen Lücken zu suchen. Man kompiliert einfach
die Vorlagen der Arduino-Jünger und zieht sich das Listfile rein. Ist
echt keine große Kunst, sondern reine Fleißarbeit...
Weil das alles so ist, wie es ist, bin ich persönlich dafür, dass
gesetzliche Regelungen verhindern sollte, dass jeder DAU irgendwas in's
Internet stellen darf, dessen Risiko, am Ende auch ANDEREN zu schaden
er nicht annähernd einschätzen kann.
D.h.: Im Endeffekt müsste de facto IoT verboten werden, jedenfalls in
der regulierungsfreien Form, die der Scheiss heute hat. Denn die
kommerziellen Anbieter dieses Mülls sind ja weit überwiegend kaum besser
als der generische Arduino-User. Auch da wird genauso lustig
C&P-"programmiert" und die Resourcen (und damit der Suchraum) sind immer
eher klein...
c-hater schrieb:> Weil das alles so ist, wie es ist, bin ich persönlich dafür, dass> gesetzliche Regelungen verhindern sollte, dass jeder DAU irgendwas in's> Internet stellen darf, dessen Risiko, am Ende auch ANDEREN zu schaden> er nicht annähernd einschätzen kann.
Du verbietest damit Privatpersonen, das Internet zu benutzen und zu
recherchieren und darüber zu berichten. Wenn ich rausfinde, dass mein
Chef in der Firma das Geld veruntreut, dann kann ich den Schaden für die
Sekretärin oder dessen Kind nicht abschätzen, und damit wäre es mir
verboten, die Sache aufzudecken.
Dein Vorschlag zeugt von tiefgreifender, gründlicher Überlegung aller
Konsequenzen. Gratuliere.
Übrigens: Große Unternehmen können das Schadensrisiko eines im Internet
verfügbaren Servers auch nicht besser einschätzen als kompetente
Privatpersonen. Schließlich benutzen auch die nur verfügbare
Technologien (höre ich da jemanden "Linux", "Windows", "Intel" oder
"ARM" sagen?), und statt einer Risikoabschätzung über das Kundenwohl
machen die eine Risikoabschätzung über das Unternehmenswohl. Daraus
ergibt sich, ob ein Risiko nun tragbar ist oder nicht.
Du trägst mit deinem Vorschlag nur Geld in die Taschen der Anwälte, die
solche Klagen, natürlich mit absurden Streitwerten, vertreten müssen.
Gratuliere, dein Vorschlag zeugt tatsächlich von tiefgreifender,
gründlicher Überlegung aller Konsequenzen. Und ich bin mir sicher, du
konntest den möglichen Schaden aller Personen auf dieser Welt ebenfalls
nicht abschätzen, hättest deinen Post also nie absenden dürfen. Klasse.
S. R. schrieb:> Du verbietest damit Privatpersonen, das Internet zu benutzen
Nein, natürlich nicht, wie kommst du auf diese schräge Idee? Es steht ja
schließlich auch jeder Privatperson frei, sich die nötigen Kompetenzen
anzueignen. Das sind höchstens ein paar Mannmonate Lernaufwand. Wenn man
was wirklich Wichtiges öffentlich zu verbreiten hat und auch das nötige
Sendungsbewußtsein, sollte dieser Zeitaufwand kein unlösbares Problem
darstellen...
In aller Regel dürfte es sich aber bei Privatpersonen auch um eine rein
private Hochzeit handeln. Und dann sollte es auch genauso abgehandelt
werden: über ein VPN.
All dieser Scheiß hat einfach nix im öffentlichen Internet zu suchen.
c-hater schrieb:> Das sind höchstens ein paar Mannmonate Lernaufwand.
Und ein paar Jahrzehnte Anwaltskosten, wenn irgendjemand den Aufwand
unterschätzt. Du vergisst, dass wir hier Rechtsstaat mit Bürokratie
haben.
Davon abgesehen, ein paar "Mannmonate Lernaufwand" für Internetbenutzung
kommt einem Verbot gleich. Es scheitern ja schon genug am normalen
Führerschein, und da ist die Theorie schon vereinfacht.
Wenn ich die umfangreichen Erläuterungen richtig zusammenfasse gehe ich
davon aus dass ich mit socat auf einem Raspberry als Mittler zwischen
IPv4 und IPv6 kein höheres Risiko eingehe als mit einer IPv4
Portfreigabe für einen Arduino oder ESP im Router.
Auch der Raspberry würde mit socat nicht angreifbarer als ohne.
Ist das im Prinzip so?
Wenn du einen Port auf dem Raspberry freigibst, dann machst du dadurch
den Raspberry angreifbar. Genauso, wenn du einen Port auf dem Arduino
oder ESP freigibst, machst du den Arduino oder ESP angreifbar. In beiden
Fällen kann ein erfolgreicher Angreifer damit Zugriff auf dein
Heimnetzwerk erlangen.
Ich schätze das Risiko in beiden Fällen als "eher gering" ein.