Kategorie-Archiv: Raspberry Pi

Raspberry Pi: Firewall richtig konfigurieren (iptables)

Kurz vor weg: Ich bin kein Linux-Experte. Daher kann ich keine Garantie auf die Vollständigkeit dieses Artikels geben. Die Änderungen an der Firewall des Betriebssystem sollten somit nur mit genauer Vorsicht unternommen werden.

Als ich vor einigen Wochen die no-ip-Konfiguration auf meinem Raspberry Pi durchgeführt habe, kam ich per Port Forwarding über meine Domain zwar super auf mein MacBook Pro (MAMP), aber ich hatte irgendwie keine Möglichkeit auf mein Raspberry Pi zuzugreifen. Schuld war die Firewall (iptables), welche vorkonfiguriert ausgeliefert werden:

Um zu testen, ob der Zugriff mit abgeschalteten Regeln funktioniert, kann man alle Regeln mit folgendem Befehl temporär (bis zum nächsten Neustart) deaktivieren:

Nun funktioniert zwar der Zugriff, aber auch alles andere ist weit geöffnet. Über einen Port-Scanner kann der aktuelle Status abgefragt werden. Da ich aber nur bereitstellen möchte, was ich auch wirklich nutze, stört es mich etwas, dass beispielsweise auch mySQL und SMTP geöffnet sind. Eine Liste der offenen Ports bekommt man mit:

Auf Port 8080 läuft beispielsweise das XBMC Media Center – das muss wirklich nicht übers Netz zugänglich sein. Ich gehe also zur Sicherheit nach dem Ausschlussverfahren durch: Alles was nicht explizit erlaubt ist, wird verboten. So muss ich mir über die Firewall keine Gedanken machen, wenn ich in Zukunft weitere Dienste installieren sollte. Sicher ist sicher.

Als erstes ist also SSH dran. Da die Regeln von oben nach unten abgearbeitet werden, füge ich vor dem DROP aller Verbindungen, einfach die Ausnahmen hinzu, die von überall erreichbar sein sollen. Angefangen wird mit SSH:

Dieser Befehl fügt die Regel an die dritte Stelle in der INPUT-Sektion ein.

Damit die Regeln bei jedem Boot angelegt werden, fügen wir sie in die folgende Datei ein:

Ich weise hiermit ausdrücklich darauf hin, dass nicht die schönste Art und Weise ist, die Regeln zu hinterlegen. Wie es besser geht, kann man in diesem Beitrag nachlesen. Die sauberere Variante, wäre sicher eine Definition in der Datei /etc/network/if-up.d/secure-rmc

Viel Erfolg! Ich bin jedenfalls endlich online.

Raspberry Pi: Autostart von FHEM

Wie der ein oder andere Blogleser schon mitbekommen hat, läuft FHEM bei mir auf raspBMC. Leider startet FHEM nicht automatisch, falls der Raspberry Pi mal ausgeschaltet oder neugestartet wurde (sei es nach einem Stromausfall oder geplantem Reboot). Um FHEM in den Autostart aufzunehmen, muss folgende Datei bearbeitet werden:

Ans Ende (VOR exit 0) fügen wir folgende Zeile ein:

Schon startet FHEM automatisch und man muss sich keine Sorgen machen, dass die komplette Hausautomatisierung einmal stehen bleibt.

Projekt Raspberry Pi: Heizungssteuerung per CUL und FHEM – Part 7

Weiter geht es in Sachen Home-Automation. Ich habe im letzten Beitrag beschrieben, wie ich meine Intertechno IT-1500 mit dem CUL-Stick von Busware angesteuert habe. Dort wurde auch die grundlegende fhem.cfg erklärt. Damit nun die HomeMatic-Komponenten angesteuert werden können, brauchen wir aber ein paar Änderungen in der Konfiguration.

