Hallo zusammen, Ich habe mir in den Kopf gesetzt, dass ich gerne eine Website auf einem raspberrypi bei mir Zuhause selbst hosten möchte.

Sie sollte aus dem Internet (auch von anderen Personen) erreichbar sein, und sowohl einige Daten des raspberrypi anzeigen, als es auch erlauben, bestimmte Aktionen (also shell Skripts) auszuführen (natürlich hinter einem login). Mir ist bewusst, dass ich eine Domain bei einem DNS Provider Mieten muss.

Sicherheitstechnisch klingt die Idee aber durchaus bedenklich. Lade ich auf kurz oder lang Angreifer ein, die sich darüber Zugang verschaffen wollen. Auch diverser Web Crawler und ähnlich bots, die vielleicht etwas aufdringlich sind und mein Heimnetz mit Anfragen überhäufen würde mir als Problem einfallen.

Wie problematisch könnte das ganze also werden, hat vielleicht jemand schon Erfahrungen, oder kann Empfehlungen geben, oder sollte ich das als Laie lieber komplett lassen bleiben?

Ich freue mich über Anregungen aller Art :)

  • juergen@feddit.org
    link
    fedilink
    Deutsch
    arrow-up
    1
    ·
    19 hours ago

    Ich würde sagen, es ist schon bisschen gefährlich:

    • gerade shell scripte sind nicht so easy wirklich sicher zu bauen, besonders für menschen die sich nicht sehr sehr gut damit auskennen. eine andere sprache wäre da sicherer.
    • wenn das nicht absolut trivial ist (gerade wenn es iwelceh input daten gibt), dann seh ich da schon angriffspotential.
    • ich vermute aber eher, dass es unwahrscheinlich ist dass ein hacker sich exakt deine maschine spezifisch anguckt, aber du wirst sehr wohl mit automatisierten angriffen zu tun haben.
    • ein prinzip der IT sicherheit ist defense in depth, d.h. quasi verschiedene schichten die trotzdem noch schützen wenn eine andere schicht kaputt ist. z.B. wenn du in deiner firewall irgendwo etwas falsch gemacht hast und alles von deinem gerät offen ist, dann kann eine ungepatchte sicherheitslücke da für ärger sorgen.
    • und wenn ein hacker sich da einmal eingenistet hat, dann könnte das teil von einem botnet werden und das ist auch nicht so gut. Oder deinen router angreifen, weil z.B. der “nach innen” zumindest das webinterface offen hat und insofern bisschen mehr angreifbar ist als von außen.
    • tendenziell würd ich aber sagen dass ein raspberry pi weniger kritisch ist als ein cloud server, der falsch eingerichtet ist. also weil wenn der gehackt werden würde, dann würden da leute vermutlich mit einem email server spam mails versenden, schätze ich. -> bekommst du ärger.

    würde mich ansonsten @[email protected] anschließen: wenn du sehr sehr gute backup-gewohnheiten hast (z.B. auf einer externen festplatte, die immer durchwechselt, wo du trotzdem noch eine kopie hast selbst wenn dein netzwerk mit cryptotrojanern voll ist) und generell bereit bist dich tiefer mit ordentlicher IT sicherheit zu beschäftigen, dann find ich das okay.

    Persönliches beispiel: ich hab mal vor langer zeit einen server bei openbsd.amsterdam gehabt. Ich war sehr kritisch und es lief nur SSH + eine webseite, login nur per ssh key, per firewall alles andere abgeschaltet. Den openbsd menschen vertrau ich in der hinsicht mehr als z.B. debian, dass die standard installation fürs internet geeignet ist und ich beim einrichten nichts übersehe. Ich hab mich aber auch viel mit deren sicherheitsprinzipien (pledge, unveil, und bspw privilege separation https://sha256.net/privsep.html beschäftigt. vieles davon macht debian nicht so gut.)

    Gruselig finde ich die vorstellung, wenn dein netz gehackt ist und du das nicht merkst und dann dein lokales DNS subtil umgestellt ist und der angreifer auch iwie z.B. zugang zu deinem email bekommt. Sich gegen gute Angreifer zu verteidigen ist schwer, deswegen ist es immer schlau die angriffsfläche zu reduzieren.

  • luzl@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 day ago

    Hey, wie andere schon geschrieben haben ist ein Raspi jetzt nichr allzu kritisch in Sachen Angriffsfläche. Würde mich auch dafür aussprechen das einfach auszuprobieren. Was ich aus eigener Erfahrung noch sagen will: viele Internetanschlüsse haben keine eigene ipv4 Adresse (bzw. Nur mit anderen Leuten geteilt). Also stell dich darauf ein, dass es vermutlich nur via ipv6 erreichbar ist. Nicht aus jedem Netz kann man v6 Adressen bereits erreichen, vorallem vieöe VPN Anbieter sind noch v4 only - solche User konmen also eventuell nicht auf deinen Raspi.

  • AverageAlman@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    1 day ago

    Muss der denn bei dir Zuhause stehen? Du kannst dir bei diversen Anbietern einen Server für 5€ mieten.

    Klar bist du dann nicht so autark unterwegs, kannst dich aber schonmal mit allem vertraut machen ohne gleich ein Risiko für dein Netzwerk einzugehen. Und wenn du dann irgendwann doch keine Lust mehr auf die Cloud hast, kannst du deine Konfigurationen ja immer noch auf einen pi kopieren.

  • kossa@feddit.org
    link
    fedilink
    Deutsch
    arrow-up
    9
    ·
    edit-2
    2 days ago

    Geil. Mach einfach. Probier rum! Lass dir nicht sagen, du musst 100% wissen, was du tust, das musst du nicht!

    Wo sollen denn sonst die Menschen herkommen, die an einem wieder dezentraleren Internet arbeiten, die sich auskennen? Irgendwelche Firmen hängen ihre Datenbanken frei ins Internet, das ist das Werk von “Profis”. Da ist es auch nicht schlimm, wenn von einem Haushalt das Heimnetzwerk übernommen wird, wenn dadurch jemand etwas lernt.

    Was dir bewusst sein muss, sind die Risiken: im Zweifel übernimmt jemand dein ganzes Netzwerk. Wenn du alleine bist: okay, dann musste halt alle Geräte plattmachen (alles ist potentiell kompromittiert). Ist Arbeit, danach bist du schlauer und kannst weiter rumprobieren. Wenn andere Menschen in deinem Haushalt an dem Netzwerk hängen: sag ihnen mindestens vorher, dass das bevorstehen könnte. Haben diese Menschen oder Du sensible Daten auf ihren Geräten? Backups! Offline! Und dann ran an den Speck, als ich das erste Mal eine Website von nem Computer zuhause aufrufen konnte, war ich mächtig stolz, geiles Gefühl. Seitdem habe ich over 9000 mal alles neu aufgesetzt, aber jetzt betreibe ich ein Homelab mit richtig vielen Diensten und alle Menschen, die es nutzen sind glücklich und zufrieden, ich habe richtig viel über Netzwerksicherheit etc. gelernt, alles supi.

    Edit: davon abgesehen: ein random Raspi, auf dem ein Webserver läuft…der hat jetzt auch echt nicht so viel Angriffsoberfläche. Für den Anfang stelle v.a. sicher, dass nur Ports 80 und 443 am Raspi erreichbar sind und dann ist das jetzt auch nicht crazy unsicher oder so ¯\_(ツ)_/¯

  • WhereAngelsFearToFly@feddit.org
    link
    fedilink
    Deutsch
    arrow-up
    11
    ·
    edit-2
    3 days ago

    Wenn du dir nicht 100%ig sicher bist, wie man einen Linux-Server und das Netzwerk absichert, würde ich dir davon abraten.

    Ich würde dann die Website extern hosten und mit dem RasPi die Daten regelmäßig hochladen lassen, und die Website kann sie dann verteilen. Kommt natürlich darauf an, was du genau vorhast. Die Sache mit den Shell-Skripts würde ich (vielleicht) ähnlich lösen. Der RasPi kann sich ja die Anweisungen von externen Website holen und dann ausführen. Vielleicht verbunden mit einer Art Queue-System. Aber auch hier würde ich keine freien Shell-Anweisungen erlauben, sondern nur das Triggern von vordefinierten Skripten, die auf dem RasPi liegen.

    Aber die ganze Welt zu dir ins Heimnetz zu lassen ist kein zu unterschätzender Task in puncto Sicherheit und Administrationsaufwand.

    • Petenkoffer@feddit.orgOP
      link
      fedilink
      arrow-up
      3
      ·
      2 days ago

      Danke dir (und natürlich allen anderen denen ich nicht einzeln antworte). Ich werde mich dann wohl an den Rat und mein Gefühl halten, dass das ganze doch etwas über meiner Gehaltsklasse gewesen wäre. Interessant ist, dass es aktuell mehr oder weniger bereits so aufgebaut ist (als discord bot, von dem ich mich trennen möchte), auf die Idee, das Prinzip beizubehalten bin ich aber nicht selbst gekommen.

  • dwt@feddit.org
    link
    fedilink
    Deutsch
    arrow-up
    2
    ·
    2 days ago

    Du sagst, du möchtest mit Shell Scripten in deiner Webseite arbeiten. Das mag ein Sprachfehler sein, wäre so aber wirklich eine schlechte Idee und deutet noch mehr darauf hin das du dich nicht genug auskennst um abzuschätzen wann etwas unsicher ist.

    Grundsätzlich geht so etwas natürlich, DynDNS, LetsEncrypt und BasicAuth kann gut genug sein. Muss man aber auch erst mal einrichten.

    • Petenkoffer@feddit.orgOP
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Gemeint habe ich .sh Datein, mit der Terminologie kenne ich mich tatsächlich nicht aus. Selbstverständlich soll es nicht möglich sein eigene Befehle auszuführen, sondern lediglich vorgefertigte Skript zu aktivieren, die dann beispielsweise ein Programm auf dem raspberrypi starten.

      • dwt@feddit.org
        link
        fedilink
        Deutsch
        arrow-up
        1
        ·
        1 day ago

        Ich würde dir von Shell Skripten abraten. Der Mechanismus basiert auf datenübergabe durch umgebungsvariablen und ist einer der am schwersten sicher zu kriegenden.

        Lern lieber etwas Python und mach es mit flask, da findest du viel mehr gute Beispiele.

        • dwt@feddit.org
          link
          fedilink
          Deutsch
          arrow-up
          1
          ·
          1 day ago

          Insbesondere für solche ersten Experimente sollte der Server dann aber nichts sonst tun und vom Rest des Netzes isoliert sein, damit du dir nicht so die Finger verbrennst, wenn es mit Sicherheit schief geht.

          Alternativ: eine virtuelle Maschine bei hetzen kostet 1-2 € pro Monat ind da klemmt hetzner dir im Zweifel die Maschine ab wenn jemand anfängt da massiv Spam drüber zu versenden.

  • macniel@feddit.org
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    3 days ago

    Mhm eigentlich bräuchtest du keine Domain bei einem Registrar registrieren wenn dir eine IP reiche.

    Wenn du aber eine Internetadresse haben willst, brauchst ist ein dyndns service der auf einem router läuft der dann, sobald dein Netzwerk mit dem Internet verbunden ist, die IP in dem DNS Eintrag anpassen kann und dein Netzwerk hinter einer statischen Domäne erreichbar ist. (fritz!os unterstützt das von zu hause aus)

    Du müsstest dann dein Netzwerk absichern, sodass nur deine Beere erreichbar ist, das machste via Portforwarding. Also das ist erst mal rudimentär, mehr kenn ich mich da nicht aus.


    ich selbst habe auf meiner Firtz!Box ein Wireguard eingerichtet, sodass ich via VPN Tunnel von überall auf mein Heimnetzwerk, und damit auf mein Jellyfin Streaming Server, zugreifen kann :)

    • aaaaaaaaargh@feddit.org
      link
      fedilink
      arrow-up
      3
      ·
      2 days ago

      Kleine Ergänzung: mit IPV6 braucht es kein dynamisches DNS mehr, da die Adressen statisch sind. Allerdings ist der Dienst dann eben auch nur über V6 erreichbar.

  • Smash@lemmy.self-hosted.site
    link
    fedilink
    arrow-up
    3
    ·
    3 days ago

    Pack den RPI am besten in ein eigenes Netzwerk (DMZ). Die Sicherheit hängt dann maßgeblich von deinem Webfrontend ab, du solltest eine sichere Authentisierung nutzen (etwa mit MFA oder Zertifikat). Ansonsten noch das übliche, immer sofort die neusten updates installieren und hardening wie strike firewall Regeln, geo restriction und fail2ban nutzen.

  • aaaaaaaaargh@feddit.org
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    Ich würde das so machen, dass meine Seite irgendwo im Netz steht und der Raspi von dieser bei Bedarf Anfragen verarbeitet und Daten zurückgibt. So hast du zwei Fliegen mit einer Klappe geschlagen. Zum einen hast du Anwendungs- und Datenschicht schön voneinander getrennt, zum anderen schaffst du dir dadurch die Möglichkeit, Anfragen bei zu hohem oder schadhaftem Aufkommen zu filtern.