Skip to content

Workshop zu Tor bei den Chemnitzer Linux-Tagen

Bei den diesjährigen Chemnitzer Linux-Tagen gab es die Möglichkeit, Vorschläge für eigene Workshops einzureichen. Diese Workshops werden dann im kleinen Kreis durchgeführt. Unter anderen kam auch der Wunsch, das Thema Installieren und Administrieren eines Torservers aufzugreifen. Ich habe mich bereit erklärt, eine Anleitung zu dem Thema zu geben. Falls noch jemand Interesse an dem Thema hat, kann er sich gern bei mir melden. Wir werden uns am Sonntag um 10:00 Uhr treffen. Für den Workshop ist ein kleiner Unkostenbeitrag von 5 € (siehe auch Ankündigung) zu entrichten.

Tip #9: Alle Optionen anzeigen

Ich suchte heute nach einen Option, alle möglichen zsh-Optionen anzeigen zu lassen. Mika bzw. ft hatten die rettende Idee:

print -l ${(k)options}
zeigt alle Optionen an und
setopt ksh_option_print && setopt
zeigt gleich noch mit, welche der Optionen (nicht) gesetzt sind.

Umfrage zu grml

Du nutzt auch gern grml? Dann solltest dir auch die Umfrage anschauen. Du hilfst damit den Entwicklern, sich einen Überblick zu verschaffen, was die Nutzer wollen und was du gern verbessert haben möchtest. So kann die beste Live-CD der Welt noch besser werden. :-)

OpenSSL hat nun das FIPS-Zertifikat

Es ist gut ein Jahr her, da schrieb ich, dass OpenSSL ein Zertifikat nach FIPS-140 erhalten hat. Diese Zertifizierung wurde später wieder zurück gezogen und heute nun erfolgte die endgültige Zertifizierung. Im Gegensatz zum letzten Mal taucht die Software nun auch auf der Validation list auf. Insgesamt dauerte der Prozess fünf Jahre. Wenn man bedenkt, dass es normalerweise innerhalb von ein paar Monaten passiert, fragt man sich, wieso dass denn so lange dauerte. Zum einen liegt es daran, dass das Computer Module Validation Program (CMVP) im Normalfall Binärpakete auswertet. Bei OpenSSL hat der Nutzer aber die Wahl, vorkompilierte Software zu nutzen oder OpenSSL aus den Quellen zu bauen. Das waren die Damen und Herren nicht gewohnt und mussten offensichtlich einiges an den Testprozessen ändern. Weiterhin gab es dann noch neidische Konkurrenten. Diese beschwerten sich über die Software. Es führte sogar soweit, dass man behauptete, die Software enthalte kommunistischen Code. Denn ein Russe hat da mitentwickelt. Wie es in der Bürokratie halt so ist, kann man mit noch so großen Schauermärchen kommen. Alles wird geprüft und so zieht es sich in die Länge.

Aber nun ist der Prozess abgeschlossen. Wer will kann sich das OpenSSL FIPS Object Module (3,1MB) herunterladen.

[torrc] -- Kontrolle der benutzten Bandbreite

Tor bietet dir neben den flexiblen Exitpolicies auch die Möglichkeit, die genutzte Bandbreite zu kontrollieren. Viele Anbieter begrenzen die Menge der zu versendenden oder zu empfangenden Daten. Mit den untenstehenden Einstellungen kannst du Tor so konfigurieren, dass er auch innerhalb dieser Grenzen bleibt bzw. nicht zuviel Bandbreite benutzt.

