von Marco

OpenSSL Heartbleed – auch der Raspberry Pi blutet – FIX inside

April 11, 2014 in OpenSUSE, Raspberry PI von Marco

Man kommt nicht umhin, vom schwerwiegenden OpenSSL Fehler zu hören. So gut wie alle Medien berichten über die Lücke, darum werde ich hier nur die nötigsten Infos ergänzen: wie kann ich den Raspberry Pi wieder absichern.

Dazu müssen 2-3 Dinge beachtet werden:
1. Die fehlerhafte OpenSSL Version muss ein Update erfahren.
2. Alle vergebenen Zertifikate müssen erneuert werden.
3. (wenn zutreffend) Webseiten-Passworte ändern.

Viele Infos habe ich von diesen Seiten entnommen: https://www.digitalocean.com/ (englisch) und http://www.hackerway.ch/ (englisch)

1. Update
Da für Debian der Fix schon verfügbar ist, reicht folgender Befehl:

Ob das OpenSSL-Update erfolgreich eingespielt wurde, könnt ihr mittels folgendem Befehl testen:

Es sollte folgendes in etwa anzeigen:
ii  openssl                            1.0.1e-2+deb7u6               amd64        Secure Socket Layer (SSL) binary and related cryptographic tools
u6 ist dabei entscheidend.

2. Zertifikate erneuern

Somit wäre schon mal der Angriffspunkt beseitigt. Da die Zertifikate jedoch noch unsicher sind, müssen diese im nächsten Schritt als ungültig gekennzeichnet und neue erzeugt werden.

Da ich auf oYoX 2 Anleitungen zum Thema SSL veröffentlicht habe ( A OpenVPN in Verbindung mit Android und Raspberry Pi und B SSL verschlüsselte Verbindung zum Raspberry Pi (Lighttpd) ), ist es nun notwendig den entsprechenden Zertifikat-Austausch vorzunehmen. Solltet ihr sowohl lighttpd als auch VPN nutzen, dann einfach beide Wege durchführen.

A
Die Zertifikate für VPN können wir nicht einfach ersetzen, sondern müssen diese vorher für ungültig erklären / widerrufen:

client1 steht für den Namen, welchen wir vergeben haben.

Folgende Ausgabe sollte zu sehen sein:

Error 23 heißt, die Verifizierung/Überprüfung des zurück gerufenen Zertifikats schlägt fehl (was wir ja erreichen möchten).

Die “index.txt” Datei im Schlüssel-Verzeichnis wird dabei erneuert.
Man sieht ein “R” (für revoked = widerrufen) in der ersten Spalte von links für den Benutzer “client1“, wenn die folgenden Befehle ausgeführt werden:

Wir erneuern für alle Fälle nochmal komplett das Server-Zertifikat

Jetzt zitiere ich Jan:

Wir können nun die Komponenten für die Verschlüsselung des OpenVPN Zugangs generieren. Nach der Eingabe des ersten Kommandos wird man nach dem Land als Abkürzung gefragt (DE = Deutschland; AT = Österreich; CH = Schweiz). Alle weiteren Angaben können einfach bestätigt werden, da sie für OpenVPN nicht relevant sind. Dasselbe gilt bei dem zweiten und dritten Kommando, wobei wir dort am Ende mit Y zwei mal bestätigen müssen.
Quelle: http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installieren/

Der folgende Befehl kann etwas dauern, habt Geduld.

Da unsere “raspberrypi.ovpn” Datei ebenfalls gelöscht wurde, müssen wir diese erneut erstellen:

hier einfügen:

Beachtet den neuen Zertifikat-Namen und die Zeile “remote RASPBERRY-PI-IP 1194
cert client1neu.crt
key client1neu.key

 

Jetzt erstellen wir uns wieder ein Archiv mit den Client-Zertifikaten, welche wir im Fall dieser Anleitung auf das Android-Gerät spielen (bzw. die alten Zertifikate dort durch diese austauschen):

 

B
Folgender Befehl reicht (sofern ihr die Anleitung genau befolgt habt) – er ersetzt einfach das alte Zertifikat durch ein neues:

 

 

Jetzt noch den Raspberry Pi neu starten:

von Marco

OpenVPN in Verbindung mit Android und Raspberry Pi

Februar 13, 2014 in Mobil / Android, Raspberry PI von Marco

