www.fabiankeil.de/blog-surrogat/2007/03/07/vidalia-freebsd-port.html
Vidalia ist eine auf Qt4 basierende grafische Oberfläche für Tor. Vidalia soll vor allem Tor-Neulingen den Einstieg erleichtern und macht daher nur einen kleinen Teil der Tor-Funktionen zugänglich, ist aber auch dann nützlich, wenn man Tor gar nicht über Vidalia steuern, sondern lediglich bei der Arbeit beobachten möchte.
Vidalia stellt dazu die von Tor genutzte Bandbreite grafisch dar und markiert die Positionen der Tor-Router auf einer Weltkarte. Bestehende Verbindungen zwischen Tor-Routern werden durch Linien gekennzeichnet, zu den einzelnen Tor-Routern lässt sich ein Teil der zugehörigen Informationen von den Directory-Servern anzeigen.
Die Vidalia-Installation unter FreeBSD hatte ich schon mal vor etwa einem halben Jahr versucht, damals war Qt4 aber noch nicht in den Ports, die Installation artete in Gefrickel aus und wurde erstmal verschoben.
Seit Anfang Februar ist Qt4 über die Ports verfügbar, von der ausführlichen Anleitung ermutigt, habe ich es erneut versucht, diesmal erfolgreich:
Vollständig getestet habe ich den Port nur unter FreeBSD 6.2, ich vermute jedoch, dass er auch unter FreeBSD 5.x und 7 funktioniert. Ich habe ihn heute als ports/110034 eingereicht, er sollte in Lauf der nächsten Tage als net-mgmt/vidalia erscheinen.
Update 2007-03-09: Nach einer Korrektur der Abhängigkeiten (qt4-linguist fehlte in der ersten Version) ist Vidalia heute in FreeBSDs Ports-Collection angekommen.
Vidalia benötigt eine Desktop-Umgebung mit systray-Unterstützung, Enlightenment hat keine, da der Rasterman nicht all zu viel von den systray-Icons hält.
Dass Vidalia einen systray-Icon hat war mir bereits von den Screenshots bekannt, dass es ohne den systray-Icon nicht funktioniert, weil die Fenster unzugänglich sind, geht aus den Bildern aber nicht klar hervor und sorgte für viel Freude bei der Fehlersuche.
Testweise habe ich schließlich mal wieder das Krap Desktop Environment angeworfen, wo die Vidalia-Zwiebel dann endlich erschien und den Weg zu den Fenstern freigab.
KDE ist natürlich keine Lösung, glücklicherweise gibt es aber auch systray-Provider, die unabhängig vom Window-Manager sind.
Ich habe mir einige angesehen und bin bei stalonetray hängengeblieben. stalonetray überzeugt mit einem lässigen Namen und arbeitet gut genug mit Enlightenment zusammen, um Größe und Position zwischen Neustarts zu behalten.
Die Popups kommen nicht im E17-Design und sind dementsprechend häßlich, ich vermutet aber, dass dafür Qt verantwortlich ist.
Am liebsten wäre mir ein systray-Plugin für gkrellm, doch diese Marklücke scheint noch offen zu sein. Noch schöner wäre es, wenn Vidalia ein eigenständiges Fenster hätte, der Umweg über den Icon ist jedenfalls recht umständlich.
Der Qt-Abhängigkeit hat Vidalia wohl auch die Überfettung zu verdanken, auf meinem Rechner benötigt es im inaktiven Zustand bescheidene 40 MB Arbeitspeicher.
Beachtenswert ist auch der Bandbreitengraph: er mache zwar einen recht verpixelten Eindruck, ist aber derart effizient implementiert, dass er im Vollbild einen 1.5-Giga-Hertz-Prozessor auslastet – selbst wenn praktisch kein Tor-Verkehr darzustellen ist.
Vidalia kann entweder Tor selber starten und die komplette Kontrolle übernehmen, oder sich mit einem bereits vorhandenen Tor-Prozess verbinden. Bei mir macht es letzteres, da Tor in einem FreeBSD-Jail läuft und ich Vidalia außerdem nur für die bunten Bilder benötige.
Die aktuelle Vidalia-Version (0.0.11) bietet seltsamerweise keine Möglichkeit, die IP-Adresse des Tor-Control-Ports über die grafische Oberfläche zu ändern, dem FreeBSD-Port habe ich daher eine TOR_CONTROL_ADDR-Variable spendiert. Kompiliert mit:
make TOR_CONTROL_ADDR=10.0.0.2
arbeitet Vidalia ohne Probleme mit dem Tor-Prozess im Jail zusammen:
fk@TP51 ~ $sudo pfctl -ss -r self tcp privoxy-jail:8118 <- privoxy-jail:52495 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:8123 <- privoxy-jail:63134 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:52495 -> privoxy-jail:8118 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:63134 -> privoxy-jail:8123 ESTABLISHED:ESTABLISHED self tcp tor-jail:9050 <- privoxy-jail:56132 ESTABLISHED:ESTABLISHED self tcp tor-jail:9050 <- privoxy-jail:55500 ESTABLISHED:ESTABLISHED self tcp tor-jail:9050 <- privoxy-jail:55011 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:56132 -> tor-jail:9050 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:55500 -> tor-jail:9050 ESTABLISHED:ESTABLISHED self tcp privoxy-jail:55011 -> tor-jail:9050 ESTABLISHED:ESTABLISHED self tcp tor-jail:9051 <- tor-jail:59978 ESTABLISHED:ESTABLISHED self tcp tor-jail:59978 -> tor-jail:9051 ESTABLISHED:ESTABLISHED self tcp tor-jail:59613 -> tor-jail:9051 ESTABLISHED:ESTABLISHED self tcp tor-jail:9051 <- tor-jail:59613 ESTABLISHED:ESTABLISHED self tcp tor-jail:65167 -> TP51:57376 -> croup.uncg.edu:9001 ESTABLISHED:ESTABLISHED self tcp tor-jail:58743 -> TP51:65418 -> c48185.upc-c.chello.nl:9001 ESTABLISHED:ESTABLISHED self tcp tor-jail:53055 -> TP51:64929 -> h872384.serverkompetenz.net:9001 ESTABLISHED:ESTABLISHED self tcp TP51:58966 -> tor.fabiankeil.de:22 ESTABLISHED:ESTABLISHED
Vidalia selbst kompiliert auf meinem Rechner in etwa fünf Minuten, bei Bau der Qt4-Ports sollte man jedoch viel Geduld mit bringen, oder gleich zu den Binär-Pakete greifen. Vidalias vollständige Abhängigkeiten (mit abgewählter Tor-Abhängigkeit) halten sich im Rahmen:
fk@TP51 ~ $pkg_info -r -x vidalia Information for vidalia-0.0.11: Depends on: Dependency: libdrm-2.0.2 Dependency: perl-5.8.8 Dependency: qt4-uic-4.2.2 Dependency: qt4-rcc-4.2.2 Dependency: libiconv-1.9.2_2 Dependency: qt4-moc-4.2.2 Dependency: pkg-config-0.21 Dependency: freetype2-2.2.1_1 Dependency: expat-2.0.0_1 Dependency: gettext-0.14.5_2 Dependency: qmake-4.2.2 Dependency: png-1.2.14 Dependency: fontconfig-2.3.2_6,1 Dependency: glib-2.12.9 Dependency: qt4-corelib-4.2.2_2 Dependency: xorg-libraries-6.9.0_1 Dependency: qt4-xml-4.2.2_1 Dependency: qt4-network-4.2.2_1 Dependency: qt4-gui-4.2.2_1 Dependency: qt4-libQtAssistantClient-4.2.2_1 Dependency: qt4-linguist-4.2.2_1
Abgesehen von den Qt-Ports werden sie auf den meisten Rechnern bereits vorhanden sein.