BandwidthRate
Diese Option legt fest, wie hoch die durchschnittliche einkommende Bandbreite ist. Als Einheit könnt ihr alles zwischen Bytes und Terabyte angeben. Ist die Option nicht gesetzt, werden 3 MB als Voreinstellung genommen. Wie oben schon betont, ist der gesetzte Wert ein Durchschnitt, d.h. kurzfristig kann aus auch zu Abweichungen in beide Richtungen kommen. Beispiel: BandwidthRate 1739KB
BandwidthBurst
Diese Option bestimmt die einmalige Höchstgrenze. Stellt euch vor, ihr habt eine Internetverbindung von 2 MB Bandbreite und in der torrc die BandwidthRate auf 500KB gesetzt. Dann ist es möglich, dass in einem kurzen Zeitfenster auch mal die vollen 2 MB genutzt werden. Falls ihr das nicht wollt, könnt ihr die Option BandwidthBurst nutzen. Die Größenangaben entsprechen denen in der Option BandwidthRate. Die Voreinstellung beträgt 6 MB. Beispiel: BandwidthBurst 1456KB.
MaxAdvertisedBandwidth
Hiermit wird nie mehr als der angegebene Wert für die BandwithRate angegeben. Der Torclient versucht immer schnelle Server für den Verbindungsaufbau zu nutzen. Das führt dazu, dass Server mit einer schnellen Leitung auch mehr Verbindungen behandeln müssen. Mit der Option kann man das einschränken. Die Angaben sind gleich zu den obigen Optionen. Beispiel: MaxAdvertisedBandwidth 10MB
AccountingMax

Mit dieser und der folgenden Option lässt sich das von Tor verbrauchte Volumen steuern. Der Torprozess loggt die Menge an Daten in der Datei bw_accounting (unter Linux im Verzeichnis /var/lib/tor bzw. einem der Unterverzeichnisse). Mit der obenstehenden Option kannst du steuern, wieviel Bytes in einer bestimmten Periode reinkommen oder rausgehen sollen. Dabei ist es wichtig zu beachten, dass Tor beide Richtungen getrennt betrachtet.

Stell dir vor, du hast die Option auf 10 GB eingestellt. Dann ist es durchaus erlaubt, dass der Server 7 GB sendet und 8,5 GB empfängt. Erst wenn eine der beiden Richtungen die Grenze erreicht hat, schaltet sich der Server ab. Falls du also pro Monat ein Volumen von n Bytes zur Verfügung hast, empfiehlt es sich hier n/2-ε Bytes anzugeben. Denn die Anzahl an gesendeten und empfangenen Bytes ist meist ungefähr gleich.

Nachdem die vorgegebene Anzahl an AccountingMax-Bytes erreicht ist, unterbricht der Prozess alle Verbindungen und nimmt keine neuen mehr an. Die Dokumentation bezeichnet dies als &qot;hibernate". Diese Ruhe hält bis zu dem in AccountingStart konfigurierten Zeitpunkt an. Danach wird Tor wieder die Arbeit aufnehmen. Hin und wieder wundert man sich vielleicht, dass der Torprozess nicht sofort zu dem eingestellten Zeitpunkt aufwacht. Das liegt daran, dass die Entwickler Tor noch eine zufällige Zeitspanne warten lassen. Dies soll verhindern, dass u.U. alle Prozesse gleichzeitig mit der Arbeit loslegen.

Mit der obigen Option lässt sich das verbrauchte Datenvolumen recht genau steuern. Wenn du nur ein bestimmtes Volumen in einer Periode erlauben willst, könntest du natürlich auch auf die Idee kommen, die oben erwähnte Option für die Bandbreitensteuerung einzusetzen. Denn auch wenn diese herabgesetzt wird, werden weniger Bytes verbraucht. Das Netzwerk benötigt jedoch mehr eine Reihe von Servern mit hoher Bandbreite als viele Server mit niedriger Bandbreite. Daher wird empfohlen, die Bandbreite so hoch wie möglich einzustellen und mehr mit dieser Option zur Steuerung des Datenvolumens zu arbeiten. Beispiel: AccountingMax 10GB; auch hier können wieder Werte zwischen Byte und Terabyte angegeben werden.