openvpn
Wer gerne mal unterwegs ein öffentliches Wlan nutzt, sollte sich Gedanken machen, in wie weit er seine Daten preisgeben möchte. Viele Webseiten übertragen die Daten unverschlüsselt. Plugins wie “https everywhere” sind zwar ein guter Anfang, aber besser ist ein VPN (Virtual Private Network).

Die folgende Lösung erstellt ein VPN Tunnel zwischen eurem Android-Gerät
und eurem Heimnetzwerk mit dem Raspberry Pi als Gegenstelle.

Das ist zwar auch nicht die top Lösung, denn die Verbindung von eurem Heim-Netz ins www ist noch immer von dem jeweilig aufgerufenen Link abhängig, jedoch sind wir im Wlan Netz dann sicher unterwegs.

1. OpenVPN Installation auf dem Raspberry Pi

Zuerst folgt ihr der ausgezeichneten Anleitung von Jan (PDF) um OpenVPN auf dem Raspberry Pi zu installieren.

Ein paar Anmerkungen zur Anleitung von mir:

Zu Schritt 6
Bei folgendem Fehler:
failed to update database

und nochmal 6. von vorne

Zu Schritt 9
Das ist eine Zeile.

Zu Schritt 12
In Code-Zeile 4 ( remote RASPBERRY-PI-IP 1194 ) die IP eures Internet-Zugangs eingeben, unter welcher ihr dann von außen erreichbar seid.
( Bei einer festen IP hilft z.B. wieistmeineip.de ) Wenn ihr einen DYNDNS Service nutzt, dann schreibt ihr diesen (ohne http://) anstelle von der Raspberry-pi-ip an besagte Stelle – der Port muss dennoch angegeben werden.

Ich habe mir nun die “openvpn-keys.tgz” mittels FileZilla vom Raspberry Pi gezogen, entpackt und dann über das WLAN-Verbindungs-Tool (Remote Manager) des ES-Datei Explorers (unbedingt ansehen, sehr gutes Tool) auf das Android Gerät gespielt.

Converted_file_01a73282
2. “OpenVPN für Android”

Nun könnt ihr “OpenVPN für Android” auf dem Smartphone installieren:

Get it on Google Play

Anleitung zum Einrichten:

  1. Im Reiter “Profile” auf das + klicken.
  2. Einen Namen eingeben (z.B. HeimVPN)
  3. Grundeinstellungen anklicken
  4. Server: siehe Schritt 12 oben (DynDNS oder IP eingeben)
  5. Typ: Zertifikate auswählen
  6. bei CA Zertifikat auf Auswählen klicken – dann ca.crt auswählen
  7. bei Clientzertifikat auf Auswählen klicken – dann client1.crt auswählen
  8. bei Clientzertifikatschlüssel auf Auswählen klicken – hier client1.key auswählen
    beachtet jeweils bei 7. und 8. – der Name client1 richtet sich nach dem Namen, welchen ihr bei der Zertifikat-Erstellung auf dem Raspberry Pi
    vergeben habt. Wenn ihr der Anleitung von Jan ohne Änderung gefolgt seid, dann lautet dieser wie oben “client1″.
  9. Nun auf “Zurück” (auf eurem Telefon ;) ) und auf HeimVPN klicken, FERTIG.

Tipp 1: nach der erfolgreich hergestellten Verbindung könnt ihr diese auch direkt über die Benachrichtungs-Zeile verwalten, indem ihr auf openVPN klickt.

Tipp 2:
um schnell eine Verbindung herstellen zu können, einfach eine “Verknüpfung” auf dem Desktop erzeugen – dabei einfach “OpenVPN Verknüpfung” auswählen und es bietet euch direkt das “HeimVPN” zur Auswahl an. Danach reicht ein Klick auf das Icon und die Verbindung wird hergestellt.

von Marco

Home Cloud Light – SFTP auf dem Raspberry Pi (inkl. fail2ban)

August 31, 2013 in Home Cloud Light, Raspberry PI von Marco

1. Vorwort
2. SSH / SFTP – Installation und Konfiguration
3. ES Datei Explorer – Zugriff einrichten
4. AutoShare – Zugriff einrichten
5. Fail2Ban – Server absichern
6. SFTP – Speicher mit Dolphin öffnen

