Archiv

Archiv für die Kategorie ‘Howtos’

Vertrauenswürdige SSL-Zertifikate unter Linux

2. Januar 2010 3 Kommentare

Unter Linux gibt es verschiedenste Wege, SSL-Zertifikate zu verwalten und diesen das Vertrauen auszusprechen. Auf welche Quellen sich eine Anwendung beruft ist meist nur sehr schwer herauszufinden. Daher stelle ich hier mal ein paar Möglichkeiten vor, wie man Zertifikaten (wie z. B. der der Zertifizierungsstelle CACert) das Vertrauen aussprechen kann.

Zuersteinmal sollte man sich die Zertifikate der jeweiligen Zertifizierungsstelle im pem-Format herunterladen. Diese Dateien kann man nun (als root) im Verzeichnis /etc/ssl/certs ablegen, dabei sollte man einen aussagekräftigen Namen verwenden, damit man diese Dateien, falls nötig, wiederfindet. Damit nun das Zertifikat auch von Programmen gefunden werden kann, ist es nötig, einen speziellen Symlink auf die Zertifikats-Datei anzulegen. Dazu benötigt man zuerst den Hash-Code des Zertifikats. Diesen bekommt man z. B. mit folgendem Befehl:

mlohr@home:/etc/ssl/certs$ openssl x509 -in CACert_root.pem -noout -hash
5ed36f9

Die Zeichenkette 5ed36f9 ist der gesuchte Hash. Für den Namen des Symlinks hängt man noch .0 (Punkt Null) hintendran:

mlohr@home:/etc/ssl/certs$ sudo ln -s CACert_root.pem 5ed36f9.0

Dieses war der erste Streich, doch der zweite folgt sogleich. Da man nicht immer root ist um solche Vorhaben durchzuführen gibt es von gnupg auch eine Variante, Zertifikaten zu vertrauen (inwiefern dieser und der eben beschriebene Mechanismus zusammen arbeiten weiß ich nicht, da muss ich mich wohl nochmal schlaulesen): In seinem Home-Verzeichnis einfach die Datei ~/.gnupg/trustlist.txt erstellen und in diese Datei die Hashes der zu vertrauenden Zertifikate eintragen. Als Beispiel hier meine Datei mit den Hashes der beiden CACert-Zertifikate:

mlohr@home:~/.gnupg$ cat trustlist.txt
135CEC36F49CB8E93B1AB270CD80884676CE8F33
DB4C4269073FE9C2A37D890A5C1B18C4184E2A2D

Ich hoffe, das hilft erstmal weiter. Wenn jemand Wissenswertes zu den Themen weiß, kann er mir das gerne mitteilen, dann erweitere ich diesen Artikel – oder eben als Kommentar gerade hinterlegen. Gleiches gilt natürlich auch bei groben Fehlern etc.

KategorienAllgemein, Howtos Tags: ,

WordPress-Blog umgezogen

20. Dezember 2009 Keine Kommentare

Mein Blog ist ab sofort unter http://www.matthias-lohr.net/ erreichbar. http://blog.ml.vg/ ist allerdings weiterhin als Redirect auf die neue Adresse aktiv.

Da viele Leute Probleme haben bei einem WordPress-Umzug hier eine kleine Anleitung, wie ich (nach einigen Versuchen) den Blog umgezogen bekam:

  1. Backups! Bevor man irgendetwas an seinem Blog ausprobiert, sollte man sowohl die Dateien als auch die Datenbank sichern, um im Problemfall den alten Stand wiederherstellen zu können.
  2. Dateien auf den neuen Server kopieren. Bitte dabei beachten, dass alle Dateien entsprechende Rechte bekommen (und die wp-config.php entsprechend wenige).
  3. In der alten Installation (vorsicht, hier machen wir was kaputt!) in den Einstellungen die Seiten URL auf die neue URL ändern. Danach wird der Blog auf der alten URL nicht mehr korrekt angezeigt!
  4. Datenbank aus der alten Installation exportieren und in der neuen einfügen. Ggf. die Einstellungen in der wp-config.php anpassen, damit die neue Installation auch auf die Daten zugreifen kann.
  5. Auf dem neuen Server die Inhalte von wp-content/cache/ löschen.
  6. In der Datei wp-content/advanced-cache.php den Pfad an die aktuelle Konfiguration anpassen.

