Noch im Teststadium, doch zeigt Bittorrent Sync bereits jetzt einiges Potenzial für das Synchronisieren von Dateien zwischen mehreren Rechnern und über Netzwerkgrenzen hinweg.
Bittorrent ist nicht nur eine P2P-Software, die das gleichnamige Protokoll verwendet, um Dateien recht fix zwischen mehreren Rechnern zu verschieben, sondern auch der Name einer Firma, die verschiedene Produkte auf Basis dieser Technologie entwickelt. Eines davon heißt Bittorrent Sync [1], befindet sich aktuell noch im Alphastadium und läuft auch unter Linux. Bisher gibt es zwar ein Versprechen, die Software stets frei zu verteilen [2], doch steht sie bisher weder unter einer freien Lizenz noch ist sie quelloffen.
Neben normalen Nutzern könnten sich auch Admins für sie interessieren, gilt sie doch als Alternative zu einer anderen bekannten proprietären Software: Dropbox. Anders als Dropbox kommt Bittorrent Sync komplett ohne Server von Drittanbietern aus, weil jeder Rechner zugleich als Client und Server funktioniert. Beim kostenlosen Filesharing stoßen die User an kein 5-GByte-Limit, sondern tauschen beliebig große Datenmengen in vielen Dateien aus – Foreneinträge sprechen von einer Million. Die verwendete Bandbreite lässt sich drosseln.
Die Software läuft plattformübergreifend und synchronisiert Dateien zwischen Rechnern im lokalen Netzwerk, aber auch über das Internet. Dazu setzt sie auf NAT Traversal und UPnP Port Mapping. Auch ein benutzerfreundlicher Rsync-Ersatz kann die Software sein: Im Gegensatz zum freien Veteranen klappt das Synchronisieren sogar schneller, wenn mehrere Rechner daran teilnehmen – ein Vorteil in Unternehmen. Zudem überträgt Sync mehrere Dateien parallel.
The Key, the Secret
Die Daten verschlüsselt Bittorrent Sync mit AES und einem 256-Bit-Schlüssel, den es auf Basis eines 21-Byte-Schlüssels – Secret genannt – erzeugt. Jede Sync-Instanz generiert aus »/dev/random« ein neues Secret, das es mit Base32 enkodiert, um es für die Nutzer lesbar zu machen. Wer mehrere Ordner freigeben will, muss für jeden ein eigenes Secret generieren, das er an andere Sync-Teilnehmer verteilt.
Tauschhandel
Zwei Sync-Clients mit gleichem Secret finden sich lokal, indem sie Broadcast-Pakete schicken (Local Peer Discovery) und Informationen über andere bekannte Clients weitergeben (Peer Exchange, PEX). Zudem lässt sich für den Client ein fester Shared Folder anlegen.
Auch die aus dem P2P-Bereich bekannten verteilten Hashtabellen (Distributed Hash Tables, DHT) nutzt Bittorrent Sync auf expliziten Wunsch des Anwenders. Die Software verpackt das Secret mit SHA-2 und schickt es an die DHT, um Sync-Zwillinge im Netz aufzuspüren. Die Entwickler empfehlen jedoch, Tracker zu verwenden. Diese seien nicht nur schneller, sondern fungieren auch als STUN-Server und ermöglichen so eine direkte Verbindung zu Rechnern, die sich hinter einer Firewall befinden.
Ist diese sehr restriktiv, besteht die Option, einen Traffic-Relay-Server von Bittorrent zu verwenden. Die Betreiber versichern, die verschlüsselt gesendeten Daten nicht ausforschen zu können, sie erheben jedoch anonyme Nutzungsdaten [3], zu denen das SHA-2-verpackte Secret gehört, das sie nach eigener Aussage aber nicht speichern.
Im Einsatz
Sync lässt sich einfach aufsetzen, die Daten wandern dank Bittorrent-Protokoll zügig zwischen den Rechnern hin und her. In einem Unternehmen kann die Software zum Beispiel automatisch die Mobilrechner der Mitarbeiter mit dem Datenbestand auf dem Firmenserver abgleichen – Verbindungen in die Außenwelt zu Trackern und DHT kappt der Admin bei Bedarf.
In diesem Szenario helfen die speziellen Read-only-Secrets: Dank dieser Einbahnstraße schickt ein Firmenrechner seine Dateien zwar an andere Sync-Instanzen, übernimmt dort vorgenommene Änderungen aber nicht. Schließlich gibt es noch One-Time-Secrets. Sie gelten nur für einen einzigen Sync-Vorgang, das Gegenüber muss sie im Laufe von 24 Stunden aktivieren.
Wer zuletzt schreibt, bleibt
Angenommen Sync läuft mit demselben Secret auf drei Rechnern. Löscht ein Teilnehmer eine Datei, verschwindet diese auch aus den Sync-Ordnern der anderen Nutzer, landet aber in einem Mülleimer, dem versteckten Ordner ».SyncTrash« . Über ».SyncIgnore« [4] besteht zudem die Möglichkeit, bestimmte Dateien im Sync-Ordner vom Tausch auszunehmen.
Ändert ein Nutzer eine Datei, wird die neuere Version automatisch auf die anderen Rechner übertragen. Führen mehrere unterschiedliche Dateien denselben Namen, hebt Bittorrent Sync nur die zuletzt ergänzte Version auf und schiebt ältere Varianten nach ».SyncTrash« – das ließe sich sicherlich intelligenter lösen und ist ein Kritikpunkt. Eine Versionierung ist zwar bereits in Planung, aber noch nicht umgesetzt.
Schaltet ein Sync-Teilnehmer seinen Client während des Synchronisierens aus, wird die halbfertige Datei zu einem späteren Zeitpunkt vollständig synchronisiert – es sei denn, jemand verändert sie inzwischen.
Eins, zwei, Sync
Wer Sync beispielsweise unter Ubuntu 12.10 einsetzen will, lädt die passende Tar.gz-Datei für 32- oder 64-Bit-Systeme herunter und entpackt sie am besten in einen lokalen Ordner, der etwa »~/.btsync« heißen darf. Im Test kam Sync in Version 1.0.134 zum Einsatz.
Die entpackte Binärdatei lässt sich wie gewohnt über »./btsync« ausführen. Nach Eingabe von »http://localhost:8888« in die URL-Leiste des Browsers landet der Linux-Anwender auf einer grafischen Oberfläche für Sync, über die er Ordner freigibt, Secrets generiert und diverse Einstellungen an existierenden Tauschordnern vornimmt.
Konfiguration auf Knopfdruck
Der Knackpunkt: In der Standardeinstellung dürfen alle Browser im LAN über die IP-Adresse auf die Sync-Weboberfläche eines Linux-Clients zugreifen, um dort nach Belieben Ordner freizugeben – ganz klar eine Sicherheitslücke. Abhilfe schafft das Anlegen einer Konfigurationsdatei im Json-Format (Listing 1). In diese trägt der Sync-Betreiber ein Passwort ein oder deaktiviert die Weboberfläche gleich ganz. Auch der Storage-Pfad lässt sich hier ändern (Abbildung 1).
Listing 1
Sync mit Konfigurationsdatei starten
01 // Sync in einen lokalen Sync-Ordner entpacken 02 // und in diesen Ordner wechseln 03 cd ~/.Sync-Ordner 04 // eine Dummy-Konfigurationsdatei erzeugen 05 ./btsync --dump-sample-config > sync.conf 06 // Konfigurationsdatei anpassen 07 vi sync.conf 08 // btsync mit neuer sync.conf starten 09 ./btsync --config sync.conf

