Seit längerem betreibe ich auf meinem Macbook bereits ein Tor-Relay. Allerdings gehöre ich zu der Spezies welche den Rechner regelmäßig ausschaltet, erst recht wenn ich das Haus verlasse. Der Tor-Node lief daher immer nur abends und manchmal auch Nachts wenn ich zu Hause war. Ein solcher On-/Off-Node ist für das Tornetzwerk natürlich nicht optimal. Meine eigentlichen Arbeitsmaschinen wollte ich allerdings nicht für einen 24/7-Betrieb zweckentfremden. Also habe ich, nicht aktiv nur immer wieder mal, nach Alternativen umgesehen. Da bei uns auf der Arbeit das Thema Raspberry Pi hoch kam dachte ich mir ich könnte ja mal einen Blick drauf werfen. Gesagt getan.
Zur Einrichtung habe ich als System ein Macbook Air mit MacOSX 10.8.3 genutzt. Aufgrund des Unix-Unterbaus waren die Schritte zur Einrichtung unkompliziert und mit Hausmitteln zu erledigen.
Hardware
Natürlich ein relevanter Punkt gerade da der Raspberry ja immer als günstige Alternative für zum Beispiel MediaCenter genannt wird.
Raspberry Pi (ca. 45 €)
Stromadapter (ca. 7,5 €)
Netzwerkkabel (ca. 13 €)
SDHC Karte (8GB, ca 8€)
Gehäuse (ca. 9 €)
Macht also insgesamt knapp 80 €. Geht billiger, gerade beim Netzteil. Doch für das erste Gerät bin ich zufrieden. Und die Lieferzeit von einem Tag bei Amazon war es mir wert :)
Eine separate Maus und Tastatur ist nicht erforderlich, das Raspberry wird lediglich per SSH angesprochen.
Image besorgen
Da der Raspberry ohne Betriebssystem nicht läuft muss eines organisiert werden. Genutzt habe ich dafür die auf Debian basierende Distribution “Raspbian” Nach dem Download die Prüfsumme überprüfen und los geht es. Für meine Zwecke habe ich mich an das aktuelle Image vom 09.02.2013 gehalten.
Entpacken
Die IP-Adresse ist hier nur als Beispiel anzusehen und spiegelt nicht mein Netzwerk wieder. "pi" ist der Standardbenutzer mit welchem das Raspbianimage ausgeliefert wird. Das Standardpasswort dieses Benutzers lautet "raspberry". Auf y und z beim Tastaturlayout achten ;)
Ab hier erfolgen alle weiteren Schritte lediglich per SSH-Terminal.
Passwort neu setzen
Als erstes wird das Passwort neu gesetzt. Das alte passwd hilft hier weiter. Nun kann ich die folgenden Schritte in "Ruhe" angehen.
Neuen Rootbenutzer anlegen
Jede Person welche die Information besitzt das ein Raspbian zur Einrichtung genutzt wurde kennt auch den Standardbenutzer und dessen Passwort. Also lege ich mit den üblichen Werkzeugen einen neuen Benutzer. Die konkrete Durchführung erspare ich mir daher an dieser Stelle.
Partitionierung anpassen
Das vorher auf die SD-Karte geschobene Image ist natürlich kleiner wie der maximal auf der Karte verfügbare Platz. Um diesen auch nutzen zu können muss die Partition der Karte erweitert werden. Dazu dient das übliche Tool parted.
System aktualisieren
Das Image war ja nun "ein paar" Tage alt. Also sorge ich erst einmal für eine Aktualisierung:
sudo apt-get updatesudo apt-get upgrade
# Das System aktuell und sauber halten
0 1 * * 1 apt-get update -y
0 3 * * 1 apt-get upgrade -y
0 5 * * 1 apt-get clean -y
0 7 * * 1 apt-get remove -y
0 2 1 * * apt-get dist-upgrade -y
Meine vollständige Konfigurationsdatei ist unter ~~Pastebin.com~~ meiner Stikked-Instanz abgelegt:
Das wird nun mit ein paar bunten Bildern quittiert.
Nachdem nun der Tornode steht kann ich mich um den Rest des Servers kümmern.
Nodestatus per Email
Selbstverständlich kann ich nicht rund um die Uhr auf den Server blicken um den Status zu überprüfen. Hier springt eine externe Webseite namens Tor Weather ein. Sobald mein Node einmal nicht erreichbar ist werde ich fortan per Email informiert. Das sieht dann beispielhaft so aus:
Nodestatus per Webseite
Was per Email geht ist natürlich auch auf Webseiten möglich. Eine,
welche mir aufgrund ihrer Einfachheit zusagt,
ist http://torstatus.blutmagie.de/. Der Vorteil ist das ich anhand
des Fingerprints meines Nodes diesen auch unter einer festen Adresse
ansprechen kann.
Doch dazu eine Warnung. Es gibt Webfilter welche die Seite blockieren.
Der häufigste Grund welchen ich sehen konnte ist "Proxy Avoidance".
Also Sperrung wegen vermeintlicher Umgehung eines Proxys. Trifft zwar
nicht zu doch ich vermute das hier generell Tor geflaggt ist.
Logdateien entsorgen
Warum mögen sicherlich nun einige Fragen sollte man denn Logs klein halten und löschen? Nun, aus zwei einfachen Gründen. Zum einen ist der Platz auf der von mir verwendeten SD-Karte begrenzt. Zum anderen kann ich, wenn das Tor-Log gar nicht erst da ist auch keine Infos dazu herausgeben.
Also wird ein neuer Cronjob angelegt:
# Tor Log klein halten 0/10 * * * * truncate -s 9 /var/log/tor/log
Dies sorgt dafür das alle 10 Minuten das Log auf die letzten 9 Einträge gekürzt wird. Zu überlegen ist hier noch ob ich das Log direkt nach /dev/null umleiten kann. Das wird jedoch zu einem späteren Zeitpunkt noch geprüft.
Daneben gibt es noch ein paar andere Logs welche ich nicht gerne entsorgt sehen möchte. Also werden auch diese alle 10 Minuten komplett geleert.
# Sonstige Logs des Systemes leeren
1/10 * * * * * truncate -s 0 /var/log/user.log
Prüfung auf Rootkits
Bei einem System welches quasi rund um die Uhr mit dem Internet verbunden ist sehe ich es als notwendig an die Sicherheit weiter aufzudrehen. Ein Schritt dazu ist überprüfen zu können ob ein Angreifer es ggf. geschafft hat ein Rootkit zu installieren. Also wird wieder apt bemüht:
auf
#PermitRootLogin no
Auch hier ist die Konfiguration entscheidend welche
unter /usr/local/bfd/conf.bfd abgelegt ist. Auch hier
empfiehlt es sich eine Mailbenachrichtigung zu aktivieren.
Also wie gehabt die sudo nano-Kombination
sudo nano /usr/local/bfd/conf.bfd
und folgende Einstellungen anpassen:
# send email alerts for all events [0 = off; 1 = on]
EMAIL_ALERTS="1"
# local user or email address alerts are sent to (separate multiple with comma)EMAIL_ADDRESS="your@email.com"
Während der Installation wird auch gleich ein Cronjob
unter /etc/cron.d/bfd angelegt welcher
alle drei Minuten aktiviert wird. Ein weiterer Eintrag in der
Crontabelle ist daher nicht mehr notwendig.
Emailversand ermöglichen
Jetzt habe ich bei so vielen Schritten angegeben das ich eine Benachrichtigung per Email erhalten möchte und mein System ist noch gar nicht dafür vorbereitet. Also ran:
Danach zur Konfiguration:
dpkg-reconfigure exim4-config
Hierzu habe ich auf die Anleitung unter linode.com zurück gegriffen.
Nachwort zum Thema Sicherheit
Mir ist klar das ich hier sicherlich noch kein bombensicheres System geschaffen habe. Das kann es wie ich denke auch nie geben.
Ein weiterer großer Nachteil ist natürlich der Raspberry an sich. Sollte sich jemand Zugang zum Raspberrystandort verschaffen ist die SD-Karte und damit das System nicht mehr sicher. Vielleicht kann ich zu einem späteren Zeitpunkt einmal darüber nachdenken das Dateisystem auf der SD-Karte zu verschlüsseln. Das ist jedoch für meinen Anwendungsfall paranoide Zukunftsmusik. Zumal ich wohl auch ernstere Sorgen haben werde wenn sich jemand sogar Zugang zu meinen Räumlichkeiten verschaffen sollte. Da ist dann der Raspberry wohl auf einer niedrigeren Priorität.
Weiterhin habe ich bei sehr vielen Komponenten eine Emailbenachrichtigung aktiviert. Hier wird die Zeit zeigen ob das derzeitige Level in Ordnung ist oder das Mailaufkommen zu viel wird. Wenn dem so ist kann ich immer noch die Konfigurationen anpassen.
Offene Punkte
Software ausmisten
In der regulären Installation von Raspbian ist auch sehr viel enthalten was ich zum Betrieb des Tornodes nicht benötige. Hier werde ich in der nächsten Zeit noch die Liste filzen um nicht benötigte Komponenten zu entfernen. Insbesondere der Blick auf die derzeit noch vorhandenen Entwicklungssprachen und-werkzeuge wird wichtig sein. Wenn das System einmal eingerichtet ist werde ich hier kräfitig entsorgen können.
Tor-Logs weiter einschränken
Offen ist ebenfalls ob ich die Logdateien von Tor direkt nach/dev/null umleiten kann. So könnte der Node keine Infos verraten. Doch hier muss ich erst prüfen ob es möglich ist und was als "best practise" empfohlen wird. Doch eines nach dem anderen.
Nodestatus sichern
Regelmäßig die Infoseite des Nodes sichern und als PDF ablegen. Dient für mich rein zu Infozwecken.
Abgehende Emails signieren
Interessant, und auch eher eine Spielerei, ist die Frage ob ich die Emails automatisch mittels GPG signieren kann. Geht sicherlich. Wird dann eines der langfristigen Projekte.
Image sichern
Wenn ich irgendwann einmal der Meinung bin nun einen vernünftigen Stand erreicht zu haben werde ich die SD-Karte als neues Image sichern. Das wird mir die Einrichtungsarbeit bei zukünftigen Raspberrys, insbesondere bei jenen welche dauerhaft mit dem Internet verbunden sind, erleichtern. Und eine Sicherung kann nie schaden.
Ausblick
Wenn die bisherigen positiven Erfahren auch nach vier Wochen immer noch andauern werde ich mir noch mindestens einen weiteren Raspberry Pi zulegen. So ein eigenen yacy-Node reizt mich ja schon.
[
]: http://www.janhkrueger.de/blog/wp-content/uploads/2013/06/Tor-Status-Graph.jpg
[
]: http://www.janhkrueger.de/blog/wp-content/uploads/2013/06/Tor-Node-Connections.jpg
[
]: http://www.janhkrueger.de/blog/wp-content/uploads/2013/06/Tor-Weather-Statusmail.jpg