NFsec Logo

Instant Messenger – EKG + aspell + crypt

03/10/2009 w Techblog Brak komentarzy.  (artykuł nr 168, ilość słów: 858)

W

dobie komunikatorów IM (Instant Messenger), które umożliwiają wszechstronną komunikację w Internecie, przesyłanie wiadomości tekstowych czy plików istnieje wiele wersji graficznych, które nie nadają się do instalacji typowo serwerowych (środowisko tekstowe).

Jednak istnieje projekt o mylącej nazwie: EKG, który pozwala na wykorzystanie wolnej konsoli naszego serwera. Eksperymentalny Klient Gadu-Gadu jest otwartym klientem Gadu-Gadu dla systemów uniksowych (m.in. Linuks, *BSD, SunOS, Solaris, MacOS X). Projekt ten został napisany na podstawie informacji uzyskanych przez badanie pakietów wysyłanych między klientem, a serwerem oraz informacji nadesłanych przez użytkowników. Jego instalacja jest prosta, oraz pozwala na użycie wielu funkcji ułatwiających lub oferujących poprawną komunikację. Artykuł ten pokaże jak zainstalować klienta EKG wraz z obsługą aspell, która umożliwi nam sprawdzanie błędów ortograficznych podczas konwersacji z inną osobą.

Zawsze aktualne źródło EKG możemy pobrać wydając polecenie:

wget http://ekg.chmurka.net/ekg-current.tar.gz

Zanim przejdziemy do instalacji programu należy się upewnić, że posiadamy w naszym systemie zainstalowane biblioteki ncurses oraz readline. W Slackware wystarczy wydać polecenie: ls -al /var/log/packages/ | grep ncurses i to samo polecenie z readline. Jeśli jakaś biblioteka nie będzie zainstalowana wystarczy ją doinstalować poleceniem installpkg biorąc pakiet z sekcji L naszej płyty ze Slackiem lub serwera FTP. By nasz komunikator posiadał możliwość sprawdzania pisowni musimy także posiadać zainstalowany pakiet: aspell (znajduje się także w sekcji L). Po spełnieniu powyższych reguł możemy przejść do instalacji:

tar zxvf ekg-current.tar.gz
cd ekg-[data uaktualnienia]
./configure --enable-aspell --enable-ioctld --enable-openssl
make
make install

W celu użycia lub pominięcia niektórych funkcji wystarczy wydać polecenie ./configure –help by uzyskać bardziej pełne informacje. Kolejnym krokiem jest instalacja polskiego słownika, na bazie którego aspell będzie sprawdzał poprawność pisowni. Polski słowik obsługiwany przez aspell możemy pobrać z adresu: http://www.kurnik.pl/slownik/ort

bzip2 -d alt-aspell-pl-[data uaktualnienia].tar.bz2
tar -xvf alt-aspell-pl-[data uaktualnienia].tar
cd alt-aspell-pl-[data uaktualnienia]
./configure
make 
make install

Podczas wydawania polecenia make w zależności od szybkości maszyny czas oczekiwania na zakończenie procesu jest różny (na Intel Celeronie 366 Mhz – 734 Bogomipsy – czas oczekiwania wynosił około 1,5 minuty). Zainstalowany słownik zawiera ponad 3 miliony słów współczesnego języka polskiego. Nad rozwojem słownika pracuje intensywnie kilka osób z pomocą dużej społeczności graczy gry literaki (popularnej polskiej gry słownej). Na tym kończy się proces instalacji. Teraz każdy użytkownik serwera, lub sam administrator będą mogli korzystać z IM poprzez wydanie komendy: ekg

Używanie ekg jest na tyle intuicyjne, że nie powinno nikomu sprawić problemów. Podczas pierwszego uruchomienia program sam powie, jak go skonfigurować jeśli się jest nowym użytkownikiem czy już posiada się konto w sieci Gadu-Gadu. Interfejs jest wzorowany na irssi (klient IRC). Tak jak w samym Linuksie istnieje możliwość dopełniania komend klawiszem TAB. Wszystkie komendy są dostępne poprzez komendę: help. Program można skonfigurować pod wieloma względami, a wszystkie możliwe ustawienia, które zmienia się poleceniem “set”, są opisane w katalogu dokumentacji w pliku vars.txt. W celu włączenia obsługi sprawdzania pisowni wklepujemy ciąg komend:

/set aspell 1
/set aspell_lang pl
/set aspell_encoding iso8859-2
/save

Nasz moduł sprawdzania pisowni od tej chwili powinien działać. Objawia się on tym, że podczas dialogu z konkretną osobą źle wpisane wyrazy są podkreślane, w ten sposób widzimy, że popełniamy błędy oraz uczymy się poprawnej pisowni. Innymi opcjami, którymi warto się zainteresować w EKG to: auto_away, auto_back, auto_find, sort_windows. Oczywiście należy przejrzeć całą dokumentację programu. Jeśli jesteśmy zainteresowani także obsługą innych protokołów oprócz Gadu-Gadu powinniśmy zainteresować się projektem EKG2, który ponad to obsługuje IRC oraz Jabber.

Bonus:EKG posiada możliwość obsługi szyfrowanych sesji. Szyfrowanie to jest zgodne z klientami PowerGG oraz Kadu. Bazuje ono na zasadzie wykorzystania pary kluczy. Każdy użytkownik posiada dwa klucze: prywatny i publiczny. O ile do klucza prywatnego nikt poza właścicielem nie powinien mieć dostępu, o tyle klucz publiczny może być (a nawet powinien być) udostępniany innym osobom, z którymi pragniemy przeprowadzać szyfrowane sesje. Klucze są przechowywane w katalogu ~/.gg/keys w formacie PEM (do szyfrowania potrzebne jest oprogramowanie OpenSSL); klucz prywatny w pliku “private.pem”, a klucz publiczny w plikach odpowiadających numerowi rozmówcy – także z rozszerzeniem .pem np. 31337.pem. W celu przygotowania szyfrowania musimy pierw wygenerować klucze – w tym celu wydajemy polecenie:

/key -g

Klucze muszą posiadać wszystkie osoby, z którymi chcemy przeprowadzać szyfrowane sesje. Klucze zostaną zapisane na naszym koncie w katalogu .gg/keys. Ich obecność możemy sprawdzić zaraz po wygenerowaniu z pozycji ekg poleceniem: /exec ls -al ~/.gg/keys. W celu szyfrowania wiadomości z danymi osobami, musimy umieścić ich klucze publiczne w ~/.gg/keys pod postacią numer_gg_osoby.pem. Analogicznie postępujemy względem danej osoby – musimy wysłać jej własny klucz publiczny (typowa wymiana kluczy) – należy pamiętać by pod żadnym pozorem nikomu nie wysyłać klucza prywatnego. W celu wysłania klucza wydajemy polecenia:

/set encryption 1
/save
/key -s numer_gg_osoby

Ważnym elementem jest tutaj ustawienie mechanizmu kryptograficznego na aktywny (set encryption 1), ponieważ jeśli jest on wyłączony podczas wysyłania kluczy użytkownik dostaje zwykłą wiadomość zawierającą klucz publiczny drugiej osoby i musi ją zapisać ręcznie. Natomiast jeśli mechanizm jest aktywny podczas przesyłania kluczy – są one zapisywane automatycznie w odpowiednim katalogu pod postacią odpowiedniego pliku. Posiadane klucze możemy wyświetlić komendą:

/key -l

Dalsze procesy będą postępować automatycznie. Z osobami, których posiadamy klucze publiczne (a oni nasze) przeprowadzane rozmowy będą szyfrowane (nagłówek jest oznaczony tekstem “szyfrowane”), a z osobami których kluczy nie posiadamy – będą przeprowadzane normalne sesje połączeniowe.

Więcej informacji: Gadu-Gadu, Crypt, EKG Docs, EKG2

Kategorie K a t e g o r i e : Techblog

Tagi T a g i : , , , , , ,

Komentowanie tego wpisu jest zablokowane.