Da es wirklich nicht besonders schön wäre alle Geräte per Hand in die Konfiguration zu schreiben, nutzen wir das automatische Pairing. In diesem Modus werden alle gefunden Komponenten automatisch in die fhem.cfg aufgenommen. Da das aber eventuell in einer sehr unaufgeräumten Datei enden kann, sollte man sich vorher ein Backup der fhem.cfg anlegen.

Nach einem Neustart von FHEM muss man dann folgenden Befehl im Frontend eingeben.

Damit wird das Pairing gestartet. Dieser Wert darf auf keinen Fall in die Config eingetragen werden – damit kommt FHEM irgendwie nicht so klar und startet nicht mehr. Weiterlesen…

Raspberry Pi: DynDNS nutzen und aktuell halten – no-ip

Nun habe ich als Apple-Nutzer mit einem Airport Extreme nicht die Möglichkeit, Zugangsdaten zu dynDNS oder no-ip einzugeben. Wenn man eine FritzBox sein eigenen nennt, ist es sehr viel einfacher dynDNS zu konfigurieren. Aber kein Grund zum verzweifeln: Die IP-Änderungen kann genauso gut ein Raspberry Pi an einen dynDNS-Provider senden, oder? Schließlich läuft das Gerät 24/7.

Bitte beachten: VOR DER KONFIGURATION SOLLTEN UNBEDINGT ALLE STANDARDPASSWÖRTER GEÄNDERT WERDEN!!!

Prinzip

Da man als Privatkunde bei einem Provider (wie z.B. T-Online, Unitymedia, Vodafone, …) keine Fest IP-Adresse zugewiesen bekommt, sondern diese in regelmäßigen Abständen geändert wird / sich ändern kann, muss man sich eine andere Lösung überlegen um sein Netzwerk von außen zu erreichen. Das Ganze läuft über einen sogenannten dynDNS. Das bedeutet, dass sich ein Gerät aus dem eigenen Netzwerk beim jeweiligen dynDNS-Anbieter in regelmäßigen Abständen meldet, und die aktuelle IP-Adresse übergibt.

So ist es möglich, dass man sein Netzwerk immer über die selbe Domain erreichen kann, ohne dass man sich einen anderen komplexen Prozess ausdenken muss, oder sich gar IP-Adressen aufschreiben muss, welche irgendwann einfach jemand anderen gehören.

Installation

Die Installation geht dabei wirklich einfach von der Hand:

Während der Installation wird man nach seinem Benutzernamen und seinem Passwort gefragt. Daher ist es sinnvoll, den Account vorher auf der Webseite zu registrieren. Weiterhin habe ich mir einen Host angelegt und eine Gruppe (welche ich Home genannt habe). In diese Gruppe habe ich nur den einen Hostnamen gespeichert und auf der Webseite ansonsten nichts weiter getan.

Die Ausgabe der Konfiguration sah folgendermaßen aus:

Wie man sieht, wurde automatisch ein Konfigurationsfile angelegt. Damit ist die Installation eigentlich auch schon abgeschlossen. Nun müssen wir das Programm nurnoch ausführen:

Wenn man sich nun die Hosts unter no-ip anguckt, sollte man feststellen, dass sich die IP auf die eigene IP-Adresse geändert hat. Fertig! Noch besser ist es allerdings, das Programm mit in den Autostart des Raspberry Pi aufzunehmen.

Natürlich hilft einem diese Lösung erst dann etwas, wenn man auch Port Forwarding in seinem Router eingerichtet hat, und die wichtigsten Dienste auf den Raspberry Pi schickt. Wie das genau geht, steht im Handbuch des jeweiligen Routers.

Über diese Seite kann man seine IP auf offene Ports scannen lassen.

Alternativen

Alternativen gibt es auf dem Markt sehr viele, nur leider wenig kostenlose. Ich weiß zumindest noch, dass ich vor etlichen Jahren mal den Dienst von dyn.com (damals noch dyndns.org) genutzt habe. Dies bieten aber aktuell nur kostenpflichtige Pakete über die Webseite an.