AccountingStart
Hier werden nun die Perioden für die Kontrolle der Bandbreite eingestellt. Du kannst zwischen Tag, Woche und Monat wählen. Die folgenden Beispiele sollen die Benutzung der Option verdeutlichen:
AccountingStart day 08:00
Jeden Morgen um 8 startet die Periode, d.h. evtl. wird der Torprozess wieder zum Leben erweckt.
AccountingStart week 2 18:28
Eine Periode geht nun eine Woche. Der Start ist am zweiten Tag der Woche, also dienstags, um 18:28 Uhr. Wenn das Argument week mitgegeben wird, muss als nächste Angabe der Tag geschrieben werden. Die Tage werden dabei als Zahlen angegeben, mit einer 1 für Montag bis 7 für Sonntag. Als letztes Argument kommt dann wieder die Uhrzeit.
AccountingStart month 17 23:29
Mit dieser Einstellung wird die Periode auf monatlich gesetzt. Ähnlich wie bei der obigen wöchentlichen Periode wird als zweites Argument der Starttag mitgegeben. Im Beispiel ist das der 17. Tag des Monats. Du kannst eine Zahl zwischen 1 und 28 einsetzen.

[torrc] -- Grundeinstellungen für den Server

Nachdem ich in den vorigen Beiträgen zumeist Optionen für die Client beschrieben habe, will ich mich nun dem Betrieb eines Servers zuwenden. Falls du bislang Tor nur als Client nutzt, solltest du dir überlegen, etwas deiner Bandbreite für den Serverbetrieb zu nutzen. Die Einrichtung ist sehr einfach und schon mit einer DSL-Leitung kannst du das Netzwerk unterstützen.

Address
Hier kannst du die IP-Adresse bzw. den FQDN deines Servers angeben. In der Regel wird Tor selbst versuchen, diesen zu erraten. So dass die Option nicht unbedingt notwendig ist. Beispiel: Address anonym.example.com oder Address 172.23.0.12.
ContactInfo
In dieser Option sollte stehen, wer für den Server verantwortlich ist. Neben deiner E-Mailadresse kannst du hier auch Informationen zu deinem PGP-Schlüssel eintragen. Natürlich sind diese Angaben auch optional.
MyFamily
Falls du mehrere Server betreibst, solltest du hier den oder die Nicknames eintragen. Die Option hat einen ähnlichen Zweck wie schon NodeFamily. So wird vermieden, dass mehrere Verbindungen über deine Rechner aufgebaut werden und so evtl. die Anonymität aufgehoben werden kann. Beispiel: MyFamily paranoid, kgb
Nickname
Der Name deines Servers wird hier eingetragen. Du kannst diesen frei wählen. dabei musst du nur beachten, dass er aus maximal 19 alphanumerischen Zeichen bestehen darf. Zum Betrieb eines Servers ist diese Option notwendig. Beispiel: Nickname MeinTorServer12.
ORPort
Dies ist die zweite Option, die für den Betrieb eines Servers angegeben werden muss. Es gibt den Port an, auf dem Tor nach Verbindungen lauscht. Standardeinstellung ist hier 9001. Beispiel ORPort 9001.

Neben den oben genannten allgemeinen Einstellungen ist natürlich die Kontrolle der Bandbreite und der benutzten Exitports wichtig. Auf diese werde ich in anderen Beiträgen eingehen.

Skype liest BIOS-Daten

Ein Kollege schickte mir einen Link zum Pagetable-Blog. Im aktuellen Eintrag behauptet die Autorin Myria, dass Skype die BIOS-Daten und die Seriennummer des Motherboards ausliest.

Bei der 64-Bit-Version von Skype gibt es wohl immer eine Fehlermeldung, dass eine Datei fehlt. Myria versuchte nun, die Datei zu öffnen. Doch dies war schwerer als gedacht. Erst nachdem sie ihren Rechner zum Absturz gebracht hatte, funktionierte es. Was fand sie da? Wie die Überschrift schon vermuten lässt, nichts Gutes. Diese Datei liest alle BIOS-Daten aus und gibt diese bzw. einen Hash derselben an Skype weiter.

Dies und auch andere Nachrichten über Skype sind für mich guter Grund, die Software nicht anzufassen. Gerade auch in Firmen sollte man meiner Meinung nach äußerst vorsichtig mit dem Einsatz dieser Software sein. Vielleicht sollte mal jemand den CEO anrufen und mit ihm ein Interview mit eingeschaltetem Lügendetektor führen. ;-)

tweetbackcheck