#PrismBreak – Daten sichern

Owncloud wurde bei mir so eingerichtet, dass eine PostgreSQL Datenbank genutzt wird. Die Daten, die dort gespeichert werden, sollte man sichern für den Fall, dass der Rechner einmal nicht mehr so will wie man es selbst will. Da auf der PrismBreakBox auch die Mails liegen, sollten diese auch gesichert werden. Und die Sicherungen sollten auch automatisiert laufen.

Zum Komprimieren der Daten nutze ich jetzt pigz. Es verteilt das Komprimieren der Daten auf mehrere Rechenkerne. Zum Installieren folgende Befehle ausführen:

su -
apt-get install pigz

Mails sichern

Die vorhandenen Mails werden direkt im Filesystem gesichert. Dazu muss das Backup pro Mailuser eingerichtet werden. Zuerst zum Benutzer wechseln, für den das Backup eingerichtet werden soll:

su - username

Nun wird ein Skript angelegt, welches die Daten in eine Datei zusammenführt und komprimiert. Dazu joe backup-mail.sh ausführen. In die neu zu erstellende Datei folgendes einfügen:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar'
BACKUP_COMPRESS_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar.gz'

tar cvf $BACKUP_COMPRESS_FILENAME --use-compress-program /usr/bin/pigz ./Maildir/* ./Maildir/.??*

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup-mail.sh

Nun noch automatisch einmal am Tag das Skript ausführen lassen mittels Cron:

crontab -e

Folgende Zeile am Ende einfügen:

3 5 * * * /home/username/backup-mail.sh

Damit wird morgens um 05 Uhr 03 das Skript aufgerufen.

Datenbanken sichern

Die Datenbanken werden einfach per Datenbank-Dump in einer Datei gesichert. Mit dieser Datei kann man dann die Datenbank im Fall der Fälle wieder herstellen.

Zuerst wechselt man zum root User zurück um dann zum postgres-User wechseln zu können.

exit
su - postgres

Dann legt man mittels joe backup_owncloud.sh eine Skriptdatei an und fügt folgendes ein:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump'
BACKUP_COMPRESS_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump.gz'

pg_dump owncloud > $BACKUP_FILENAME

pigz -9 $BACKUP_FILENAME

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup_owncloud.sh

Damit das Skript automatisch ausgeführt wird, wird ein täglicher Cron-Job eingerichtet:

crontab -e

Im Editor folgende Zeile einfügen:

13 6 * * * /var/lib/postgresql/backup_owncloud.sh

Speichern und Editor schliessen. Damit wird das Backupskript jeden Tag um 06 Uhr 13 aufgerufen.

#PrismBreak – Eigene Sourcecode Repositories hosten

Als Entwickler benötige ich für meine Projekte Repositories, in denen der Sourcecode verwaltet wird. Aktuell bin ich noch bei Repositoryhosting. Da ich meine Daten aber gerade zu mir zurückführe und selbst hoste, werden auch meine Sourcecode Repositories auf meiner PrismBreakBox gehostet werden. Ich habe bisher Subversion, Git und Mercurial eingesetzt. Aufgrund der bisherigen Erfahrungen habe ich mich für Mercurial entschieden.

Mercurial installieren

Als root User anmelden:

su -

Nun folgenden Befehl zur Installation ausführen:

apt-get install mercurial mercurial-server

Mercurial ist nun installiert. Der Zugriff auf Mercurial erfolgt über Apache per SSL. Wir hängen uns dazu an die Owncloud SSL Konfiguration an. Zuerst richten wir aber die passende Umgebung für die Repositories ein. Bei mir war durch die Installation von Mercurial bereits ein passender User eingerichtet (hg). Allerdings hatte er noch kein Homeverzeichnis:

su - hg
bash
mkdir -p /home/hg/cgi
mkdir /home/hg/repos

Testweise legen wir ein Repository an:

cd /home/hg/repos
mkdir testproject
cd testproject
hg init

Damit ist ein Repository testproject angelegt.

Webzugriff einrichten

Nun richtet man den Zugriff per Apache2 ein. Hier kopiert man aus der Dokumentation das passende CGI-Skript, welches die Kommunikation mit den Clients übernehmen wird.

cd /home/hg/cgi
cp /usr/share/doc/mercurial-common/examples/hgweb.cgi .

Dann legt man noch eine Konfgurationsdatei an:

joe hgweb.config

Dort trägt man folgendes ein. Damit werden alle Repositories über Apache2 remote verfügbar gemacht:

[paths]
/ = /home/hg/repos/*

Datei speichern und Editor verlassen.

Die Repositories machen wir nun für den www-data User, unter dem der Apache2 läuft, beschreibbar:

cd ..
chmod -R www-data:www-data repos

In /etc/mercurial/hgrc muss noch das Pushen erlaubt werden. Folgende Befehle ausführen, um die Datei zu öffnen:

exit
exit
joe /etc/mercurial/hgrc

In der Datei folgendes einfügen:

[web]
allow_push = username

Bei username bitte den Benutzernamen eintragen, mit dem man auf das oder die Repositories zugreifen will. Mehrere Benutzernamen können per Komma (,) getrennt aufgeführt werden.

Nun konfigurieren wir den Zugriff im Apache2 so, dass der Zugriff auf die Repositories per SSL erfolgt und ein Benutzer sich authentifizieren muss.

SSL und Authentifizierung

Wie schon am Anfang geschrieben, nutzen wir die vorhandene Owncloud-Konfiguration. Dazu passen wir die Konfigurationsdatei /etc/apache2/conf.d/owncloud-ssl.conf an. Die fett hervorgehobenen Einträge sind neu und betreffen die Mercurial-Konfiguration und sind jetzt neu einzufügen:

VirtualHost *:443>
      ServerName calibanatspace.synology.me
      SSLEngine on
      SSLCertificateFile /etc/ssl/crt/apache-cert.pem  
      SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
      DocumentRoot /var/www
      CustomLog /var/log/apache2/ssl-access_log combined
      ErrorLog /var/log/apache2/ssl-error_log

# mercurial   
<Location /hg>
    AuthType Digest
    AuthName "Mercurial repositories"
    AuthDigestProvider file
    AuthUserFile /home/hg/hgusers
    Require valid-user
</Location>

#Where the magic happens
ScriptAlias /hg "/home/hg/cgi/hgweb.cgi"

<Files ~ "^\.hg">   
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
</VirtualHost>

Nun sollte mindestens ein Benutzer in /home/hg/hgusers angelegt werden. Dazu folgenden Befehl ausführen:

su - hg
htdigest -c /home/hg/hgusers "Mercurial repositories" username
exit

Nun noch den Apache2 einmal durchstarten damit die Änderungen greifen:

service apache2 restart

Hinweis für Eclipse-Mercurial Nutzer

Standardmässig scheint bei Eclipse im EclipseMercurial Plugin die Option Verify HTTPS server certificate aktiviert zu sein. Dies führt zu fehlern, wenn man ein selbst erstelltes Zertifkat nutzt. Daher ist dies zu deaktivieren. Zu finden ist die Option über Window -> Preferences -> Team -> Mercurial.

#PrismBreak – Owncloud und Hintergrundjobs

Wer z.B. die Owncloud App News als Newsreader einsetzt, muss Owncloud die Möglichkeit geben, in zeitlichen Intervallen seine Daten automatisch zu aktualisieren. Bei der App News werden entsprechend alle Newsfeeds aktualisiert. Entsprechend der Owncloud Dokumentation gibt es drei Varianten. Ich habe die Cron-Variante gewählt. Entsprechend folgenden Befehl ausführen:

crontab -u www-data -e

Nun öffnet sich ein Editor mit einer Datei. Dort folgende Zeile einfügen:

*/15  *  *  *  * php -f /var/www/owncloud/cron.php