Über einen kleinen Trick kommt man aber noch an kostenlose Accounts (habe ich gehört). Dafür meldet man sich einfach über dlinkddns an. Angeblich prüft die Seite aber, ob man wirklich einen D-Link-Router sein eigenen nennt. Falls nicht, wird man wohl wieder aus dem Programm geschmissen (keine Ahnung wie die das machen).

Projekt Raspberry Pi: Den CUL-Stick in Betrieb nehmen – Part 6

So, da ist er nun: ein CUL-Stick v3 von busware. Problem 1: Die Plastikhülle vom Stick nehmen. Unglaublich wie fest das Teil sitzt! Ich musste sogar einen Schraubenzieher zu Hilfe nehmen damit das Teil abzubekommen war – das Stecke ich da jedenfalls nie wieder drauf. Aber egal.

Auf meiner Einkaufsliste standen folgende Produkte:

Flashen des CUL-Sticks

Ein paar Worte vor dem eigentlichen Prozess: Angeblich soll es auch möglich sein, den Stick über FHEM direkt zu flashen. Das habe ich allerdings gar nicht erst versucht und kann daher auch nicht sagen wie schwer oder leicht das Ganze ist. In dem manuellen Prozess habe ich wenigstens die volle Kontrolle über alles was so passiert und bin keiner „Magie“ von FHEM ausgesetzt.

Also steckte ich den Stick an den Raspberry Pi. Damit kann man erstmal noch nicht soviel anfangen, da man ja erstmal eine Firmware auf den Stick aufspielen muss. Dazu brauchen wir folgendes Pakete:

Danach laden und entpacken wir die entsprechende Firmware (bitte auf neuere Version auf der Website prüfen).

Nun können wir den CUL-Stick auch schon schon flashen. Das geht einfach mit folgendem Befehl:

Die Ausgabe sah bei mir so aus:

Nun sollte die LED am CUL anfangen zu blinken. Schaut also erstmal alles gut aus. Kontrollieren wir also, ob das Gerät da ist. Alle USB-Geräte listet man folgendermaßen auf:

Irgendwo sollte nun ein Eintrag ähnlicher Eintrag wie dieser stehen:

Den CUL in FHEM konfigurieren

Die Hardware läuft also nun schonmal – was noch fehlt, ist die Konfiguration des Sticks in FHEM. Wie oben schon geschrieben, ist es angeblich möglich, dass der Stick automatisch hinzugefügt wird – ich weiß aber nicht wie das geht. Also wieder der manuelle Weg über die fhem.cfg.

Dort fügen wir ganz unten folgende Zeilen ein:

Wie man sieht, legen wir drei Schalter an (weil in dem Paket natürlich auch drei Steckdosen enthalten sind). Weiterhin definieren wir für jeden Schalter einen Namen (Stehlampe, Standlicht, Vitrine) und einen Gerätecode. Wie sich die Codes von Intertechno zusammensetzen, kann man in diesem Wiki-Eintrag sehr gut nachlesen.

Man muss dazu sagen, dass man mit den IT-1500 relativ frei in der Codevergabe ist, da diese Steckdosen auf jeden beliebigen Code angelernt werden können. Nun startet man FHEM neu und öffnet die Weboberfläche.

Nun hatte ich allerdings in den Logs von FHEM noch ein paar Fehlemeldungen. Daher habe ich die Geräteberechtigung kurzerhand geändert:

Wenn alles richtig gemacht wurde, tauchen hier nun die drei neuen Schalter auf.

FHEM Schalter

Diese muss man nun anlernen wie mit der Fernbedienung: Den Schalter aus der Wand ziehen und wieder einstecken. Während die LED am Schalter blinkt drückt man einfach auf „ON“ in der Weboberfläche. Die Schalter des IT-1500-Sets können auf bis zu drei Codes programmiert werden. Daher ist es kein Problem, sowohl die originale Fernbedienung, als auch FHEM zum Schalten der Steckdosen zu benutzen.

