Externer Zugriff auf Frontend

Begonnen von MarkoP, 27 Januar 2020, 11:58:44

Vorheriges Thema - Nächstes Thema

hexenmeister

Man muss nicht allzusehr tief eintauchen, um eine einfache nginx Installation herzurichten. Im einfachsten Fall nimmt man ein fertiges Docker-Container.
Man müsste 'nur':
- docker installieren
- docker-compose installieren
- optional Porttainer (natürlich auch im Container) starten, ab dann hätte man GUI für die Container-Verwaltung
- Image von linuxserver/letsencrypt nehmen (ist nicht ganz nach Docker-Art, da gleich mehreres drin, aber recht einfach einzurichten)

version: "2"
services:
  letsencrypt:
    image: linuxserver/letsencrypt
    container_name: letsencrypt
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - URL=<eigene URL>
      - SUBDOMAINS= #www,
      - VALIDATION=http
      - DNSPLUGIN=cloudflare #optional
      - DUCKDNSTOKEN=<token> #optional
      - EMAIL=letsencrypt@s6z.de #optional
      - DHLEVEL=2048 #optional, (default=2048, can be set to 1024 or 4096)
      - ONLY_SUBDOMAINS=false #optional
      #- EXTRA_DOMAINS= #<extradomains> #optional
      - STAGING=false #optional
    volumes:
      - ./data/config:/config
    ports:
      - 443:443
      - 80:80   # for redirect to 443
    restart: unless-stopped

Konfiguration ist hier beschrieben: https://github.com/linuxserver/docker-letsencrypt/blob/master/README.md
Man müsste noch einmalig .htpasswd, letsencrypt einstellen und für FHEM Proxy-Konfig hintelegen (es gibt bereits fertige Beispiele für diverse Software, für FHEM leider nicht, kann man aber analog aufbauen).
Nach einer Stunden einmaligen Aufwand hat man ein relativ gut abgesichertes System. Nimmt man noch Image von containrrr/watchtower dazu, dann wird das auch noch automatisch aktualisiert. Man macht sich natürlich ein Stück weit von dem Mainternern der Docker-Container abhängig.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Wernieman

Warum nimmst Du für letencrypt den Container von linuxserver anstatt den "offiziellen" von certbot?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MarkoP

Wow, ehrlich gesagt mir schwirrt gerade der Kopf und ich komme mir vor wie ein Chinese auf dem Schweizer Wochenmarkt.

Klar sollte man nichts ungeschützt ins Netz stellen, doch ist das alles wirklich so nötig. Mag sein das ich vielleicht noch etwas naiv bin, aber ich habe da noch das Vertrauen in die Welt, dass da weniger passiert als immer prophezeit wird. Und ich habe ja keine hochsensiblen Geheimdaten auf den Geräten.
Man kann es ja auch so sehen, je besser man etwas schützt, desto intensiver wird man zur Zielscheibe, da etwas wichtiges dahinter vermutet wird. Ich habe bisher grundsätzlich alle Portnummern und Standardzugänge (wie zb. admin etc.) geändert. Das hat bisher vollkommen ausgereicht.

Werde mir aber mal alles in Ruhe anschauen und zu den Begrifflichkeiten recherchieren. Aber bisher denke ich reicht eine zweite Fhemweb-Instanz, die geschützt ist, vollkommen aus. Melde mich wenn ich alles recherchiert und verstanden habe, was gewiss einiges an Zeit dauern kann, da ich Anfänger bin.

Für weitere Informationen zu dem Thema bin ich aber grundsätzlich offen und immer interessiert. Schließlich kann man nie genug Wissen und Lernen.  ;)
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

MarkoP

Wow, ehrlich gesagt mir schwirrt gerade der Kopf und ich komme mir vor wie ein Chinese auf dem Schweizer Wochenmarkt.

Klar sollte man nichts ungeschützt ins Netz stellen, doch ist das alles wirklich so nötig. Mag sein das ich vielleicht noch etwas naiv bin, aber ich habe da noch das Vertrauen in die Welt, dass da weniger passiert als immer prophezeit wird. Und ich habe ja keine hochsensiblen Geheimdaten auf den Geräten.
Man kann es ja auch so sehen, je besser man etwas schützt, desto intensiver wird man zur Zielscheibe, da etwas wichtiges dahinter vermutet wird. Ich habe bisher grundsätzlich alle Portnummern und Standardzugänge (wie zb. admin etc.) geändert. Das hat bisher vollkommen ausgereicht.

Werde mir aber mal alles in Ruhe anschauen und zu den Begrifflichkeiten recherchieren. Aber bisher denke ich reicht eine zweite Fhemweb-Instanz, die geschützt ist, vollkommen aus. Melde mich wenn ich alles recherchiert und verstanden habe, was gewiss einiges an Zeit dauern kann, da ich Anfänger bin.

Für weitere Informationen zu dem Thema bin ich aber grundsätzlich offen und immer interessiert. Schließlich kann man nie genug Wissen und Lernen.  ;)

P.S.
Zitat
... der Portnummer muss bei den unterschiedlichen FHEMWEB Instanzen unterschiedlich sein, global bitte auch nicht vergessen, ...
Wie müsste ich da vorgehen? Ich kann im Docker-Container lediglich diverse Portweiterleitungen angeben, aber habe soweit ich weiß keine Möglichkeit diese einer bestimmten Fhemweb-Instanz zuzuordnen. Oder muss das innerhalb des Fhem-Servers geschehen, so dass dieser einfach auf mehreren Ports "lauscht"?
Was genau meinst du mit "global auch nicht vergessen"?
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Wernieman

Meines Wissens sind aktuell 4 Milliarden Menschen Online. Im schlechtesten Falle hast Du also 4Milliarden "Gegner" ...

Es geht übrigens nicht um "geheime Daten" auf den Geräten. Solche Geräte (sind 24*7 online) werden gerne benutzt, um weitere Geräte anzugreifen. In deren Logfiles steht dann nicht die IP-Adresse vom Angreifer, sondern von Dir! Willst Du "netten Besuch" bekommen?

Kenne übrigens einen Fall, wo genau so etwas passiert ist ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CoolTux

Das ist leider das was die wenigsten Verstehen. Mir persönlich geht es nicht darum das andere ihre eigene Umgebung für Hacker frei geben, das ist mir egal. Mir geht es darum das ich dann von diesen gehakten Umgebungen angegriffen werde. Und da werde ich Grantig.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Nur mal als vergleichendes Beispiel:
Wenn ich einen Wagen Stehenlassen mit steckendem Zündschlüssel und "ein Kind" klaut den Wagen, baut einen Unfall ..... dann bin ich mitschuldig.

Vielleicht wird es dann verstanden ...

(Sorry das ich gleich ein heftiges Beispiel nehme, aber manchmal muß man Plakativ sein .... leider ...)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

hexenmeister

Zitat von: Wernieman am 30 Januar 2020, 08:18:56
Warum nimmst Du für letencrypt den Container von linuxserver anstatt den "offiziellen" von certbot?
Faulheit ;D
Dieser ist so schön vorkonfiguriert. Rundum sorglos Paket.
Irgendwann baue ich das um, aber vorher muss ich mich tiefer in die Materie einlesen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Wernieman

Sag bhescheid ... habe es hier (in der Firma) laufen, allerdings mit dns-Zertifizierung
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html