1. Vorwort
Wer seine Daten lieber auf dem eigenen Speicherplatz weiß und dennoch nicht auf die bequemen Funktionen einer Cloud verzichten möchte (oder kann), der wird eine Weile nach Lösungen suchen können. Man sollte annehmen, dass in Zeiten von Dropbx und Co. zahlreiche Scripte für den heimischen Server bereit stehen. Weit gefehlt – denn neben OwnCloud gibt es nur sehr wenige Alternativen (u.a. Seafile, Ajaxplorer). Diese mögen zwar auf einem schnellen Server auch gut laufen und mit Features glänzen, allerdings kann man auf einem Raspberry Pi an der Geschwindigkeit verzagen. Dabei bietet Linux mit SSH schon alles an, was man für eine “Cloud light” braucht.

Meine Lösung:
SFTP-Zugang (nicht zu verwechseln mit FTPS)
Datei-Verwaltung im Browser mittels eXtplorer (eXtplorer auf dem Raspberry Pi installieren) und SSL
Datei-Verwaltung mit Android: ES Datei Explorer / AutoShare
Datei-Verwaltung mit Linux über Dolphin

___

2. SSH / SFTP – Installation und Konfiguration
sftp
Quellen:
http://www.gambaru.de/blog/2011/08/11/sicherer-datentausch-ein-sftp-server-mit-chroot/ (PDF)
http://www.hack-job.org/how-tos/sftp-downloads-to-the-rescue/ (PDF)
http://madapez.com/it/linux/howto-chroot-sftp-zugang-openssh-ohne-shell-ssh/ (PDF)

Ich setze nun voraus, dass SSL schon auf dem Raspberry Pi installiert ist (was in den meisten Beschreibungen der Fall ist) – wenn nicht, dann “sudo apt-get install ssh” ;)

1. Gruppe “nas” anlegen:


Weiter unten habe ich einen Kombinations-Befehl aufgeschrieben, der alle nötigen Schritte zum Anlegen eines neuen Users auf einmal ausführt, ich empfehle jedoch mindestens einmal diesen hier beschriebenen Weg zu gehen, damit ihr wisst, was die Befehle überhaupt bewirken.

2. Wir legen einen User an,
dem vorerst der Zugriff “nur lesen” gewährt wird.
loader” steht dabei für den Username. Ihr könnt den Namen frei wählen, müsst dann natürlich unten überall bei loader den gewählten Namen ersetzen.
Mit diesem Namen loggen wir uns dann später in Kombination mit dem Passwort auf dem Server ein.

Es soll sein Home-Verzeichnis automatisch angelegt werden (-m), er soll keinen Shell-Zugang bekommen (-s /bin/false) und er soll der Gruppe “nas” angehören (-G nas):

Passwort anlegen:


Home/Loader-Ordner “absichern”

(bzw. dem Benutzer root zuweisen)
Damit erhält der User “loader” auf seinen home-Ordner nur Lese-Rechte. Später erhält er seinen “eigenen” Unterordner zum schreiben (uploaden)


optional: Speicherort festlegen

Ich habe nun versucht mittels folgende Anleitung PDF einen USB-Stick einzubinden und diesen als Speicher zu nutzen.
Leider war mir dies bis jetzt nicht möglich, da chroot misslingt. Ansonsten hätte es so ähnlich funktioniert:

Es dürfte ganz schlicht an dem Format der SD Karte gelegen haben. Diese sollte auf NTFS formatiert sein.
Da ich aber nun mit BerryBoot das OS vollständig auf eine externe USB-Festplatte ausgelagert habe, hat sich das Problem erledigt.

Daher weiter mit
Uploadordner für “loader” anlegen:
Und den Besitzer auf “loader” setzen. Wir können natürlich beliebig viele Ordner anlegen und diese “loader” zuordnen. Innerhalb von diesen kann dann loader selbst neue Ordner und Dateien anlegen und verwalten.


Kombinations-Befehl
für das schnelle Anlegen eines neuen Users.
Einfach den gewünschten Username bei neuerbenutzername=’karlheinz’ eingeben (in diesem Fall natürlich “karlheinz” ersetzen). Der Benutzer erhält dann automatisch seinen Upload Ordner (hier “ups” genannt)


3. ssh config öffnen:

Dort einfügen (damit wird nach dem Gruppenzugehörigkeit geschaut und der User dann in sein Verzeichnis eingesperrt. Zudem wird sftp erzwungen):

