Auf dieser Seite finden Sie Kurzanleitungen/Howtos zu verschiedenen Themen.
Die folgende Anweisungen richten sich ausschließlich an fachkundige Personen.
Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr.
Dieses Howto zeigt Ihnen, wie Sie einen RaspberryPi (mit Raspbian Stretch) für das Spectre- und Meltdown-sichere Surfen einrichten. Die in fast allen CPUs (bei einigen Prozessorfamilien bereits seit 1995!) enthaltenen Sicherheitslücken Spectre und Meltdown zeigen, wie lange gravierende Sicherheitslücken in Produkten schlummern (oder verdeckt ausgenutzt werden) können.
Die besondere Gefährlichkeit besteht darin, daß diese Sicherheitslücken direkt in der Hardware stecken und unter jedem Betriebssystem ausgenutzt werden können. Eigentlich durch Sicherheitsfunktionen geschützte sensible Daten (wie Paßwörter) können hierdurch unbemerkt (z.B. durch simples Besucher einer Webseite) ausgelesen werden. Die Hersteller von Soft- und Hardware arbeiten derzeit an Patches, um die Auswirkungen von Spectre und Meltdown abzumildern. Ob und wann es gelingen wird, alle Schwachstellen zu schließen, bleibt abzuwarten. Unwahrscheinlich ist hingegen, daß für alle betroffenen Systeme Patches erscheinen werden.
Eine Ausnahme von diesen Sicherheitslücken bildet die CPUs der RaspberryPis (alle Varianten), denen die spekulative Codeausführung fehlt, die für die Angriffe nötig ist. Beim Ausführen des Browsers auf einem Raspberry Pi können Ihnen so keine Daten durch diese Sicherheitslücken entwendet werden. Sie sollten unabhängig davon aber auf die Sicherheit Ihres Arbeitsplatzrechners achten.
Prinzipiell ist dieses Howto (mit kleinen Anpassungen) auch für anderen Systeme, auf denen Debian läuft, geeignet. Auch kann es als Einrichtungsgrundlage für den Fernzugriff auf auf dem RaspberryPi laufenden Anwendungen dienen.
1. Zugriff absichern
Für den Zugriff (Konsole und x2goserver) auf den Raspberry Pi wird der SSH-Server verwendet. Um das System nicht zu gefährden, sollten grundlegende Sicherheitsvorkehrungen vorgenommen werden. Wie Sie den SSH-Server automatisch beim Booten starten, lesen Sie bitte in einem der öffentlich zugänglichen Tutorials nach. Alle folgenden Schritte werden mit root-Rechten durchgeführt.
1.1 Paßwort des pi-Benutzers ändern
passwd pi
1.2 SSH-Schlüssel für den paßwortlosen Zugriff importieren
Die Verwendung eines SSH-Schlüssels macht nicht nur die Nutzung einfacher, sondern erhöht auch die Sicherheit. Kopieren Sie hierzu den öffentlichen SSH-Schlüssel Ihres Arbeitsrechners in die Zwischenablage und fügen Sie diesen beim Aufruf von
Um die Sicherheit der Daten gegen Diebstahl des RaspberryPis zu erhöhen, sollen die Daten des Surfbenutzers und /tmp verschlüsselt werden. Damit kommt ein Dieb zwar in den (physikalischen) Besitz des Gerätes, kommt aber an die (möglicherweise) sensiblen Daten nicht heran.
3.1 /tmp in verschlüsseltem Container ablegen
Für die Daten, die unter "/tmp" abgelegt werden, wird ein 1GB großer Container angelegt, der bei jedem Booten mit einem neuen zufälligen Paßwort verschlüsselt wird.
Der folgende Befehl legt eine 1GB große Sparse-Datei an:
Neben dem direkt auf der SD-Karte liegenden "/home" soll das Verzeichnis "/chome" angelegt werden, dessen Daten im verschlüsselten 8GB großen Container "/chome.img" abgelegt werden.
Der Benutzer "surfer" wird im verschlüsselten /chome angelegt und bekommt ein zufällig generiertes Zugangspaßwort, das nicht zum Einloggen verwendet werden soll. Die Anmeldung per SSH erfolgt hier ausschließlich über den SSH-Schlüssel.
Führen Sie dieses Skript nach jedem Booten per Einloggen als "pi" und Wechseln auf den root-Benutzer aus.
Optional: Alle Verbindungen des Benutzers über TOR umleiten
Wenn Sie zusätzliche alle Verbindungen des surfer-Benutzers mittels "iptables"-Firewallregeln über das TOR-Netzwerk leiten möchten, um Ihre IP-Adresse gegenüber Webservern zu verschleiern, führen Sie folgende Befehle aus, die die nötige Software installieren und die Konfiguration für Sie vornehmen. Mit dem automatisch erstellten Skript "/bin/torNeueIP" können Sie sich später (als Benutzer "pi" oder "surfer") durch den TOR-Client eine neue IP geben lassen.
apt-get install tor privoxy
echo 'DNSPort 53
AutomapHostsOnResolve 1
VirtualAddrNetwork 10.192.0.0/10
TransPort 9040' > /etc/tor/torrc
echo 'user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
filterfile user.filter # User customizations
logfile logfile
listen-address 127.0.0.1:8118
listen-address [::1]:8118
toggle 1
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forward-socks5 / 127.0.0.1:9050 .
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300' > /etc/privoxy/config
echo '
for anonUser in surfer
do
# Skip setting of the rules for the given user, if the rules are already set.
if [ $(iptables -L | egrep "(match $anonUsers |match $anonUsers$)" -c) -eq 3 ]
then
continue
fi
iptables -t nat -A OUTPUT ! -o lo -p tcp -m owner --uid-owner $anonUser -m tcp -j REDIRECT --to-ports 9040
iptables -t nat -A OUTPUT ! -o lo -p udp -m owner --uid-owner $anonUser -m udp --dport 53 -j REDIRECT --to-ports 53
iptables -t filter -A OUTPUT -p tcp -m owner --uid-owner $anonUser -m tcp --dport 9040 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -m owner --uid-owner $anonUser -m udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT ! -o lo -m owner --uid-owner $anonUser -j DROP
done
' >> /bin/chomeOpen
echo 'pi ALL=(root) NOPASSWD:/usr/bin/killall' >> /etc/sudoers
echo 'surfer ALL=(root) NOPASSWD:/usr/bin/killall' >> /etc/sudoers
echo 'sudo killall -HUP tor' > /bin/torNeueIP
chmod +x /bin/torNeueIP
6. Neustart
Starten Sie nun nach abgeschlossener Einrichtung Ihren RaspberryPi neu per:
reboot
7. Mit dem SurfPi verbinden
Sie können sich per SSH auf dem SurfPi über die Benutzer "pi" (für die Administration) und "surfer" für das gesicherte Surfen und den Dateiaustausch verbinden. Loggen Sie sich nun als "pi" und welchseln Sie mit
sudo bash
zum Benutzer "root". Schalten Sie nun per
/bin/chomeOpen
das System frei.
7.1 Grafische Sitzungen mit x2go
Über den x2goclient, den Sie auf Ihrem Arbeitsplatzrechner installieren, können Sie grafisch auf den SurfPi zugreifen. Erstellen Sie dazu ein neues Profil analog zu den Einstellungen im Screenshot. Sie müssen hierbei (mindestens) die IP Ihres SurfPis und den Dateinamen Ihres geheimen SSH-Schlüssels ändern.
Anlegen eines neuen Profils im x2go-Clienten
Wenn Sie das neue Profil anklicken, sollte sich Ihr Rechner mit dem SurfPi verbinden und ein neues xterm-Fenster öffen. Innerhalb dieses Fensters können Sie den Browser Chromium über
chromium-browser&
bzw. mittels
chromium-browser --incognito&
im privaten Modus starten. Für Firefox verwenden Sie analog
firefox&
bzw.
firefox --private-window&
für den pirvaten Modus.
8. Browser-Erweiterungen zur Erhöhung der Sicherheit
Um die Sicherheit beim Surfen weiter zu erhöhen, können Sie zusätzliche Erweiterungen (z.B. uBlock Origin, ScriptSafe bzw. NoScript) installieren. Diese Erweiterungen stehen nur exemplarisch für eine Vielzahl weiterer Erweiterungen. Recherchieren Sie bitte, welche (zusätzlichen) Erweiterungen am bestem zu Ihrem Sicherheitsbedürfnis passen.