Jeśli denerwuje cię support FiSH'a dla XChat'a, a nie chce ci się kompilować plugina do irssi, to może powinieneś zainteresować się dirtem. Dirt to jest proxy do IRC które obsługuje kodowanie zgodne z FiSHem, dzięki czemu można korzystać z jakiegokolwiek klienta, aby móc komunikować się w bezpieczny sposób. Z takim narzędziem nie ma znaczenia, czy do Twojego klienta istnieje plugin FiSH'a czy nie, wszystko jest filtrowane przez proxy – to, co dostajesz jest rozkodowane, a to, co wysyłasz jest kodowane. Proste i użyteczne.
Jakoże dirt jest dopiero w wersji 1.0 alfa, kilka funkcji jeszcze nie ma, kilka prawdopodobnie nie działa jeszcze tak jak powinno. Nie spotkałem się jeszcze z żadnym bugiem (korzystam z niego dopiero parę godzin), ale jedno z głównych ograniczeń to brak obsługi kodowania/dekodowania topic'a kanału. Domyślnie topic będzie ustawiany w postaci zdekodowanej przez cały czas, co jest oczywiście niedopuszczalne i ogólnie insecure ;), oprócz tego nie będzie widać zakodowanych topiców. Postanowiłem więc coś na ten temat zaradzić. ;)
Mój patch którego możesz pobrać na dole tego posta naprawia ten problem w prosty sposób – przy włączonym kodowaniu (/encon) topic przy ustawianiu będzie najpierw kodowany, natomiast przy wyłączonym kodowaniu (/encoff) topic będzie ustawiany w postaci „czystej”.
Instalacja
Aby zainstalować patcha, potrzebne ci będą przede wszystkim źródła dirt'a. Rozpakuj źródła do jakiegoś katalogu (do rozpakowywania polecam atool'a):- antek@redrazor ~/dev/source $ aunpack dirt-1.0.0a25-source.zip
- (...)
- antek@redrazor ~/dev/source $ cd dirt-1.0.0a25-source
- antek@redrazor ~/dev/source/dirt-1.0.0a25-source $
Następny krok to ściągnięcie mojego patcha (link na końcu posta) i przegranie go do katalogu z plikami .cpp i .h. Teraz można zaaplikować patcha:
- antek@redrazor ~/dev/source/dirt-1.0.0a25-source $ patch -b -p0 < dirt-topic-a1.patch
- patching file proxy.cpp
Przełącznik -b spowoduje stworzenie kopii patchowanego pliku (w tym przypadku to jest proxy.cpp). Jeśli wystąpi jakiś błąd, oryginalny plik będzie znajdował się w pliku proxy.cpp.orig. Po spatchowaniu proxy.cpp można skompilować program wywołując:
- antek@redrazor ~/dev/source/dirt-1.0.0a25-source $ make unix
co spowoduje stworzenie programu dirt. Niekompletna dokumentacja może utrudnić konfigurację proxy, dlatego wspomnę że dirt korzysta z portu 1088, na którym czeka na połączenia SOCKS4, oraz z portu 6666 na który można się łączyć przy pomocy klientów irc bez obsługi proxy SOCKS. Dla przykładu, XChat posiada support dla SOCKS (Settings->Preferences->Network setup).

Nie udało mi się zmusić irssi do skorzystania z proxy SOCKS, ale wystarczyło połączyć się z localhost'em na porcie 6666 aby otrzymać komunikat:
- 22:40 -!- Dirt 1.0.0 alpha 25
- 22:40 -!- Use /dirt jump [server] [port] to connect to IRC
co utwierdziło mnie w przekonaniu, że proxy działa wyśmienicie. Miłego szyfrowania i nie dajcie się złapać. ;)
Patch do ściągnięcia stąd.