( Wenn der Stick funktioniert, sieht die ChrootDirectory Zeile so aus:
“ChrootDirectory /media/usbstick/%u” )
Damit würde ich auf den USB Stick verweisen, welchen ich nach dieser Anleitung eingebunden habe.
Ein Ordner mit dem entsprechenden Username (hier loader) muss vorhanden sein. Dieser muss “root” gehören. Ein Unterordner “uploads” muss hingegen dem User “loader” gehören. Daran scheiterte das USB-Vorhaben.

Ganz wichtig: jetzt ssh neustarten


4. Der Test:

sollte als Ergebnis liefern:
Connected to 192.168.xx.yy.

hingegen die SSH Verbindung sollte unterbunden sein:

sollte als Ausgabe liefern:
This service allows sftp connections only.
Connection to 192.168.1.123 closed.

Um einen User später wieder zu löschen, genügt folgender Befehl:

___

3. ES Datei Explorer – Zugriff einrichten


Funktioniert nun der SSH-Zugang können wir uns an die Konfiguration des ES Datei Explorers machen. Dieses Programm ist im Google Play-Store kostenlos zu haben und meiner Meinung nach die beste Datei-Verwaltung für Android. Neben zahlreichen Features (z.B. Cload-Unterstützung) und Tools (wie z.B. ein Tool zum Bereitstellen der Dateien auf dem Gerät über FTP) hat der ES Datei Explorer eben auch eine SFTP Client Funktion. XDA-Developers Link (engl.)

ES Datei Explorer Schnellzugriff

Nun unten-links auf das “+” klicken (für neuen Server) -> SFTP wählen und die entsprechenden Daten eingeben. Fertig. Die Dateien lassen sich nun verwalten, als wären sie lokal auf dem Smartphone.

___

4. AutoShare – Zugriff einrichten
autoshare
Auto Share im PlaystoreXDA Developers Beitrag
AutoShare ist ein kleines Tool, welches das schnelle Hinzufügen von Dateien in unsere Cloud ermöglicht. Dabei können Bilder und andere Inhalte wie gewohnt über den Teilen-Button verschickt werden. AutoShare lädt diese dann im Hintergrund hoch (oder verschickt diese per Mail oder oder oder). Für meinen Zweck habe ich nur die SFTP Funktion aktiviert. Alternativ würde auch AndFTP funktionieren, allerdings finde ich es etwas zu mächtig für die einfache Senden-Aufgabe. Wer jedoch den ES-Datei-Explorer nicht benutzen möchte, der ist mit AndFTP sehr gut beraten.

Im PlayStore steht zu AutoShare:
“Weiterleiten von Inhalten wie Text, Links oder Bilder per E-Mail, HttpPost, ftp, Sftp, Dropbox oder Box ohne weitere Interaktion des Benutzers. Ohne jedesmal die gewünschte E-Mail-Adresse eingeben zu müssen.
Offline Weiterleiten: Verzögertes senden nur im WLAN ist ebenfalls möglich.
Wie mit Google+ teilen Sie Ihre Fotos sofort nach der Aufnahme(optional).”

Die Einrichtung sollte selbsterklärend sein.

___

5. Fail2Ban – Server absichern
fail2ban

Zu guter Letzt sollten wir eine zusätzliche Absicherung nach außen vornehmen. SSH habt ihr hoffentlich aktiviert (und ruft natürlich eure Verwaltung im Browser nur mit https auf) ;)
Da die Ports für uns offen sind, wird nun natürlich auch von bestimmten Netz-Nutzern versucht, in das System dahinter einzudringen. Eine Methode ist das s.g. Brute-Force (Wikipedia), bei welcher durch zahlloses Versuchen ein Erraten des Passworts erfolgt. Um dem einen Riegel vor zu schieben, begrenzen wir die Versuche und sperren danach die IP für eine bestimmte Zeit. Das ist kein Allheilmittel, aber eben ein zusätzlicher Schutz. Wer nur von bestimmten IP-Adressen zugreift, kann natürlich eine Whitelist für diese erstellen und alle anderen aussperren.