Abbildung 1: In der erzeugten Beispielkonfiguration passt der Admin unter Linux den Storage-Pfad sowie das Passwort für den Zugriff auf die Weboberfläche an. Diese lässt sich auch komplett deaktivieren.
In die »sync.conf« lassen sich unter Linux noch weitere Parameter eintragen (Listing 2). Stellt der Admin die Option »disk_low_priority« auf »false« , legt Sync auf schwächeren Systemen womöglich andere Anwendungen lahm. Das Deaktivieren der Datenverschlüsselung in einem LAN sowie der Einsatz von TCP statt UDP bringen einen Performancegewinn auf Low-End-Geräten.
Nach dem Start gilt es, im Browser-Interface über einen Klick auf »Add Folder« einen Tauschordner einzurichten und ein Secret zu erzeugen (Abbildung 2). Letzteres sollte sich der Anwender notieren und auf sicherem Wege (etwa über eine verschlüsselte E-Mail) an den Tauschpartner weitergeben. Der wiederholt nun den Prozess auf seinem Client, erzeugt dort aber kein neues Secret, sondern verwendet das eben generierte, um die beiden Sync-Instanzen zu verknüpfen.
Im Test klappte das lokal und – wenn auch deutlich langsamer – über das Internet. Läuft der verschlüsselte Datenverkehr über einen Tracker, kennzeichnet das Browser-Interface dies übrigens mit dem Symbol einer Wolke.
Wer den direkten Austausch mehrerer Rechner über LAN-Grenzen hinweg bevorzugt, muss auf beiden Gateways Ports weiterleiten und gegebenenfalls die Firewall neu einstellen. Das ist nicht nur aufwändig, sondern in öffentlichen Netzen auch nicht immer möglich, detailliertere Infos dazu gibt [5].
Für Admins besteht zudem die Möglichkeit, Sync komplett über die Kommandozeile zu betreiben. Der Aufruf »./btsync –help« zeigt die Optionen. Um Sync zu stoppen, hilft nur die beherzte Eingabe von »killall btsync« .
Listing 2
sync.conf
01 "disk_low_priority": true 02 "lan_encrypt_data": true 03 "lan_use_tcp": false 04 "rate_limit_local_peers": false