Theoretisch müsste der Blog nun wieder einwandfrei laufen. Ggf. muss man noch eigene Links in den entsprechenden Seiten anpassen, die man geschrieben hat.

Wenn noch Fragen oder Anmerkungen sind bitte einfach das Kommentarfeld nutzen, vielen Dank!

KategorienAllgemein, Howtos Tags:

Torrents selbst erstellen

Immer wieder gibt es Situationen, in denen man (vllt. weniger Privatpersonen als Firmen/Organisationen) Anderen größere Datenmengen zum Download anbieten will. Da bei zum Beispiel einem CD-Image und lediglich 100 Downloads schon 70GB Traffic anfallen (was bei einem (niedrigen) Traffic-Preis von 0,10€/GB schon 7€ kostet), sucht man manchmal Möglichkeiten, den Traffic zu vermindern bzw. auf alle Benutzer zu verteilen. Genau für diesen Fall wurde die (sehr in Verruf geratene) Technik des Torrents erfunden.

Um ein wenig mit den Vorurteilen aufzuräumen: Bittorrent an sich bezeichnet eine Technik, mit der beliebige Dateien in Netzwerken verteilt werden können. Dabei wird zwischen Seedern und Leechern unterschieden. Seeder haben die Datei komplett und bieten Sie zum Download an, Leecher haben nur einen Teil (oder garnichts) von der gewünschten Datei. Über einen Tracker wird koordiniert, wer “hat” und wer “will”. Dabei werden zwischen allen Beteiligten die Inhalte ausgetauscht, d. h. dass jeder, der einen bestimmten Teil dieser Datei hat, diesen an andere Weitersenden kann. So kann jeder, der die Datei runterlädt, die bereits heruntergeladenen Teile an Interessenten verteilen, die einen dieser Teile noch nicht hat. Dadurch teilt sich die Last eines Downloads auf alle Seeder auf (so zumindest die Theorie, in der Praxis werden natürlich schnelle Seeder bevorzugt und auch nicht unendlich viele derer angesprochen).

Eines der großen Vorteile gegenüber Torrents:

Aber das ist doch illegal!

Falsch. Torrent bezeichnet wie gesagt lediglich eine Technik. Allerdings kann jede Technik (wie auch die Post, E-Mails, “normale” Downloads) missbraucht werden, z. B. um damit illegale Inhalte zu vertreiben. Dafür kann aber die Technik “Torrent” nichts. Schließlich kann man auch ein Nudelholz missbrauchen, um jemanden zu erschlagen – aber wer hat schon Vorurteile gegen Nudelhölzer?

Ein anderes bekanntes Vorurteil:

Torrent verursacht viel mehr Traffic als normales Downloaden.

Wo? Auf Serverseite reduziert es den Traffic, wie eben beschrieben. Da aber jeder Interessent (der zum Beispiel durch eine DSL-Leitung mit dem Internet verbunden ist) mit zunehmender Vollständigkeit selbst zum Anbieter der Datei wird, erhöht sich natürlich der Traffic, den er auf seiner Internet-Leitung verursacht. Das sehen aber die Anbieter nicht gerne, daher werden Torrents manchmal sogar gesperrt. Im Endeffekt ist die Summe des Traffics, wenn man den von allen Uploads und Downloads zusammenaddiert, bei gleicher Downloadanzahl mit beiden Techniken gleich. Schließlich musste die Datei ja x mal übertragen werden. Der Traffic verteilt sich lediglich auf alle Interessenten anstatt sich am Server zu konzentriern. Allerdings gibt es einen deutlichen Vorteil: Der Server kann, z. B. durch Beschränkung der Bandbreite, zum Flaschenhals werden, wenn sich 1000 Interessenten gleichzeitig die Datei herunterladen wollen. Bei Nutzung der Torrent-Technik verteilt sich sich wie gesagt der Traffic, daher kann unter Umständen die Downloadgeschwindigkeit über Torrent wesentlich höher sein als die über direkten Download via HTTP/FTP. Dieser Vorteil wird aber durch die ständige vergrößerung von Redundanz (Mirrors, Clouds) immer verkleinert.