Fail2Ban prüft die Logfiles der aktivierten Programme und wenn o.g. Versuch erkannt wird, erfolgt die Sperre.
Die Installation ist denkbar einfach (Quelle: http://www.myslug.de/index.php?title=Firewalling:_iptables_und_Fail2Ban )

Fail2Ban installieren:

Falls noch nicht automatisch geschehen, auch whois installieren:

Konfigurationsdatei jail.conf nach jail.local kopieren:

Konfiguration bearbeiten:

“bantime = XYZ” nach Wunsch ändern (600 Sekunden = 10 Minuten)
“maxretry” gibt die maximale Anzahl der Versuche an.
“ignoreip” sollte die feste IP eines PC im Netzwerk sein, mit dem ihr auf jeden Fall zugreifen können wollt.

SSH / SFTP ist schon aktiviert, wir können jedoch auch gleich noch den Lighttpd mit in die Überwachungsliste nehmen, indem wir am Ende folgendes anhängen:

speichern und fail2ban neustarten:

Noch ein paar Informationen zu Fail2Ban:

1. Die aktuelle log findet ihr unter

2. Um eine geblockte IP wieder frei zu geben, geht wie folgt vor:

Nun nach “Chain fail2ban-xyz” suchen und den genauen Namen merken. Auch die Dazugehörige “DROP” Position der IP-Adresse.
Beispiel (4.8.15.16 soll wieder frei gegeben werden):

Chain fail2ban-vsftpd (1 references)
target prot opt source destination
DROP 0 — 123.123.123.123 0.0.0.0/0
DROP 0 – 4.8.15.16 0.0.0.0/0
RETURN 0 — 0.0.0.0/0 0.0.0.0/0

Ihr merkt euch also “fail2ban-vsftpd” und die Position 2 ( auf der 1. steht 123.123.123.123 )
Gebt nun ein:

Fertig.

___

6. SFTP – Speicher mit Dolphin öffnen

Der Zugriff unseres SFTP Speichers ist in Dolphin ein Kinderspiel. Einfach wie auf dem Bild zu sehen die IP Adresse eingeben und mit Enter bestätigen. Danach erscheint ein Dialog zur Eingabe des Usernamen und Passworts. Diesen ausfüllen und abschicken und schon habt ihr Zugriff auf euer NAS.
sftp_in_dolphin

von Marco

Automatisiertes MySQL Backup-Script für Raspberry Pi (Update 2)

August 22, 2013 in Raspberry PI von Marco

mysqlbackup

Ein kurzer Tipp für eine automatisierte Sicherung der MySQL Datenbank eures Pi (im laufenden Betrieb der DB):
Quelle: http://www.codingepiphany.com/2013/06/12/raspberry-pi-lamp-server-tuning-and-automated-db-backup/

2. Update 23.08.2013 / 19:45:
Dank dem Hinweis von Shogun im Kommentarbereich, rufen wir das Datenbank-Passwort aus Sicherheitsgründen aus einer externen Datei ab.
MySQLdump bedienen wir dabei mit der Datei .my.cnf

In der .my.cnf jetzt eingeben (die ??? natürlich durch eure Daten ersetzen):

Speichern und schließen.

Jetzt dbbackup.sh anlegen:

Folgendes Script dort einfügen (Datenbank-Name anpassen – z.B. “tt-rss” für eine Sicherung von Tiny Tiny RSS ):

Das ganze speichern (Strg + O) und wieder schließen (Strg + X), danach noch chmod:

Jetzt kann man schon Sicherungen durchführen (sudo sh dbbackup.sh)

Für eine automatische Sicherung ist nur noch der Eintrag in Crontab nötig:

Dort für eine tägliche Sicherung eintragen:

oder für eine wöchentliche Sicherung:

 

von Marco

Kurzer Tipp: Zweite Festplatte mit weiterem Betriebssystem

August 16, 2013 in OpenSUSE von Marco

Wer programmtechnisch auf das Betriebssystem aus Redmond angewiesen ist, wird sich vielleicht schon einmal die Frage gestellt haben, wie man dieses neben Linux installieren kann. Nun ist es zwar recht einfach, erst Windows, dann Linux zu installieren, da der Bootloader von Linux die Windows-Installation erkennt und diese dann in Grub einbindet, anders herum zerschießt man sich aber auch mal ganz schnell das Bootmenü.

Die einfachste Variante ist es, das weitere Betriebssystem auf einer zweite Festplatte zu installieren. Dazu klemmt man die andere(n) Platte(n) zuerst ab und installiert Windows ganz normal auf der neuen. Wenn der Installationsvorgang abgeschlossen ist, schließen wir alles wieder an und starten normal in Linux (die Linux-Platte muss evtl. über das Bios-Bootmenü ausgewählt werden).
In Linux habe ich nun “Bootloader” (unter Yast oder direkt eingeben) aufgerufen und die Anzeigezeit unter Grub-Einstellungen auf 8 Sekunden gesetzt, gespeichert und neu gestartet… und siehe da, Grub hat automatisch die neue Platte nebst Windows erkannt und bietet diese in der Betriebssystem-Auswahl an. So einfach kann es also sein.

Datei YaST Module Bootloader Bootloader Install.png – openSUSE Datei YaST Module Bootloader Optionen.png – openSUSE

Bilderquelle: http://de.opensuse.org/YaST_Module_Bootloader

von Marco

Raspberry Pi OS / Betriebssystem auf externem Speicher – BerryBoot

August 14, 2013 in Raspberry PI von Marco

Nachdem nun mein Raspberry Pi sich mit einem Kernel-Panic (PANIC: VFS: Unable to mount root fs on unknown-block(179,4)… ) von der SD Karte verabschiedet hat, war es Zeit eine andere Möglichkeit des Betriebs zu suchen.

Vorweg – SD-Karte “retten”:
mit folgendem Befehl kann man eine Reparatur der SD Karte versuchen… meistens geht dies allerdings mit nicht geringem Datenverlust einher.
Aber besser ein paar Daten als gar keine…

Nach etlichen “JA” Eingaben kann man die SD Karte in einem Linux-System normal mounten und die nötigsten Dateien retten.


Das Vorhaben:

Zukünftig sollen die System- /OS-Dateien auf der externen Festplatte gespeichert werden. Dazu habe ich an einem USB-HUB mit eigener Stromversorgung eine 2.5 Zoll Festplatte angeschlossen. Weiterhin hängt nun der Raspberry-Pi Stromanschluss auch an diesem HUB.

Eigentlich bootet der RPi immer von der SD Karte, sodass wir uns mit einem Bootloader helfen müssen.
Dazu eignet sich ganz wunderbar das Mini-OS BerryBoot.
Neben der Funktion als Bootloader fungiert BerryBoot auch als Installations-Hilfe und Backup-Tool.

BerryBoot

BerryBoot


Download BerryBoot:
http://www.berryterminal.com/doku.php/berryboot (31MB direkt: http://downloads.sourceforge.net/project/berryboot/berryboot-20130811.zip )

Das ganze entpackt ihr nun auf die SD Karte, welche auch in den Raspberry soll… jetzt bin ich etwas klüger und nehme eine sehr kleine SD Karte, welche ich dann auch prima mit dem Befehl “dd” vollständig sichern kann… (Tolle Anleitung: http://developer-blog.net/hardware/raspberry-pi-backup/ pdf). Alternativ kann wahrscheinlich auch die BerryBoot Backup-Funktion dienen, diese habe ich jedoch noch nicht getestet.

Also kurz “dd” für später… könnt ihr getrost überspringen:

Video der Verwendung von BerryBoot:

Nun wurde Wheezy ganz wundervoll auf unserer externen Festplatte / Stick installiert.

Rest des Eintrags ansehen →

von Marco

Kurzer Tipp: Nexus 4 root nach Update auf Android 4.3 wieder herstellen (Update)

August 5, 2013 in Mobil / Android von Marco


Wer das System-Update auf Android 4.3 durchgeführt hat , wird eine Meldung von SuperSu erhalten, dass dieses nicht mehr funktioniert. Auch verweigern alle anderen Programme, die root benötigen ihren Dienst.
Dies lässt sich jedoch auch ohne das Nexus 4 Toolkit durchführen (welches zu diesem Zeitpunkt noch kein Android 4.3 unterstützt).

Einfach die SuperSu zip über CWM Recovery flashen, fertig. Ich habe vorher noch über den Playstore die vorhandene SuperSu-Version deinstalliert (bzw. das Update).
Achtung: ihr habt hoffentlich brav im ClockWorkModRecovery nach dem Android Update die Hinweise zur Sicherung des Bootmanagers beachtet d.h. NICHT Stock Boot installiert… sonst wird ein Start ins Recovery nicht ohne weiteres möglich sein. Ihr könnt dies ganz einfach testen, indem ihr Schritt 2 und 3 durchführt.

1. SuperSu zip herunterladen: http://download.chainfire.eu/supersu
2. In CWM Recovery starten (Power + Vol-down)
3. mittels Vol bis auf RECOVERY schalten
4. dort install zip from SD – dann eure supersu zip wählen (0 = emulated sd)
5. Neustarten, fertig.

(Update 13.08.2013):

Quelle: http://ncry.eu/

Wer nicht CWM Recovery nutzt (und daher auch nicht vor dem Überschreiben des Bootloader geschützt / gewarnt wird), kann sich auch das Tool N-Cry anschauen.
Damit lässt sich auf einfachste Weise das Gerät entsperren und / oder den Bootloader wieder einspielen.

Ich habe es zwar nicht getestet, aber die Meinungen sprechen sehr dafür.
Link (Forum)http://www.android-hilfe.de/root-custom-roms-modding-fuer-google-nexus-4/356561-toolkit-n-cry-nexus-4-jb-4-3-a.html
Link (Entwicklerseite): http://ncry.eu/

von Marco

In eigener Sache: Kommentare

August 3, 2013 in Allgemein von Marco

dank einem Hinweis von Michael konnte ich einen Fehler im Kommentar-System beheben (Spam deleted). Die beiden WordPress-Plugins “Antispam Bee” und “NoSpamNX” kamen sich in die Quere. Nach der Deaktivierung von letzterem könnt ihr nun wieder die Kommentar-Funktion nutzen (worüber ich mich natürlich freuen würde).

von Marco

Übersicht der Raspberry Pi Beiträge

August 2, 2013 in Raspberry PI von Marco

von Marco

Heimautomatisierung Teil 1 – WOL am NAS “nachrüsten” (Funksteckdosen über Raspberry Pi)

August 1, 2013 in Heimautomatisierung, Raspberry PI von Marco

Nun werde ich mich einem weiteren Projekt widmen, welches gleich eine eigene Kategorie bekommt: Heimautomatisierung. Da ich einen kleinen Raspberry PI in meinem Besitz habe, werde ich den Großteil der Automatisierung über diesen laufen lassen.

In diesem ersten Teil werde ich versuchen mein NAS automatisch mit dem HTPC (XBMC) starten zu lassen. Von Hause aus hat das eTrayZ NAS leider kein WOL (Wake On Lan), sodass ich mir über einen sehr unkonventionellen Weg helfen musste.

Der erste fehlgeschlagene Versuch: Steuerung über den Raspberry PI, einen Standby Killer und dem Infrarot Toy V2 bzw IRToy V2 (Details / Bezugsquelle)…
“Leider” war der Verbrauch des NAS zu niedrig, sodass der SBK immer wieder nach einer Minute vollständig abschaltete, da er annahm, das angehängte Gerät wäre im Standby. Also musste ein anderer Weg her.

Nun habe ich mir folgende Anleitung vorgenommen: [Raspberry Pi] erster Schritt zur Hausautomation (PDF) oder auf englisch (PDF)
Aber auch dieser Beitrag geht einen ähnlichen Weg: Funksteckdosen mit dem Raspberry Pi schalten (PDF)

Die Idee:

Beim Start des HTPC mit XBMC (auf Ubuntu Basis) wird ein Befehl an den Raspberry Pi gesendet, welcher nun per Funk die Funksteckdose des NAS aktiviert. Beim Abschalten wird wieder ein Befehl an den Raspberry Pi abgesetzt, welcher zuerst ein Shutdown-Script (z.B. von hierPDF) auf dem NAS aufruft, damit dieses sauber herunter fährt und nach einer vordefinierten Zeit wird der Befehl zum Abschalten an die Funksteckdose zum Strom trennen gesendet.

Der Einkauf:

Also habe ich mir aus dem Baumarkt für knapp 14 Euro ein Set Funksteckdosen von der Firma ELRO besorgt. Wichtig dabei war die Möglichkeit, die Funkeinheiten per Schalter auf einen Code zu konfigurieren. Weiterhin ein Funkmodul für 433Mhz (z.B. von eBay)

Sendemodul Sender Sendeeinheit 433 Mhz Funk Modul

Die Funktion der Scripte:

  • Zuerst einmal benötigen wir ein Script auf dem HTPC, welches nach dessen Start ein Script auf dem Pi aufruft das wiederum das Funksignal “anschalten” an die Funksteckdose des NAS sendet. Dieses Script muss allerdings auch nochmal bei Shutdown mit einem anderen Parameter aufgerufen werden um eben diesen auch wieder an den Pi weiter zu geben.Nennen wir dieses Script “raspberrysender
  • Nun benötigen wir ein weiteres Script, welches 1. die Funksteckdose(n) schaltet und das 2. NAS sauber herunter fährt.Dieses Script nennen wir “pi_gateway.php” und es liegt auf dem Pi. Es fungiert also wie oben beschrieben als eine Art Brücke zwischen dem HTPC und der Funksteckdose sowie NAS. Wer seinen Pi als XBMC nutzt, dürfte es hier etwas leichter haben.Das XBMC ruft also mit “an” (beim Start) oder “aus” (beim Herunterfahren) über raspberrysender die pi_gateway.sh auf dem Pi auf.
  • Letztendlich noch ein kleines Script auf dem NAS, welches eben diesen sauber herunter fährt. Dieses nennen wir “nas_shutdown.php” und es wird durch die pi_gateway.sh aufgerufen.

Ich habe mich bewusst für PHP Scripte entschieden, da ich auf dem NAS sowie dem Raspberry Pi jeweils einen Webserver laufen habe. Dadurch spare ich mir einen Umweg über eine Konsolen-Anmeldung. Wer eigene Scripte auf Basis von reinen Konsolen-Befehlen verwenden möchte, der kann sich unter folgendem Link über einen Befehl zur Anmeldung und anschließenden Ausführung von Scripten informieren: http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine

Das ganze als Skizze:
IMG_20130511_230824_20130511231626169

Wichtiger Hinweis: damit auf dem Raspberry Pi über das PHP-Script die “elro_wiringpi.py” angesteuert werden kann, müssen SUDO Rechte für diese gesetzt werden… und eben nur für dieses Verzeichnis, denn ein voller root-Zugang für den www-user wäre ein Sicherheitsrisiko.

ganz am Ende einfügen:

Die Scripte:

nas_shutdown.php (NAS) (direkter Aufruf: http://192.168.xx.yy/nas_shutdown.php?a=ok ) – wir werden dieses Script mittels wget mit der Spider-Option aufrufen.


pi_gateway.php (Pi)
(direkter Aufruf: http://192.168.xx.yy/pi_gateway.php?a=1 bzw. 0 bei Shutdown ) – wir werden auch dieses Script mittels wget mit der Spider-Option aufrufen. Erstellt mittels “nano /var/www/pi_gateway.php”

Zeile 17 bitte an die Adresse, Port und ggfls. htaccess Login-Daten anpassen.


raspberrysender (XBMC)
– wird im Ordner “/etc/init.d/” angelegt. Der Start und der Stopp erfolgen mittels der Parameter “start” bzw. “stop”
Diese lassen wir dann noch beim Start bzw. Shutdown aufrufen.
Zeile 9 und 13 bitte an die Adresse, Port und ggfls. htaccess Login-Daten anpassen.

“chmod +x raspberrysender” nicht vergessen.

Nur noch mittels folgendem Befehl in die entsprechenden update-rc.d:

Dabei wird der Start möglichst spät durchgeführt, damit das Netzwerk bereit ist und der Stopp erfolgt aus gleichem Grund so früh wie möglich.

Die Installation des Funk-Moduls:

Nach dem Verbinden des 433Mhz Funkmoduls mit dem Pi werden nun git, gcc, python-dev und python-setuptools nachinstalliert:

unter Raspbmc zusätzlich noch “make” installieren.

und weiter:

Nun noch die Rechte anpassen:

und vor “exit 0″ folgendes schreiben:

Den Code von “elro_wiringpi.py” in einer Datei speichern (z.B. mittels “sudo nano /home/pi/wPi/elro_wiringpi.py”) <- bitte den Pfad genau beachten, denn für diesen erlauben wir später einen root Aufruf direkt vom Webserver um das Python Script ansteuern zu können… mehr dazu unten)

Dabei den Hauscode (= Code in der Fernbedienung) in Zeile 96 anpassen.

Der Aufruf erfolgt nun einfach mittels folgendem Terminal-Befehl:

Wobei 2 für die Steckdosennummer steht und 1 (bzw. 0) für an- oder ausschalten. Diesen Befehl verwende ich in dem o.g. php Script auf dem Pi.

Quellen: http://m.dib0.nl/code/443-how-to-shutdown-your-server-with-php | http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine Run a script when shutdown computer http://ubuntuforums.org/showthread.php?t=185261 Wget Spider: http://www.klamm.de/forum/f28/cronjob-url-oeffnen-247398.html