Die Daten speichern und den Editor schliessen. Es werden nun alle 15 Minuten die Daten innerhalb der Owncloud-Instanz aktualisiert.

#PrismBreak – Owncloud aufsetzen

Owncloud dient als Grundlage für weitere Umsetzungen. Unter anderem wird Owncloud die Kontakt- und Kalenderdaten bereitstellen, ausserdem nutze ich die Instanz bereits als Newsreader.

Die Daten in Owncloud werden in einer Datenbank gespeichert. Owncloud kann mit einer mitgelieferten sqlite Instanz betrieben werden oder mit einer externen Datenbank. Ich habe mich für letzteres entschieden, für eine PostgreSQL-Datenbank.

Als Quellen für die Installation haben folgende Webseiten gedient:

PostgreSQL aufsetzen

Auf dem Rechner mittels

su -

als root arbeiten. Dann folgenden Befehl eingeben und damit PostgreSQL und Zubehör installieren:

apt-get install postgresql postgresql-client postgresql-doc phppgadmin

Nun muss ein Benutzer und eine Datenbankinstanz für Owncloud angelegt werden. Dazu sind folgende Befehle notwendig:

psql -Upostgres
CREATE USER username WITH PASSWORD 'password';
CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE';
ALTER DATABASE owncloud OWNER TO username;
GRANT ALL PRIVILEGES ON DATABASE owncloud TO username;
\q

Ich habe für username owncloud eingesetzt. Bei password kann man ruhig ein kompliziertes und langes Passwort nehmen. Meines hat 40 Stellen.

Hinweis

Falls die Anmeldung an der Datenbank beim psql-Befehl mit

psql: FATAL:  Ident authentication failed for user "postgres"

misslingt, in der Datei pg_hba.conf in /etc/postgresql/X.Y/main/ folgende Zeile entsprechend dem Kommentar anpassen:

local all all peer     # replace ident or peer with trust

wird bei mir zu

local all all trust     # replace ident or peer with trust

Anschliessend ist die PostgreSQL-Datenbank neu zu starten:

service postgresql reload

Owncloud installieren

Die aktuelle Pakete mit Installationsanleitung finden sich unter http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud. Dort auf das Debian-Symbol klicken. Folgende Befehle ausführen:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key

Damit ist Owncloud installiert, aber noch nicht eingerichtet. Als nächsten Schritt erstellt/editiert man die Datei /etc/php5/conf.d/20-pgsql.ini (z.B. mittels joe). Die Datei sollte folgenden Inhalt haben:

; configuration for php PostgreSQL module
; priority=20
; extension=pdo_pgsql.so
extension=pgsql.so

[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0

Nun kann man Owncloud aufrufen und fertig einrichten lassen. Dazu die passende Url aufrufen in der Form http://prismbreakbox.local/owncloud/. Man bekommt folgende Seite angezeigt:

Bildschirmfoto

Der Benutzername für das Administrator-Konto sollte man nicht unbedingt admin oder administrator nennen. Ein ausgefallener Name erschwert Angreifern die Arbeit. Ich habe hier im Beispiel blubber gewählt. Ein langes Passwort ist hier dringend erforderlich, am Besten 40 Stellen.

Bei Datenbank einrichten wählt man den PostgreSQL Reiter und gibt die bei der Anlage der Datenbank festgelegten Daten hier ein. Anschliessend betätigt man Installation abschliessen und die Owncloud-Instanz ist eingerichtet.

Owncloud per SSL ausliefern

Eine fertige Anleitung, an die ich mich gehalten habe, findet sich unter http://ubuntuserverguide.com/2013/04/how-to-setup-owncloud-server-5-with-ssl-connection.html.

#PrismBreak – Google Mail ersetzen mit eigenem IMAP – Mailserver

Für das Speichern der eigenen Mails wird ein IMAP-Server genutzt. Ich habe mich für Dovecot entschieden. Für die Installation meldet man sich als root-User auf der PrismBreakBox an, z.B. per SSH. Befindet man sich auf der Maschine, gibt mal folgende Anweisung ein, um Dovecot zu installieren:

apt-get install dovecot-core dovecot-imapd

Die Software wird installiert und eine einfache Konfiguration eingerichtet. Anschliessend öffnet man seinen Browser und öffnet die Webmin Seite unter https://prismbreakbox.local:10000/. Da das Dovecot-Modul noch nicht aktiviert ist, gibt man bei Search entsprechend dovecot ein und bestätigt die Eingabe. Im ersten Eintrag der angezeigten Liste klickt man den Eintrag unter der Spalte Module, Dovecot IMAP/POP3 Server, an. Leider sind die angeboteten Konfigurationsmöglichkeiten nicht für meine Ansprüche ausreichend. Allerdings kann man die Konfigurationsdatei direkt über die Webmin Oberfläche editieren. Hierzu den Punkt ganz rechts, Edit Config Files, auswählen. Es wird nun die Dovecot-Konfigurationsdatei angezeigt. Den Inhalt mit folgenden Zeilen überschreiben:

listen = *
auth_mechanisms = plain login
log_path = /var/log/dovecot.log
mail_location = maildir:~/Maildir
protocols = imap
service imap-login {
  inet_listener imap {
    port = 0
  }
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
passdb {
  driver = pam
}
protocol imaps {
  imap_idle_notify_interval = 2 mins
  imap_max_line_length = 64 k
 imap_client_workarounds = tb-extra-mailbox-sep
}
mail_max_userip_connections = 20

Die Änderung mit Save bestätigen und auf der folgenden Seite mit Apply Configuration aktivieren.

Mails einsammeln von verschiedenen Accounts

Mit dem iMAP-Server alleine ist es nicht getan. Dort werden die Mail nur aufbewahrt. Aber wie kommen die Mails von den eigenen Mailaccounts dort hin? Eigentlich wollte ich erst Fetchmail benutzen. Da ich aber schon eine fertige Konfiguration von vorherigen #PrismBreak Experimenten hatte, und die Konfiguration mittels Webmin nicht so einfach aussah, habe ich doch wieder getmail genommen.

Die ganzen folgenden Arbeiten werden mit dem eigenen Benutzer durchgeführt.

Zuerst legt man pro Mail-Account, den man Abrufen möchte, eine Konfigurationsdatei für getmail an. Ich habe dazu in meinem home-Verzeichnis ein Unterverzeichnis .getmail angelegt:

cd ~
mkdir .getmail
cd .getmail

Nun legt man sich für einen Mail-Account die Konfigurationsdatei an. Pro Mailaccount, der abgerufen werden soll, wiederholt sich der Vorgang. Ich benutzte wieder joe als Editor.

joe mein@mailaccount.de.getmail

Die Datei wird neu angelegt, die fett hervorgehobenen Einträge passt man an seinen Account an:

[options]
message_log = /home/benutzername/.getmail/log/mein@mailaccount.de.log
verbose = 2

[retriever]
type = SimplePOP3SSLRetriever
server = pop.meinmailhoster.de
port = 995
username = meinBenutzerAccount
password = MeinGeheimesPasswort
use_apop = false
timeout = 180

[destination]
type = Maildir
path = /home/benutzername/Maildir/
user = benutzername
filemode = 0600

Die Datei mit Ctrl+K und anschliessend X speichern. Den Vorgang für jeden Mailaccount wiederholen, für den man die Mails abholen will und in den IMAP-Server einsortiert haben möchte.

Nun muss noch ein Shell-Skript angelegt werden, welches regelmässig durch Cron aufgerufen wird und getmail für jede Konfiguration aufruft.

joe getmail.sh

In die Datei wird folgendes eingetragen. Die fett hervorgehobenen Eintrag sind entsprechend anzupassen:

#! /bin/sh
/usr/bin/getmail -q -d --rcfile /home/benutzername/.getmail/mein@mailaccount.de.getmail --getmaildir /home/benutzername/.getmail

Die Zeile, welche mit /usr/bin/getmail beginnt, ist für jede Konfigurationsdatei in getmail.sh neu anzuhängen, entsprechend angepasst für die zusätzliche Konfigurationsdatei.

Anschliessend das Skript mit folgendem Befehl ausführbar machen:

chmod a-x getmail.sh

Regelmässiges Mailabrufen einrichten

Die Konfiguration zum Abholen und Einsortieren der Mail in den eigenen IMAP-Account wurde oben beschrieben. Nun geht es darum, dass dieser Prozess regelmässig automatisch aufgerufen wird. Hierzu wird Cron genutzt. Dazu ruft mal crontab auf:

crontab -e

Folgender Eintrag ruft alle fünf Minuten das Shell-Skript auf:

*/5 * * * * /home/benutzername/.getmail/getmail.sh &>/dev/null

 

#PrismBreak – Erste Konfigurationsschritte

Nachfolgend die ersten kleineren Änderungen.

Editor

Ich benutze schon seit einer gefühlten Ewigkeit den Editor Joe. Wenn man mal nicht weiss, wie man ein bestimmte Funktion aufrufen muss, einfach Ctrl+K und danach H drücken, und schon kommt eine Hilfe. Zum Installieren folgende Befehle ausführen:

Falls man noch nicht als root angemeldet ist:

sudo -

Anschliessend

apt-get install joe

ausführen.

SSH Server anpassen

Für Arbeiten an der PrismBreakBox, die nicht per Webmin durchgeführt werden können, benutzt man SSH. Damit hat man verschlüsselten Zugriff auf den Rechner und kann darauf arbeiten. Zum Konfigurieren wird das erste Mal Webmin eingesetzt. Geändert habe ich, dass der SSH Server auf einem anderen Port Verbindungen annimmt und das auch Verbindungen mit Benutzername/Passwort-Eingaben aufgebaut werden können. Später werde ich das Benutzername/Passwort-Verhalten darauf ändern, dass die Verbindung per Public-/Privat-Key aufgebaut werden kann.

  1. Aufrufen von https://prismbreakbox.local:10000/ (oder entsprechend dem Namen des eigenen Servers). Als Username root und das passende Passwort zum root-User eingeben und mit Login anmelden.
    webmin-login
  2. Auf der linken Seite wird ein Menü angezeigt. Dort Servers aufklappen und SSH Server auswählen.
    webmin-sshserver-menu
  3. Auf der rechten Seite werden nun verschiedene Symbole mit Untertiteln angezeigt. Authentication wählen.
    webmin-ssh-authentication-menu
  4. Die Einstellungen entsprechend dem Screenshot unten abgleichen. In der Regel dürfte nur der erste Punkt (Allow authentication by password) angepasst werden. Die Änderungen mit Save übernehmen.
    webmin-authentication-config
  5. Nun Networking auswählen.
    webmin-ssh-networking
  6. Hier kann (muss aber nicht) der Wert für Listen on port angepasst werden. Falls Werte geändert wurden, mit Save übernehmen.
    webmin-networking-config
  7. Nun noch mit Apply Changes die Änderungen übernehmen.

#PrismBreak – Webmin für webbasierte Konfiguration

Um die Konfiguration der PrismBreakBox zu vereinfachen, wird Webmin genutzt. Die Installation speziell für Debian ist hier beschrieben. Der Abschnitt „Using the Webmin APT repository“ beschreibt dabei die Installation mittels APT. Durch diese Variante kann man die Installation von Webmin auch einfach aktuell halten.

#PrismBreak – Debian als Grundlage für den Server

Grundlage für das Hosten eigener Dienste ist bei mir aktuell noch ein Raspberry Pi. Die Resourcen des Raspberry Pi sind stark begrenzt (meiner hat nur 256MB Ram und eine 32GB SD-Karte). Bis jetzt war das noch kein Problem, aktuell hostet der Raspberry aber auch nur einen IMAP-Server. Ich wollte aber noch ein paar Alternativen für Dienste ausprobieren und dachte mir, das ich dann direkt an die Grenzen des kleinen Pi stossen würde. Da ich noch einen Intel Atom basierten MiniPC ungenutzt rumstehen hatte, wurde er als Versuchsobjekt ausgedeutet. Er hat 4GB Ram und eine 500GB Festplatte. Da kann man dann etwas entspannter experimentieren 🙂

Der Raspberry Pi läuft mit Debian, entsprechend sollte der MiniPC auch damit installiert werden. Da der MiniPC kein CD- oder DVD-Laufwerk besitzt, wurde die Installation mit einem USB-Stick durchgeführt.

Ich habe es zuerst mit der regulären Debian-Version versucht. Das, was man in der online verfügbaren Debian-Installationsanleitung erklärt bekommt. ISO-Image herunterladen, auf USB-Stick kopieren, booten, usw. Wie sich herausgestellt hat, war das mit dem MiniPC leider nicht möglich. Es wurde immer wieder darauf hingewiesen, dass bestimmte Module nicht gefunden/geladen werden konnten. Nach kurzer Suche fanden sich verschiedene Debian Live-ISOs zum Herunterladen. Bei mir hat es dann mit einem Amd64 Standard Live-ISO geklappt. Beim Booten wird einem ein Menü angezeigt, welches den Punkt „Install“ anbietet. Damit habe ich dann Debian ohne Probleme auf dem MiniPC installieren können. Der Installer fragt einen noch einige Punkte ab, um dann die Installation durchzuführen. Anschliessend hat man ein „nacktes“ Debian installiert. Das ganze läuft dann übrigens ohne grafische Oberfläche, alles über die Textkonsole.

Installationsanleitung

Nachfolgend die Auflistung der Installationsschritte für meinen MiniPC.

  1. Vom USB-Stick booten.
  2. Im angezeigten Menü den Eintrag „Install“ auswählen und bestätigen.
    20130824_212526
  3. Die Sprache für die Installation auswählen. Bei mir „German“ – „Deutsch“ und bestätigen.
    20130824_212627
  4. Auswahl des Standorts. Bei mir „Deutschland“ und bestätigen.
    20130824_221003
  5. Tastatur konfigurieren. „Deutsch“ und bestätigen.
    20130824_221040
  6. Bei meinem MiniPC wurde bei der Netzwerk-Hardware-Erkennung eine fehlende Firmware-Datei bemängelt. Da ich die entsprechende Datei nicht hatte, habe ich diesen Schritt mit „Nein“ übersprungen.
    20130824_221447
  7. Nach einiger Zeit wird man nach dem Namen des Rechners im Netzwerk gefragt. Ich habe ihn „PrismBreakBox“ genannt. Namen eingeben und bestätigen.
    20130824_221635
  8. Den leeren Domain-Namen bestätigen.
    20130824_221734
  9. Nun das Passwort für den root-User eingeben. Der root-User ist wichtigste Benutzer unter Linux-Systemen. Er darf alles. Daher sollte man ich auch nicht für den normalen Betrieb benutzen.
    20130824_221824
  10. Zur Sicherheit wird das root-Passwort nochmals abgefragt. Erneut eingeben und bestätigen.
    20130824_221843
  11. Nun legt man den ersten Benuter-Account an. Im ersten Schritt wird der normale Name abgefragt. Bei mir Jochen Bachmann und bestätigen.
    20130824_222037
  12. In diesem Schritt wird der Anmeldename für den Benutzer-Account festgelegt. Mit diesem Anmeldename meldet sich der Benutzer am System an. Hier beispielhaft vorname.nachname. Namen eingeben und bestätigen.
    20130824_222114
  13. Für den neuen Benutzer-Account wird ein Passwort vergeben. Neues Passwort eingeben und bestätigen.
    20130824_222337
  14. Das Passwort muss erneut eingeben werden und bestätigt werden.
    20130824_222354
  15. Nun muss die Festplatte vorbereitet werden. Kann die komplette Festplatte für die Installation genutzt werden, dann ist „Geführt – vollständige Festplatte verwenden“ die einfachste Option. Eintrag auswählen und bestätigen.
    20130824_222448
  16. Da neben der Festplatte noch der USB-Stick im System als mögliches Installationsziel vorhanden ist, bekommt man mindestens beide jetzt zur Auswahl angeboten. Die Auswahl hier betrifft das Vorbereiten des Installationsmediums. In der Regel wird der Eintrag mit dem grössten Speicherplatz das gewünschte Installationsmedium sein. In meinem Beispiel der Eintrag mit „500.1 GB“.
    20130824_222620
  17. In der Abfrage habe ich den ersten Eintrag, „Alle Dateien auf eine Partition, für Anfänger empfholen“ ausgewählt und bestätigt.
    20130824_223710
  18. Es werden die anstehenden Änderungen an der Festplatten Partitionierung aufgezählt. In meinem Fall wirt eine root-Partition (/) und eine Swap-Partition angelegt. Entsprechend den Eintrag „Partitionierung beenden und Änderungen übernehmen“ auswählen und bestätigen.
    20130824_223832
  19. Es erfolgt nochmals eine Sicherheitsabfrage. „Ja“ auswählen und bestätigen. Anschliessend wird Debian installiert, was einen Augenblick dauern kann.
    20130824_224022
  20. Ein Netzwerkspiegel sollte verwendet werden. „Ja“ auswählen und bestätigen.
    20130824_225320
  21. „Deutschland“ wählen und bestätigen, um einen nahgelegenen Spiegelserver auszuwählen.
    20130824_225554
  22. Eine Adresse aus der Liste auswählen. Universitäten haben meistens eine gute Anbindung und sind eine gute Wahl. Einen Eintrag auswählen und bestätigen.
    20130824_225754
  23. Wenn mit dem Begriff HTTP-Proxy nichts anfangen kann, dann den Eintrag hier erstmal leer lassen und bestätigen.
    20130824_225819
  24. Nun wird man gefragt, ob ein Bootmanager im Master Boot Record installiert werden soll. Falls die Debian-Installation das einzigste Betriebssystem auf dem Rechner ist, kann „Ja“ ausgewählt werden und bestätigt werden.
    20130824_230130
  25. Die Installation ist abgeschlossen. „Weiter“ auswählen und bestätigen. Den USB-Stick entfernen.
    20130824_230559
  26. Nachdem das System neu gebootet wurde, meldet man sich mit seinem root-Benutzer und Passwort am System an.
  27. Nun gibt mal folgende Befehle ein. Damit werden noch ausstehende Updates geladen und installiert. Jede Zeile wird bestätigt:
    apt-get update
    apt-get upgrade

    Sind Updates vorhanden, wird man bei apt-get upgrade mit „Möchten Sie fortfahren [J/n]?“ aufgefordert, das Upgrade zu bestätigen, was man tun sollte. Anschliessend werden die Updates installiert und das Grundsystem für die #PrismBreakBox ist installiert.

#PrismBreak – Windows nach Linux

Hier hatte ich ja angekündigt, was ich alles ändern möchte. Mittlerweile sind einige Wochen vergangen, den aktuellen Stand habe ich auf dem Webmontag Frankfurt bereits präsentiert. Jetzt heisst es weitere Informationen zu liefern. Den Anfang macht mein Umstieg von Windows 8 auf Linux.

Ubuntu vs. Linux Mint

Wenn es um den Einsatz von Linux geht, wird meistens Ubuntu als Distribution der Wahl empfohlen. Leider wurde in die Ubuntu-Suche Amazon-Suchergebnisse mit eingebunden. Man kann diese Funktion zwar deaktivieren, das ganze hinterlässt allerdings einen gewissen Nachgeschmack. Daher hatte ich mich nach einer Alternative umgeschaut. Ich entschied mich schliesslich dafür, Linux Mint auszuprobieren. Linux Mint wird als sehr anwenderfreundlich empfohlen, ähnlich Ubuntu. Zum Zeitpunkt meiner #PrismBreak Aktion war Linux Mint 15 (Olivia) aktuell und wurde von mir eingesetzt.

Asus Zenbook

Begonnen habe ich mit meinem Asus Zenbook UX51VZ. Das hat sich auch gleich als knifflig herausgestellt. Es war mit Win 8 installiert, das BIOS ist ein modernes UEFI. Besonderheit bei diesen Notebook ist, dass es zwei SSD eingebaut hat, welche als RAID konfiguriert sind. Und diese RAID-Konfiguration war zu Beginn ein Problem.

Recht früh bei der Installation wird man nach der Partitionierung der Festplatte gefragt. Mit aktivierter RAID-Einstellung im UEFI bekam ich ziemlich viele einzelne Partitionen zur Auswahl angeboten. Manche Partition kleiner, andere wieder etwas grösser. Irgendwie nichts brauchbares dabei.

Um es kurz zu machen, ich habe mir eine Live CD von Gparted auf einen USB-Stick installiert und damit nach mehreren Versuchen die Partitionen löschen können.

Anschliessend konnte die Installation von Linux Mint „fast“ normal durchgeführt werden. Ich habe die beiden SSDs getrennt nach root (/) und home (/home). Nach der Installation wurde ein Neustart durchgeführt, Linux wurde aber nicht gestartet, da es Probleme mit der Grub-Konfiguration gab. Zum Glück gibt es dafür aber ein Tool, welches sich erfolgreich darum gekümmert hat: Boot-Repair. Wenn ich mich richtig erinnere, habe ich dazu Linux Mint vom USB-Stick als Live-System gestartet, Boot-Repair nachinstalliert und dann gestartet. Die Funktion „Recommended repair“ hatte ausgereicht. Anschliessend konnte Linux Mint sauber starten.

Nach einigen Tagen stellte sich heraus, das es noch ein Problem mit der Installation gab. Das System „fror“ immer wieder kurz ein, es wollte keinerlei Eingaben von der Tastatur entgegen nehmen und Anwendungen reagierten nicht mehr auf Mausklicks. Nach ein paar Sekunden war alles wieder ok, nur um nach kurzer Zeit wieder einzufrieren. Linux Mint wird mit zwei unterschiedlichen Fenstermanagern angeboten, Cinnamon und MATE. Ich hatte zuerst Cinnamon ausprobiert gehabt. Nachdem ich im Netz keine ähnlichen Berichte und entsprechend auch keine Lösungen finden konnte, entschied ich mich die MATE-Variante auszuprobieren. Damit traten dann keine Probleme mehr auf.

Was hier kurz beschrieben ist, hat einige Abende/Nächte Zeit gekostet. Hier hat sich noch jemand die Mühe gemacht, seine Probleme und Lösungen zu einzelnen Punkten mit der Linux-Installation auf dem Zenbook zu dokumentieren.

Womit wir zum kompletten Gegenteil kommen:

Dell XPS 17

Das Dell XPS 17 ist mein Arbeitstier und entsprechend ausgestattet, hat aber keine so ausgefallene Konfiguration wie das Zenbook mit seinen in RAID geschalteten SSDs. In dem Dell befindet sich eine SSD für das Betriebssystem und eine normale Festplatte für Daten. Ausserdem besitzt es kein UEFI sondern noch ein BIOS. Die Installation von Linux Mint per USB Stick funktionierte hier dann auch absolut ohne Probleme. Partitioniert habe ich es analog dem Zenbook, root (/) liegt auf der SSD, home (/home) auf der Festplatte.

Software

Die Installationen von zusätzlicher Software auf beiden Geräten ist identisch. Aktuell benötige ich folgende Programme auf beiden Rechnern:

  • Firefox
    bereits installiert nach Installation von Linux Mint.
  • Libre Office
    bereits installiert nach Installation von Linux Mint.
  • Eclipse
    von eclipse.org geladen, findet es sich jetzt unter /opt.
  • Sublime Text 2
    von www.sublimetext.com geladen, findet sich ebenfalls unter /opt.
  • Pidgin
    Per Paketmanager installiert, zusätzlich noch das OTR-Plugin.
  • Spotify
    ich war bisher Spotify Kunde. Leider bieten sie keinen Linux-Client an. Spotify hat eine Linux Preview, welche man bereits nutzen kann. Die Installation liegt ebenfalls unter /opt.
  • 1Password
    Ein kommerzieller Passwortmanager. Eine Windowssoftware, welche es nicht für Linux gibt. Danke Wine funktioniert die Anwendung aber auch unter Linux. Allerdings gibt es unter Linux keine Integration mit den Browsern.

 Was fehlt?

Sicherlich viele Kleinigkeiten. Das Powermanagement der Rechner kann bestimmt noch optimiert werden.

Beide Rechner sind mit beleuchteten Tastaturen ausgestatet. Soweit ich das bisher erkennen kann, funktioniert ein automatisches ein- und ausschalten der Tastaturbeleuchtung nicht, man kann es nur manuell steuern.

Ich habe noch nicht meinen Musikplayer gefunden, mit dem ich voll und ganz zufrieden bin. Aktuell teste ich Rhythmbox und Banshee.

Eine Sache die mir positiv aufgefallen ist: Drucker, Scanner und meine ganzen Android-Devices wurden ohne grossen Aufwand erkannt. Beide Drucker sind Netzwerkdrucker und wurden nach einem Suchlauf im internen Netz erkannt. Beim Tintenstrahldrucker musste ich noch einen passenden Treiber beim Hersteller herunterladen. Aber danach funktionierte dieser auch.

Fazit bisher: ich vermisse nichts. An spezieller Windows-Software hatte ich nur MS Office 2010 im Einsatz. Und 1Password.

PrismBreak oder wieso und wie ich mein elektronisches Leben umkrempel

Ich führe ein recht unprivates Leben, checke gerne und überall mit Foursquare ein, poste privates auf Twitter, Facebook, Google+ oder sonst wo, meine mit dem Smartphone gemachten Fotos werden automatisch bei Google+ hochgeladen (privat, liegen aber damit schon bei Google), manche finden ihren Weg über Instagram nach Tumblr, Twitter und Facebook.

Bis heute….genauer gesagt, gestern…da hatten wir vom Webmontag Frankfurt Team ein Treffen und kamen auf das Thema PRISM und co zu sprechen. Nach den doch recht heftigen Diskussionen zu dem Themenkomplex an dem Abend kam ich auf dem Nachhauseweg zur Erkenntnis, dass es bei mir so nicht weitergehen kann. Ich habe die ganzen Dienste gerne genutzt…und reichlich. Wenn es einen neuen Dienst gibt, der interessant aussieht melde ich mich an….bin halt ein Spielkind. Aber dieses Spielkind wird gerade motzig. Man macht mir meine Spielwiese madig. Madig in der Form, dass ich nicht mehr entscheiden kann und darf, welche Infos wirklich aus meiner Hand an andere weitergegeben werden. Schicke ich Mails, weiss ich nicht wirklich, wer noch alles mit ließt. Lade ich Bilder privat bei Facebook oder Google+ hoch, wer schaut sie sich noch an außer den Algorithmen? Ist ja nicht nur PRISM, vor unserer eigenen Haustür müssen unsere Rechte auch ordentlich Federn lassen, Thema Bestandsdatenauskunft. Ich hoffe, ich gehe das Thema mit genügend normalen Menschenverstand an. Ich werde mich nicht von Diensten wie Twitter, Facebook, G+ oder App.net verkrümeln. Dort sind einfach zu viele Leute unterwegs, die ich nicht missen möchte. Und ich bekomme darüber zu viele Hinweis auf interessante Themen. Ich werde mir aber in Zukunft überlegen, was ich dort poste. Und ich werde in Zukunft überlegen, welche Dienste ich wirklich nutze. Genug zu den Gründen, jetzt mal zu den Punkten, die ich ändern will. Vollständig wird die Liste nicht sein, im Laufe der Zeit wird sicherlich das ein oder andere ergänzt werden.

Auf der Seite http://prism-break.org/ kann man sich übrigens nach Alternativen zu Diensten und Software umschauen.

Software

Windows durch Linux ersetzen

Warum das? Auf der Präsentation bezüglich PRISM fand sich Microsoft. Könnte sein, dass damit „nur“ die angebotenen Onlinedienste gemeint sind, sicher kann man allerdings nicht sein. Daher werde ich die meine beiden Notebooks versuchen auf Linux umzustellen. Zuerst dachte ich an Ubuntu, allerdings leiten sie in Ubuntu Suchanfragen an Amazon weiter…daher werde ich Linux Mint testen.

Da ich aber noch einiges an Windows-Spielen habe, werde ich schon noch einen Windows-Rechner benötigen (ab und an benötige ich das als „Ausgleich“). Allerdings wird er rein für die Spiele zur Verfügung stehen und keinerlei andere Daten dort drauf liegen. Daher liebäugele ich mit der c’t Steambox.

Chrome durch Firefox

Eigentlich vertraue ich ja Google…eigentlich. Aber was passiert mit den Daten, die sie von mir auch dank der Nutzung von Chrome, sammeln? Dabei denke ich noch nicht mal an die kommerzielle Nutzung, sondern wieder daran, was NSA und co sich davon abgreifen. Daher wechsel von Chrome nach Firefox.

1Password

Jahrelang hat mir 1Password treu gedient. Bei meinem Wechsel von Mac auf Windows letztes Jahr konnte ich eine neue Lizenz für Windows erwerben und alles war gut. Mit dem Wechsel auf Linux muss ich mich leider nach einer Alternative umschauen. Die Alternative muss sowohl für Linux wie auch für Android verfügbar sein.

Stock-Android durch CyanogenMod ersetzen (Privacy Guard)

Auch hier wieder das Problem, dass man nicht wirklich weiss, wer oder was „nach Hause“ telefoniert. Heute musste ich lesen, dass ein Motorola Droid X2 gerne nach Hause telefoniert. Bei CyanogenMod, einem sogenannten Custom ROM, wurde die Funktion Privacy Guard eingefügt. Damit kann man den Zugriff von Apps auf sensitive Daten (z.B. Kalender, Kontakte oder GPS-Position) sperren.

Da ich CyanogenMod bereits auf meinem Samsung S3 ausprobiert habe, werde ich es wohl auch auf meinen anderen Android-Geräten installieren, falls sie entsprechend unterstützt werden.

Dienste

Google Dienste: GMail, Calendar, Drive, Contacts

Meine täglichen Arbeitstiere! Die Umstellung wird sicherlich nicht so einfach werden. Calendar und Contacts wird hoffentlich durch OwnCloud abgedeckt werden können. Bei Drive werde ich insbesondere die Spreadsheet vermissen, da ich damit meine Zeiterfassung für Kundenprojekte durchgeführt habe. Aktuell kann ich nur Calendar und Contacts direkt ablösen. Für GMail und Drive habe ich noch keine direkte Lösung. Bei GMail bin ich mir auch noch nicht sicher, ob ich die Mailserver meines Domainhosters nutzen soll oder versuchen soll, einen eigenen Mailserver aufzusetzen (ich sag nur SINA). Auch ist noch nicht klar, ob es wieder eine Webmailer-Lösung wird, oder ob ein Fat-Client (z.B. Thunderbird) die Arbeit übernimmt.

Dropbox

Ist aktuell mehr oder weniger schon durch die Software Cloud Station des Herstellers meiner NAS-Box, Synology, abgelöst. Allerdings bietet er keinen Linux-Client an. Hier könnte OwnCloud die Alternative sein.

Mail verschlüsseln

Wenn ich auf GMail geblieben wäre, hätte vielleicht Mailvelope eine Lösung sein können. So muss ich es davon abhängig machen, wie der Ersatz für GMail aussehen wird. Bei Nutzung von Thunderbird wäre Enigmail wohl eine Möglichkeit.

Hangouts gegen verschlüsselte Alternative

Nicht nur Google Hangout, auch für Skype sollte eine Alternative her. Das Ganze muss über Plattformgrenzen hinweg funktionieren, am Besten mit einer End-zu-End-Verschlüsselung. Bin gespannt, ob man hier was finden kann.

Evernote

Evernote „missbrauche“ ich aktuell als Bookmarksammlung. Von daher suche ich nicht wirklich nach einer Alternative.

Picasaweb

Picasaweb, oder jetzt eher Google+ Photos. Das automatische Hochladen von gemachten Fotos aufm Smartphone habe ich bereits deaktiviert. Könnte auch durch OwnCloud abgelöst werden.

Play Music (Android)

Da werde ich verschiedene Player ausprobieren müssen. Als erster wird wohl DoubleTwist getestet. Zusammen mit AirSync könnte das eine Lösung sein.

Websuche

Google ist im Moment einfach der Standard, das zu ändern…puh… Ich werde mir DuckDuckGo anschauen.

 

Und jetzt?

Wie geht es jetzt weiter? Während ich viel zu lange an diesem Blogpost gesessen habe, sichere ich die Daten von einem Notebook, welches ich jeden Tag mit zu meinen Kunden nehme. Das heisst, der Wechsel von Windows auf Linux werde ich wohl als Erstes angehen.

Da ich OwnCloud schon vor ein paar Wochen auf meinem NAS installiert und eingerichtet habe, werde ich die Funktionen, die ich dort nutzen kann, parallel weiter einrichten und testen.

Ich bin gespannt, was ich alles vergessen habe und was mir im Laufe der Zeit alles noch auffällt…

Update 03.07.2013

Mittlerweile wurde ich dazu verdonnert, meinen aktuellen Stand mal zu präsentieren. Das Ergbnis findet man hier.