Nachdem nun feststeht, dass Torrent nichts “böses” ist, kann man mal ins Auge fassen, wie diese alternative Verteilungstechnik funktioniert: Wenn man eine Datei verteilen will, benötigt man einen sog. Tracker und eine zu der Datei gehörende Torrent-Datei. Ein Tracker ist eine Koordinierungsstelle, dieser weiß, dass die Datei existiert und welche Benutzer jeweils als Seeder und Leecher gerade aktiv sind. In der Torrent-Datei werden neben anderen Informationen z. B. Hashes gespeichert, um die Integrität der Datei nach erfolgtem Download sicherzustellen. Bei den meisten Linux-Distributionen gibt es ein Paket mit dem Namen bittorrent, welches ein paar nützliche Programme im Umgang mit Torrents bereitstellt. Zum Erstellen eines Torrent-Files gibt es das Programm btmakemetafile, welches als Argumente die als Torrent bereitzustellende Datei annimmt und den Tracker, über den dieser Torrent-Download koordiniert werden soll. Wenn wir z. B. eine Datei mit unserer eigenen Linux-Distribution bereitstellen wollen, sähe das ganze für ein Iso-Image mit dem Namen linux.iso folgendermaßen aus:

btmakemetafile linux.iso http://tracker.url/announce

Dabei muss “http://tracker.url/announce” durch die Announce-URL eines vorhandenen Trackers ersetzt werden (eine Liste von Trackern befindet sich hier). Die Datei wird dann kurz gescannt um die Hashes zu bilden, danach liegen linux.iso und linux.iso.torrent als Dateien im Verzeichnis. Diese Torrent-Datei muss nun an die Interessenten verteilt werden, die diese in einem Bittorrent-Client öffnen, ebenso der Bereitsteller. Der Torrent-Client merkt, dass die angefordertete Datei bereits vorhanden sind und meldet dem Tracker so die Bereitschaft zum Seeden. Nun können alle anderen, die dieses Torrent abonniert haben, anfangen herunterzuladen.

Natürlich ist es verboten, illegale Inhalte anzubieten (sowohl als Torrent, als auch als HTTP-Download, ebenso alle anderen Möglichkeiten der Verteilung). Da sich aber nicht jeder an Verbote hält, kann es vorkommen, dass ein Tracker auch mal illegale Inhalte koordiniert und damit die Verteilung unterstützt. Da bei großen Trackern pro Tag mehrere 10.000 neue Torrents hinzukommen, ist es praktisch unmöglich, diese alle auf Legalität zu überprüfen. Jeder große Tracker-Betreiber bietet einen Kontakt an, bei dem illegale Inhalte gemeldet werden können. Sollten Sie auf solche Inhalte stoßen, können Sie darüber den Betreiber des Trackers kontaktieren, der gerne das Torrent aus dem Angebot entfernt, da es auch seinem Ansehen schadet. Generell aber alle Tracker-Betreiber in die Verantwortung zu nehmen halte ich für unangemessen und sehe es als blindwütige, propagandistische Aktion an, die Unwissenheit und Unkenntnis demonstriert.

Huawei-UMTS-Sticks mit OpenWRT

23. Juni 2009 2 Kommentare

Wegen der zunehmenden Verbreitung mobiler Datendienste bzw. (möglich waren sie ja schon immer) der gesteigerten Erschwinglichkeit durch fallende Preise und bezahlbarer Flatrate-Angebote habe ich mich ein wenig mit den Möglichkeiten dieser Art des Internet-Zugangs auseinandergesetzt. Mein Ziel war es, zu klären, inwieweit UMTS (bzw. GPRS) als Ersatz für einen Kabel-DSL-Anschluss dienen kann.

Da der normale Heimanwender zu Hause mit WLAN arbeitet, wollte ich also eine Lösung erstellen, bei der über WLAN eine Mobile Datenverbindung wie GPRS oder UMTS gemeinsam durch mehrere Clients genutzt werden kann. Da die meisten dafür benutzbaren UMTS/GPRS-Empfänger als USB-Variante zu bekommen sind (die anderen wenigen sind wohl PC Cards) musste ein Router mit USB-Anschluss her, glücklicherweise lag noch ein Asus WL500g Premium bei mir herum. Eine bekannte, anpassbare Firmware zum selbstbauen oder selbstherunterladen ist OpenWRT, also suchte ich nach Möglichkeiten, einen solchen USB-Datenstick mit OpenWRT auf diesem WL500g ans Laufen zu bekommen. Als Stick hatte ich den K3520 von Vodafone zur Verfügung, der nichts anderes als ein schön verpackter Huawei E620 ist (soweit ich informiert bin).

