Apache oder FHEMWEB?

Begonnen von FunkOdyssey, 28 Oktober 2016, 18:04:11

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Ich bin testweise schon einmal mit einem FHEMWEB-Port/Instanz auf Apache "umgestiegen" bzw. nutze dafür den Apache inkl. SSL als Reverse Proxy.

Bevor ich weitermache wollte ich mir ein paar Gedanken über die richtige Vorgehensweise machen:
- Ports oder Directories
- Welche Art der Authentifizierung?
- etc.

Aber was mich hier nun vielmehr interessiert: Wie sicher ist das Ganze?

Ist ein Apache vom Laien konfiguriert wirklich sicherer als eine reine FHEMWEB-Instanz?

Wenn ich wirklich beim Apachen bleiben sollte, würde ich mir auch folgende Quelle genauer zur Brust nehmen: http://www.petefreitag.com/item/505.cfm




Aktuell habe ich
- einen Port für normalen Webzugriff inkl. Portweiterleitung im Router (Anmeldung notwendig)
- einen Port für den Webhook bzw. die Geo-Lokalisierung (Anmeldung notwendig)
- einen Port, der nur für den internen IP-Kreis nutzbar ist, um FHEM daheim ohne Anmeldung nutzen zu können.

Alles in allem keine schöne Lösung. Aber auch mit Apache2 würde es nicht großartig anders aussehen.

Danke für eure Meinung.

rudolfkoenig

ZitatIst ein Apache vom Laien konfiguriert wirklich sicherer als eine reine FHEMWEB-Instanz?

Ich hoffe nicht, wer andere Infos hat, soll sich melden :)
Apache kann aber zusaetzlich auch "client-side certificates", siehe https://gist.github.com/gbirke/8608543

FunkOdyssey

Ehrlich gesagt will ich nur zum Reverse Proxy, da (bei mir) FHEMWEB nicht mit HTTPS funktioniert. Dazu gibt es ja bereits einen Thread, aber leider kann ich dich bei der Fehlersuche nicht unterstützen.

Ich habe das Gefühl, dass ein eigener Apache2 ein bißchen oversized ist. Ich habe Bauchschmerzen, das Authentifizierungsverfahren auszulagern. Nu ja. Ich lese mich mal schlau.

rudolfkoenig

Ein RPi sollte Apache noch laufen lassen koennen, ohne merkbare Nachteile, ich betreibe mein FHEM seit 10 Jahren so.
Lieber mit Apache und HTTPS als nur HTTP, HTTP ist einfach abzuhoeren, und FHEM kann kaum was dagegen tun.

abc2006

evtl ist auf dem Raspi dann der lighttpd interessant...

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

klausw

Apache läuft bei mir auf dem PI1 ohne Probleme.
Bei den paar Clients die es bedienen muss ist es auch nicht langsamer als beispielsweise nginx
Zusätzlich habe ich noch fail2ban installiert um die Sicherheit etwas zu erhöhen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

JoeALLb

Wirklich lightweigt und sehr elegant ist nginx!
Würde ich unbedingt ansehen, kann alles was du brauchst! Du kannst damit auch alles über einen einzigen port laufen lassen!!
(mache ich so)
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DocCyber

Zitat von: FunkOdyssey am 28 Oktober 2016, 18:04:11
Aktuell habe ich
- einen Port für normalen Webzugriff inkl. Portweiterleitung im Router (Anmeldung notwendig)
- einen Port für den Webhook bzw. die Geo-Lokalisierung (Anmeldung notwendig)
- einen Port, der nur für den internen IP-Kreis nutzbar ist, um FHEM daheim ohne Anmeldung nutzen zu können.

Ich bin auch an dieser Thematik interessiert, besonders auch das fett markierte Thema.
Außerdem würde ich gern einzelne UI-Websites (ich verwende FTUI) davon auschließen wollen, von jedermann im Haus (z.B. meine Kinder) benutzt zu werden.

Leider kenne ich mich in diesem Komplex nicht wirklich aus, also FHEM auf Apache zu instllieren. Hast du Erfahrungen, wo ich informieren kann; am besten  FHEM-spezifisch?


Vielen Dank im Voraus!
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-3 mit HM-CFG-LAN und jede Menge HM Komponenten.

FunkOdyssey

Zitat von: DocCyber am 13 Februar 2017, 12:17:06
Ich bin auch an dieser Thematik interessiert, besonders auch das fett markierte Thema.
Außerdem würde ich gern einzelne UI-Websites (ich verwende FTUI) davon auschließen wollen, von jedermann im Haus (z.B. meine Kinder) benutzt zu werden.

Leider kenne ich mich in diesem Komplex nicht wirklich aus, also FHEM auf Apache zu instllieren. Hast du Erfahrungen, wo ich informieren kann; am besten  FHEM-spezifisch?


Vielen Dank im Voraus!

Ich bin mittlerweile auf Apache >2.4 gewechselt. Das >2.4 erwähne ich, weil sich hier halt einige Dinge geändert haben und ein simples Copy&Paste der Konfiguration nicht unbedingt möglich war.