Irgendwie ist es ja schon ein sehr cooles Gefühl, wenn man das erste Mal eine Lampe über eine Weboberfläche schaltet. Ich hätte wirklich nicht gedacht, dass alles so reibungslos und ohne große Probleme einzurichten ist. Ich hoffe, dass das mit den Heizungsthermostaten auch so laufen wird – aber dazu mehr im nächsten Beitrag.

Viel Erfolg!

Für einen einfachen Einstieg empfehle ich ebenfalls folgendes Buch:

Projekt Raspberry Pi: Installation von FHEM – Part 5

In meinem letzten Beitrag habe ich meine Gedanken zum Thema Home-Automation zusammengefasst und eine Menge Links gepostet. Einer der wichtigsten Faktoren in meinen Augen, war die Nutzung von FHEM. Nun möchte ich kurz erläutern, wie ich die Software installiert habe ohne meine anderen Komponenten auf dem Raspberry Pi zu stören.

Aktuell steht Version 5.5 von FHEM zum Download bereit. Da diese Anleitung natürlich auch irgendwann weniger aktuell sein wird, rate ich jedem ein Blick auf die Website zu werfen, um zu prüfen ob nicht eine neuere Version verfügbar ist.

Da FHEM in Perl geschrieben ist, brauchen wir natürlich die entsprechenden Pakete:

Dann können wir die Installation auch schon anstoßen:

Danach sollte der Prozess bereits laufen.

  • Unter Port 8083 läuft die Desktop-Version: http://raspberry.local:8083/fhem
  • Unter Port 8084 läuft eine Smartphone-Version: http://raspberry.local:8084/fhem
  • Unter Port 8085 läuft eine Tablet-Version: http://raspberry.local:8085/fhem

Das war es eigentlich auch schon. Auf die Konfiguration der einzelnen Schalter etc. gehe ich ein, sobald die ersten Teile meiner Bestellung ankommen und ich mich mit dem System ausreichend auseinandergesetzt habe.

Zum Schluss noch ein paar Basics. Die Konfiguration liegt unter:

Neustart von FHEM:

Viel Erfolg!

Weitere tolle Informationen findet man in folgendem Buch:

Projekt Raspberry Pi: Gedanken zur Home-Automation – Part 4

Kommen wir nun zum wahrscheinlich umfangreichsten Teil des kompletten Raspberry-Projektes: Der Home-Automation (Hausautomatisierung). Nun habe ich schon mehrere Beiträge und Texte dazu gelesen. Meine größte Angst ist aktuell, dass verschiedene Komponenten nicht zusammen passen.

Bei meinen Recherchen im Netz, ist mir schon öfter die Abkürzung FHEM (Freundliche Hausautomatisierung und Energie-Messung) auf dem Monitor gezeigt worden. Das klingt schon sehr spannend! Gerade in Kombination mit der Energie-Messung eröffnen sich nochmals ganz neue Möglichkeiten. So stelle ich mir schon jetzt ein paar Statistiken vor, welche meinen Energieverbrauch über das Jahr darstellen – klingt doch irgendwie super, oder?

Am liebsten hätte ich natürlich ein Funkmodul, welches Herstellerübergreifend arbeitet und ich eine größtmögliche Freiheit habe die einzelnen Geräte anzusteuern. Dabei sollen natürlich mehrere Typen unterstützt werden: Schalter, Heizungsthermostate, … . Nachdem ich einiges gelesen habe, möchte ich aber primär auf den HomeMatic-Standard aufsetzen, da dieser (durch Rückmeldesignale der Geräte) zuverlässiger arbeitet und außerdem im weniger „belasteten“ 868 MHz Bereich sendet. Gerade im Bereich der Heizungssteuerung wünscht man sich doch etwas mehr Zuverlässigkeit. Weiterlesen…