Eine sehr schöne Anleitung, die (fast) problemlos funktionierte findet man unter http://josefsson.org/openwrt/dongle.html. Die Nutzung von anderen Huawei UMTS/GPRS-Modems stellt kein Problem dar, man muss lediglich die jeweils passende USB-ProductID herausfinden (z. B. über ein normales Linux, den Stick dort einstecken und lsusb ausführen). Fast jedes im Handel erhältliche und von den großen Mobilfunk-Anbietern wie o2, T-Mobile, E-Plus und Vodafone subventioniertes Gerät ist eine umbenannte und anders verpackte Huawei-Karte.

Das einzige Problem wird durch diesen komischen Dual-Mode der USB-Geräte verursacht: Die Huawei-Sticks melden sich (je nach Lust und Laune?) entweder als Massenspeicher oder als USB-Modem an. In den OpenWRT-Quellen gibt es ein kleines Tool, welches dem Gerät mitteilen kann, dass der Modem-Modus gewählt werden soll – allerdings hardcoded auf die Produkt-ID 0×1001, welche (so glaube ich) für das E220 zutrifft, aber nicht für das E620 (0×1003). Interessanterweise steht der Code für die Parameter-Nutzung bereits da, ist aber auskommentiert…

Um dieses Manko zu beseitigen, habe ich mir das Paket selbst noch einmal erstellt, diesmal mit der Unterstützung für Parameter. Wer möchte, kann sich das Paket herunterladen, per SCP oder wget auf seinen Router kopiern und mit opkg install das Paket installieren (bitte vorher das alte Paket deinstallieren). Hier noch einmal die Befehle für das Entfernen des alten Pakets (wenn es denn installiert ist), der Installation des neuen Pakets und ein Beispiel zur Nutzung des Programms im Überblick:

opkg remove huaweiaktbbo # Altes Paket entfernen
wget http://blog.ml.vg/wp-content/uploads/2009/06/huaweiaktbbo_1_mipsel.ipk # gepatchtes Paket herunterladen
opkg install huaweiaktbbo_1_mipsel.ipk # Neues Paket installieren
huaweiAktBbo 0x12d1 0×1001 # Benutzung des Programm, ProductID bitte anpassen

Nach diesen Handgriffen war es kein Problem mehr, anhand der oben verlinkten Anleitung ins Internet zu kommen. Selbst mit GPRS ist die Geschwindigkeit zum Surfen noch akzeptabel, schnell ist jedoch was anderes. UMTS konnte ich (mangels Netz) noch nicht testen, wird aber demnächst erfolgen. Latenzen habe ich zwischen 1000 und 2500ms gemessen, Bandbreite hat sich zwischen 20 und 35 KB/s bewegt.

Fazit: In ländlichen Gebieten oder für chronische Chatter ist diese Lösung ganz praktikabel, da der Datendurchsatz höher ist als zuerst erwartet, aber lange nicht so berauschend wie bei “echtem” DSL. Zum Chatten, Bloggen und weiterem Surfen durchs Web ist diese Lösung akzeptabel, die meisten Seiten sind nach 5 Sekunden sichtbar. Wer die Möglichkeit eines Kabel-DSL-Anschlusses hat, sollte diesen aber auf jeden Fall bevorzugen. Größere Downloads erfordern viel Geduld, außerdem sollte man Vorsichtig sein, da viele Anbieter den Traffic auf 5GB begrenzen (trotz der Benennung “Flatrate”). Wer darüber z. B. per SSH Server administrieren will, steht wegen der sehr hohen Latenzzeiten auf verlorenem Posten. Der Multi-User-Betrieb funktioniert auch problemlos, bei gleichzeitigen Datenübertragungen dauert es halt etwas länger. Bitte beachten: Die Anbieter unterscheiden tariflich zwischen Single- und Multiuser-Tarifen. Das ist zwar nicht leicht festzustellen, ob ein oder mehrere Geräte über die gleiche Verbindung online gehen, aber es geht. Inwiefern das von Provider-Seite eingesetzt wird weiß ich nicht.

Ein Erfahrungsbericht zu UMTS folgt, sobald ich in den Genuss dieser Technik gekommen bin.

Hier noch der Link zum Download des gepatchten huaweiAktBbo-Pakets.