Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| fun:energie-funk-mess-system_em_1000 [07.10.2020 20:34. ] – [Paketfilter iptables] django | fun:energie-funk-mess-system_em_1000 [08.10.2020 07:14. ] (aktuell) – [Apache V-Host mit Authentifizierung] django | ||
|---|---|---|---|
| Zeile 167: | Zeile 167: | ||
| # vim / | # vim / | ||
| - | <file bash / | + | <file bash / |
| + | attr global logfile / | ||
| + | # FHEM Arbeits-Verzeichnis | ||
| attr global modpath / | attr global modpath / | ||
| # " | # " | ||
| attr global verbose 3 | attr global verbose 3 | ||
| - | # Logdatei mit vollständigem Pfad | ||
| - | attr global logfile / | ||
| # statefile in dem die Stati der Geräte gesichert werden | # statefile in dem die Stati der Geräte gesichert werden | ||
| attr global statefile / | attr global statefile / | ||
| Zeile 230: | Zeile 230: | ||
| ===== Programmstart ===== | ===== Programmstart ===== | ||
| Wir starten nunmehr zum ersten mal **FHEM**. | Wir starten nunmehr zum ersten mal **FHEM**. | ||
| - | # fhem.pl / | + | # |
| - | Im Logfile **/ | + | Im Logfile **/ |
| - | < | + | <file / |
| - | 2012.07.27 14:20:26 2: Telnet port 7072 opened | + | 2020.10.07 22:37:18 3: WEB: port 8083 opened |
| - | 2012.07.27 14:20:26 2: FHEMWEB | + | 2020.10.07 22:37:18 1: define Logfile FileLog ./ |
| - | 2012.07.27 14:20:26 2: FHEMWEB port 8084 opened | + | 2020.10.07 22:37:18 2: eventTypes: loaded 0 events from ./ |
| - | 2012.07.27 14:20:26 2: FHEMWEB port 8085 opened | + | 2020.10.07 22:37:18 3: EM opening device / |
| - | 2012.07.27 14:20:26 3: EM opening device / | + | 2020.10.07 22:37:18 3: EM opened device / |
| - | 2012.07.27 14:20:26 3: EM opened device / | + | |
| </ | </ | ||
| Zeile 245: | Zeile 244: | ||
| # ps aux | grep fhem | # ps aux | grep fhem | ||
| - | | + | fhem |
| Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, | Mit dem Befehl **netstat -tulpen** können wir auch noch überprüfen, | ||
| # netstat -tulpen | grep 808 | # netstat -tulpen | grep 808 | ||
| - | | + | |
| - | | + | |
| - | | + | |
| Nun rufen wir die Statusseite von **// | Nun rufen wir die Statusseite von **// | ||
| - | $ firefox http:// | + | $ firefox http:// |
| {{ : | {{ : | ||
| Zeile 268: | Zeile 265: | ||
| Im Logfile wird uns dies entsprechend quittiert: | Im Logfile wird uns dies entsprechend quittiert: | ||
| - | 2012.07.27 14:31:44 0: Server shutdown | + | 2020.10.07 22:47:46 0: Server shutdown |
| Der status unseres FHEM-Gerätes wurde in der Logdatei // | Der status unseres FHEM-Gerätes wurde in der Logdatei // | ||
| # cat / | # cat / | ||
| - | < | + | <file / |
| - | setstate EDV_Schrank 0.37 kW | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate EDV_Schrank |
| - | setstate EDV_Schrank | + | setstate Gaszaehler 0 m3ph |
| - | setstate Gaszaehler 0.12 m3ph | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Gaszaehler |
| - | setstate Gaszaehler | + | setstate Hauptzaehler 0.56 kW |
| - | setstate Hauptzaehler 0.48 kW | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | setstate Hauptzaehler |
| - | setstate Hauptzaehler | + | |
| setstate Logfile active | setstate Logfile active | ||
| + | setstate WEB 2020-10-07 22:44:07 state Initialized | ||
| + | setstate allowedWEB validFor: | ||
| + | setstate allowedWEB 2020-10-07 22:44:07 state validFor: | ||
| setstate autocreate active | setstate autocreate active | ||
| - | setstate global | + | setstate eventTypes active |
| + | setstate global no definition | ||
| + | setstate initialUsbCheck 2020-10-07 22:44:10 | ||
| + | setstate initialUsbCheck 2020-10-07 22:44:07 state active | ||
| </ | </ | ||
| ===== erweiterte Konfiguration ===== | ===== erweiterte Konfiguration ===== | ||
| Zeile 328: | Zeile 330: | ||
| # systemctl daemon-reload | # systemctl daemon-reload | ||
| - | Damit unser FHEM-Daemon | + | Den **FHEM-Daemon** starten |
| - | # | + | # |
| - | <file bash /etc/init.d/fhem>#!/bin/sh | + | Der Start wird im Logfile des Datenbankservers // |
| + | # less / | ||
| + | <code> | ||
| + | 2020.10.08 08:49:23 3: WEB: port 8083 opened | ||
| + | 2020.10.08 08:49:23 2: eventTypes: loaded 25 events from ./ | ||
| + | 2020.10.08 08:49:23 3: EM opening device / | ||
| + | 2020.10.08 08:49:23 3: EM opened device / | ||
| + | 2020.10.08 08:49:49 1: Including /var/log/fhem/fhem.save | ||
| + | 2020.10.08 08:49:49 1: usb create starting | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: PERL WARNING: can't getattr: Input/ | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS1: Input/ | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS2: Input/ | ||
| + | 2020.10.08 08:49:49 3: Probing CUL device / | ||
| + | 2020.10.08 08:49:49 1: CUL: Can't open /dev/ttyS3: Input/ | ||
| + | 2020.10.08 08:49:49 1: usb create end | ||
| + | 2020.10.08 08:49:49 0: Featurelevel: | ||
| + | 2020.10.08 08:49:49 0: Server started with 11 defined entities (fhem.pl: | ||
| + | </ | ||
| - | # $Id: fhem 19 2012-07-27 21:33:44Z dws $ | + | Möchten wir überprüfen, |
| - | # example init script for fhem | + | - **systemctl** \\ < |
| - | # | + | <font style=" |
| - | # chkconfig: 2345 82 28 | + | Loaded: loaded (/ |
| - | # description: FHEM Home automation. | + | Active: <font style=" |
| - | # | + | |
| - | # processname: fhem.pl | + | Main PID: 29810 (perl) |
| - | # | + | CGroup: / |
| - | # Written by Django | + | └─29810 / |
| - | DAEMON=/ | + | Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Starting FHEM service... |
| - | PIDFILE=/var/run/fhem.pid | + | Oct 08 08:49:23 vml000027.dmz.nausch.org systemd[1]: Started FHEM service.</ |
| - | OPTION="/etc/fhem.conf" | + | </ |
| - | PROG=" | + | - **ps** \\ < |
| - | test -x $DAEMON || exit 0 | + | root |
| + | </code> | ||
| + | - **netstat** \\ < | ||
| + | Proto Recv-Q Send-Q Local Address | ||
| + | Proto Recv-Q Send-Q Local Address | ||
| + | tcp 0 0 0.0.0.0: | ||
| + | tcp 0 0 0.0.0.0: | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | ==== automatisches Starten des Dienste beim Systemstart ==== | ||
| + | Damit nun unser MariaDBL-Server beim Booten automatisch gestartet wird, nehmen wir noch folgenden Konfigurationsschritt vor. | ||
| + | # systemctl enable fhem.service | ||
| + | |||
| + | | ||
| + | |||
| + | Wollen wir überprüfen, | ||
| + | # systemctl is-enabled fhem.service | ||
| + | |||
| + | | ||
| + | |||
| + | Startet der FHEM-Daemon nicht automatisch, | ||
| - | . / | ||
| - | case " | ||
| - | start) | ||
| - | echo -n $" | ||
| - | $DAEMON $OPTION | ||
| - | echo " | ||
| - | ;; | ||
| - | stop) | ||
| - | pid=`ps -ef | grep " | ||
| - | echo -n $" | ||
| - | kill $pid | ||
| - | echo " | ||
| - | ;; | ||
| - | status) | ||
| - | cnt=`ps -ef | grep " | ||
| - | if [ " | ||
| - | echo "$0 is not running" | ||
| - | else | ||
| - | echo "$0 is running" | ||
| - | fi | ||
| - | ;; | ||
| - | *) | ||
| - | echo " | ||
| - | exit 1 | ||
| - | esac | ||
| - | exit 0 | ||
| - | </ | ||
| Nun können wir bequem den **FHEM-Daemon** starten und Stoppen. | Nun können wir bequem den **FHEM-Daemon** starten und Stoppen. | ||
| Zeile 418: | Zeile 434: | ||
| Deny from all | Deny from all | ||
| Allow from 127.0.0.1 | Allow from 127.0.0.1 | ||
| - | Allow from 10.0.0.20/32 | + | Allow from 10.0.0.27/32 |
| - | Allow from 10.0.10.0/26 | + | Allow from 10.0.0.0/26 |
| </ | </ | ||
| Zeile 452: | Zeile 468: | ||
| ProxyRequests Off | ProxyRequests Off | ||
| ProxyPreserveHost On | ProxyPreserveHost On | ||
| - | ProxyPass /fhem http:// | + | ProxyPass /fhem http:// |
| - | ProxyPassReverse /fhem http:// | + | ProxyPassReverse /fhem http:// |
| ErrorLog logs/ | ErrorLog logs/ | ||
| Zeile 460: | Zeile 476: | ||
| </ | </ | ||
| Bevor wir den Apache-Webserver durchstarten überprüfen wir noch die Konfigurationsdatei auf schreib und Tipp-Fehler. | Bevor wir den Apache-Webserver durchstarten überprüfen wir noch die Konfigurationsdatei auf schreib und Tipp-Fehler. | ||
| - | # | + | # |
| - | Syntax OK | + | |
| Da kein Fehler enthalten ist, starten wir nun zur Aktivierung den Webserver einmal durch. | Da kein Fehler enthalten ist, starten wir nun zur Aktivierung den Webserver einmal durch. | ||
| - | # | + | # |
| - | | + | Wir erreichen nun unseren vHost für FHEM ganz einfach via fhem.nausch.org. Geben wir beim Verbindungsprotokoll " |
| - | | + | |
| - | + | ||
| - | Wir erreichen nun unseren vHost für FHEM ganz einfach via www.fhem.nausch.org. Geben wir beim Verbindungsprotokoll " | + | |
| $ firefox http:// | $ firefox http:// | ||
| {{ : | {{ : | ||
| - | ==== erweiterte iptables Paketfilterregel ==== | ||
| - | Wir haben zwar im vorgenannten Beispiel bereits über die Apache-eigenen Regeln den Zugriff auf bestimmte Hosts beschränkt. Zur Sicherheit werden wir aber nun die Paketfilterregeln noch etwas strenger auslegen. | ||
| - | # vim / | ||
| - | < | ||
| - | |||
| - | # Django : 2012-07-27 Port 8083 von IP-Adresse 10.0.0.90 für FHEM freigeschaltet | ||
| - | -A INPUT -s 10.0.0.90 -i eth1 -m tcp -p tcp --dport 8083 -j ACCEPT | ||
| - | # | ||
| - | |||
| - | ... | ||
| - | </ | ||
| - | Zum Aktivieren der neuenRegeln führn wir nun noch einen Restart des Daemons durch. | ||
| - | # service iptables restart | ||
| ==== Datenbank-Konfiguration ==== | ==== Datenbank-Konfiguration ==== | ||