Abbildung 2: Über das Browserfenster erzeugt der Admin ein neues Sync-Secret oder trägt ein bereits existierendes ein, im Feld darunter legt er den Tauschordner fest.
Autostart
Soll der Dienst zusammen mit dem System starten, lässt er sich entweder manuell als »btsync.desktop« -Datei unter »$HOME/.config/autostart« anlegen oder unter Ubuntu über die Anwendung »Startprogramme« einrichten. In die Zeile »Befehl« trägt der Nutzer dann
/home/Benutzer/.btsync/btsync --config /home/Benutzer/.btsync/sync.conf
ein. Ein »ps aux | grep “bt”« nach einem Neustart des Rechners schaut nach, ob Sync läuft.
Fazit
Einige Nachteile von Sync sind offensichtlich, andere weniger. Einer Closed-Source-Software sowie dem vagen Versprechen künftiger Kostenfreiheit vertrauen zu müssen gehört zur ersten Kategorie. Gerät ein Schlüssel in falsche Hände, greifen womöglich Dritte auf den Tauschordner zu. Weniger offensichtlich ist der im Artikel erwähnte Umgang mit zwei völlig verschiedenen Dateien gleichen Namens – hier sollten die Macher nachbessern, weil ein Datenverlust für die Nutzer droht.
Die Default-Sicherheitseinstellungen für den Zugriff auf das Webinterface sind problematisch, der Weg über die Konfigurationsdatei unter Linux ist wenig benutzerfreundlich. Einem Secret lassen sich zudem nicht mehrere Tauschordner zuweisen, was schade ist. Große Dateien überträgt Sync komplett neu, wenn die Änderungen den vorderen Bereich betreffen, andernfalls schickt es nur die geänderten Blöcke (Chunks).
Doch Sync bringt auch einige Vorteile mit. Verbreitet man den Schlüssel, lässt sich schnell und vollautomatisch ein plattformübergreifendes Sync-Netzwerk aufbauen, das dank Tracker- und Relay-Server auch über NAT- und Firewall-Grenzen hinweg funktioniert.
Temporäre und Read-only-Shares setzt der Admin ein, wenn er keine Änderungen an den freigegebenen Dateien wünscht. Sync verkraftet parallele Up- und Downloads und synchronisiert Dateien sogar schneller, wenn es mehrere Teilnehmer gibt.
Noch befindet sich die Software im Alphastadium, was sie für einige Admins sicher ausschließt. Anderen, die Daten wegen Sicherheitsbedenken oder ihres Umfangs nicht einer Cloud anvertrauen möchten, dürfte Sync auch schon im Frühstadium gefallen. Während Techniken wie NAT Traversal und UPnP Port Mapping Netzwerkbetreibern womöglich den Schweiß auf die Stirn treiben, freuen sich normale User über den umstandslosen und verschlüsselten Austausch von Dateien ohne umständliche Port-Freigaben.
Infos
- Bittorrent-Webseite: http://labs.bittorrent.com/experiments/sync.html
- Sync soll kostenlos bleiben: http://forum.bittorrent.com/topic/8756-future-pricing-plan/#entry28600
- Übermittelte Nutzerdaten: http://forum.bittorrent.com/topic/19192-first-pb/
- Sync-Ignore einrichten: http://forum.bittorrent.com/topic/16410-bittorrent-sync-faq/
- Ports weiterleiten: http://forum.bittorrent.com/topic/19214-trouble-with-rotuer/#entry50004