Ich habe immer noch zwei Ports offen. Diese laufen nun jedoch SSL-verschlüsselt durch einen Apache Reverse Proxy.
Intern wie auch von außen per VPN greife ich per Client-Zertifikat auf https://fhem.fritz.box ohne Authentifizierung zu.
Das alles hat mich ganz schön Nerven gekostet, da jede Anleitung, die ich hier im Forum gefunden habe, nur zum Teil für mich passend war.
Leider habe ich gerade keinen Link greifbar. Es war auch ein ziemliches Durcheinander und ich könnte es momentan auch nicht rekonstruieren.

Ehrlich gesagt: Ich habe auch ein wenig Bauchschmerzen, dass durch eine Fehlkonfiguration von Apache2 ich eigentlich noch ein größeres Loch öffne.


DocCyber

hhmmm...

Vielen Dank für deine Antwort - die Thematik scheint hinreichend komplex zu sein.
Aber vielleicht stößt ja noch jemand auf diesen Thread und hat weitergehende Ideen.

Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-3 mit HM-CFG-LAN und jede Menge HM Komponenten.

ahome77

Sehe ich das richtig, das wenn ich php nutzen möchste (Bei Tablet UI), dass ich dann apache und php5 auf dem RaspberryPi installieren muss? Sprich FHEMWEB kann kein php5, richtig?


sudo apt-get install apache2 php5 libapache2-mod-php5


Wohin soll dann das "home Verzeichnis" vom apache zeigen?  opt/fhem/www/tablet ? (bei der Nutzung von Tablet UI?)


cd /etc/apache2/sites-enabled/
nano 000-default.conf


editieren:


# DocumentRoot /var/www/html
DocumentRoot /opt/fhem/www/tablet


Oder "beißt" sich FHEMWEB so mit dem Apache?

klausw

Zitat von: ahome77 am 07 März 2017, 15:12:12
Sehe ich das richtig, das wenn ich php nutzen möchste (Bei Tablet UI), dass ich dann apache und php5 auf dem RaspberryPi installieren muss? Sprich FHEMWEB kann kein php5, richtig?


sudo apt-get install apache2 php5 libapache2-mod-php5


Wohin soll dann das "home Verzeichnis" vom apache zeigen?  opt/fhem/www/tablet ? (bei der Nutzung von Tablet UI?)
genau
oder ein link von opt/fhem/www/tablet  nach /var/www/html/tablet
oder opt/fhem/www/tablet nach /var/www/html/tablet kopieren
Ob noch PHP Pakete fehlen weiss ich nicht
Ich habe
sudo apt-get -y install php5
sudo apt-get -y install libapache2-mod-perl2 php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mysql php5-odbc
sudo apt-get -y install php-pear php-apc

installiert.

Du kannst auch zusätzlich FHEMWEB über den Apache Proxy laufen lassen und darüber absichern.

Zitat von: ahome77 am 07 März 2017, 15:12:12
Oder "beißt" sich FHEMWEB so mit dem Apache?

Nein, die kommen sich nicht in die Quere, sofern sie nicht die gleichen Ports nutzen wollen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

kadettilac89

Zitat von: JoeALLb am 17 Januar 2017, 20:01:56
Wirklich lightweigt und sehr elegant ist nginx!
Würde ich unbedingt ansehen, kann alles was du brauchst! Du kannst damit auch alles über einen einzigen port laufen lassen!!
(mache ich so)

Hast du hierzu Vergleich der Laufzeiten zwischen nginx und FhemWeb direkt?

Ich habe zum Test der SSL-Zertifikate Apache auf meinem BananaPro getestet aber die Seitenladezeiten sind etwas langsamer als direkt über FhemWeb. Auch über Http ohne irgend welche Verschlüsselung oder Passwörter. Ich merke das auf Seiten die mehrere Plots haben. Da sind es 2 Sek. ohne und 4 Sek. mit Apache. Gemessen mit IE-Entwicklertools.

Aktuell habe ich keine Zeit mich näher damit zu befassen. Habe vor auf Raspberry 3 oder andere Hardware umzusteigen, dann wird es wieder interessant. Wenn ich dann schon neu konfiguriere ist der Aufwand Apache oder nginx vergleichbar. Da habe ich dann auch keine Präferenz.

JoeALLb

Nein, keine Messung. Da ich aber Features von nginx benötige, ist pures fhemweb für mich keine Option.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

ahome77

Zitat von: ahome77 am 07 März 2017, 15:12:12

cd /etc/apache2/sites-enabled/
nano 000-default.conf


editieren:


# DocumentRoot /var/www/html
DocumentRoot /opt/fhem/www/tablet




Welchem User muss ich dann für das Verzeichnis  "/opt/fhem/www/tablet" welche Rechte vergeben? Oder muss ich da im Apache noch was anderes einstellen?

Momentan kommt folgende Meldung vom Apache:

Forbidden

You don't have permission to access / on this server.
Apache/2.4.10 (Raspbian) Server at 192.168.222.119 Port 80


Bin mir da jetzt nicht ganz sicher ob es eher ein Linux Rechteproblem ist oder ein Apache Rechteproblem...