Zróbmy to razem – komunikator idealny

Czy istnieje idealny protokół komunikacji cyfrowej?

Wolny od szpiegowania, bezpiecznie szyfrowany, zdecentralizowany, wieloplatformowy, z otwartym źródłem? Nie wiem. Bardzo możliwe – Signal, Telegram, Whatsapp rywalizują o to miano. Ale każdy ma minusy, zwłaszcza jeden łączy je wszystkie. Komunikator ma sens tylko wtedy, gdy twoi znajomi z niego korzystają. Sam zdołałem przekabacić swoich na Telegram chwilę przed wiadomością, że jego szyfrowanie jest dalekie od ideału. Ale nie chcę znowu skakać, bo ktoś zostanie tu, komuś nie chce się instalować, ktoś zgubił telefon. Często cała operacja kończy się wieloma znajomymi na wielu portalach oraz bólem głowy z ogarnianiem takiego bałaganu. W dzisiejszym odcinku “Zróbmy to razem”, za pomocą IRC, Bitlbee oraz ZNC postaramy się rozwiązać ten problem.

Poradnik pisany spod Arch Linux’a, zainstalowanego na moim VPS jak i stacjonarnym. Konfiguracja oraz hierarchia plików na innych systemach może się różnić, natomiast proces będzie podobny. Ponownie jest to około 1000 słów i ~30-40 minut pracy.

Cały proces podzielimy na trzy części – po pierwsze, ZNC. Jest to “bouncer” dla protokołu IRC, w którym operuje Bitlbee. Dzięki jego działaniom, nawet gdy nie jesteśmy podłączeni do naszego serwera, wszystkie wiadomości zostają zapisane w historii, przesyłanej nam podczas logowania. Sam Bitlbee to bramka, zbierająca wszystkie protokoły w jednym miejscu. Za jego pomocą obsłużymy facebookowy czat, Google Talk, GaduGadu czy wyżej wspomniany Telegram. W ostatnim etapie pokażę w jaki sposób podłączyć się do naszego serwera za pomocą Weechat, zainstalowanego na moim komputerze stacjonarnym. Jest to konsolowy klient protokołu IRC o dobrej renomie.

I. ZNC.

1.) Instalujemy ZNC.

pacaur -S znc

2.) Zgodnie z instrukacjami ArchWiki, konfigurujemy usługę.

sudo usermod -s /bin/sh znc && sudo su - znc

3.) Musimy teraz przejść formularz konfiguracyjny, wywoływany przez polecenie znc --makeconf. Wstawiam poniżej swój zapis z tego procesu, tylko chciałbym zaznaczyć, że poniższe ustawienia to osobista preferencja.

[znc@fever ~]$ znc --makeconf
[ .. ] Checking for list of available modules...
[ >> ] ok
[ ** ] 
[ ** ] -- Global settings --
[ ** ] 
[ ?? ] Listen on port (1025 to 65534): 9999
[ ?? ] Listen using SSL (yes/no) [no]: yes
[ ?? ] Listen using both IPv4 and IPv6 (yes/no) [yes]: 
[ .. ] Verifying the listener...
[ >> ] ok
[ ** ] Enabled global modules [webadmin]
[ ** ] 
[ ** ] -- Admin user settings --
[ ** ] 
[ ?? ] Username (alphanumeric): kosciak
[ ?? ] Enter password: 
[ ?? ] Confirm password: 
[ ?? ] Nick [kosciak]: 
[ ?? ] Alternate nick [kosciak_]: kosciak9
[ ?? ] Ident [kosciak]: 
[ ?? ] Real name [Got ZNC?]: Franek Madej
[ ?? ] Bind host (optional): 
[ ** ] Enabled user modules [chansaver, controlpanel]
[ ** ] 
[ ?? ] Set up a network? (yes/no) [yes]: yes
[ ** ] 
[ ** ] -- Network settings --
[ ** ] 
[ ?? ] Name [freenode]: 
[ ?? ] Server host [chat.freenode.net]: 
[ ?? ] Server uses SSL? (yes/no) [yes]: 
[ ?? ] Server port (1 to 65535) [6697]: 
[ ?? ] Server password (probably empty): 
[ ?? ] Initial channels: qtile
[ ** ] Enabled network modules [simple_away]
[ ** ] 
[ .. ] Writing config [/var/lib/znc/.znc/configs/znc.conf]...
[ >> ] ok
[ ** ] 
[ ** ] To connect to this ZNC you need to connect to it as your IRC server
[ ** ] using the port that you supplied. You have to supply your login info
[ ** ] as the IRC server password like this: user/network:pass.
[ ** ] 
[ ** ] Try something like this in your IRC client...
[ ** ] /server <znc_server_ip> +9999 kosciak:<pass>
[ ** ] 
[ ** ] To manage settings, users and networks, point your web browser to
[ ** ] https://<znc_server_ip>:9999/
[ ** ] 
[ ?? ] Launch ZNC now? (yes/no) [yes]: 
[ .. ] Opening config [/var/lib/znc/.znc/configs/znc.conf]...
[ >> ] ok
[ .. ] Loading global module [webadmin]...
[ >> ] [/usr/lib/znc/webadmin.so]
[ .. ] Binding to port [+9999]...
[ >> ] ok
[ ** ] Loading user [kosciak]
[ ** ] Loading network [freenode]
[ .. ] Loading network module [simple_away]...
[ >> ] [/usr/lib/znc/simple_away.so]
[ .. ] Adding server [chat.freenode.net +6697 ]...
[ >> ] ok
[ .. ] Loading user module [chansaver]...
[ >> ] ok
[ .. ] Loading user module [controlpanel]...
[ >> ] ok
[ .. ] Forking into the background...
[ >> ] [pid: 28210]
[ ** ] ZNC 1.6.3 - http://znc.in

 

4.) Pozostało skonfigurować ZNC w systemd.

sudo systemctl enable znc && sudo systemctl start znc

5.) Przechodzimy teraz pod nasz adres (localhost w przypadku instalacji na obecnym komputerze) i pod port podany podczas konfiguracji. Pamiętajcie by wpisać https:// jeżeli korzystacie z SSL. Sam zapomniałem i kilka chwil zajęło mi zrozumienie problemu. 🙂

1.png

6.) Musimy dodać do ZNC nasz jeszcze nieistniejący serwer Bitlbee. Najpierw w osobistych ustawieniach dodajemy serwer, potem wypełniamy podobnie ja na zrzucie ekranu. Najważniejszy w konfiguracji jest adres – nasz localhost 🙂

1.png

1

 

 

7.) Osobiście włączam jeszcze moduł autoreply, z prostego powodu. Gdy ZNC działa i utrzymuje nas online w przeróżnych serwisach, to jednocześnie jest on niejako naszym sekretarzem – odczytuje wiadomości jako pierwszy, by potem je nam przekazać. Niestety, w przypadku Facebook’a czy Telegramu, jest to równoznaczne z wyświetleniem – twój rozmówca zostanie o tym poinformowany. Niektórzy ludzie czują się olewani gdy ktoś przeczyta wiadomość ale nie odpisze na nią, dlatego wolę poinformować ich o zaistniałej sytuacji sytuacji.

1.png

 

II. Bitlbee

1.) Musimy zainstalować bitlbee, ale tutaj należy chwilkę się zastanowić – których serwisów używam? Niektóre bowiem dostępne są tylko gdy używamy libpurple, biblioteki znanej z Pidgin’a, a wówczas musimy zainstalować inny pakiet. Dokładna lista wspieranych protokołów dostępna jest w wiki projektu. Załączam możliwości z AUR na zrzucie poniżej, sam wybrałem wersję purpurową, wraz z pluginami do Facebooka, Steama oraz Telegramu.

2016-08-22-155941_1280x1024_scrot

pacaur -S bitlbee-libpurple bitlbee-facebook bitlbee-steam telegram-purple

2.) Konfigurujemy bitlbee zgodnie z instrukcjami ArchWiki.

sudoedit /etc/bitlbee/bitlbee.conf

2016-08-22-161023_1280x1024_scrot.png

sudo chown -R bitlbee:bitlbee /var/lib/bitlbee

3.) Jak zwykle – odpalamy usługę przez systemd.

sc-enable bitlbee && sc-start bitlbee

III. Weechat

1.) Jak zwykle, wszystko rozpoczyna się od menadżera pakietów i odpowiednich poleceń.

pacaur -S weechat
weechat
2016-08-22-163029_1280x1024_scrot
Mój Weechat może wyglądać odrobinę inaczej niż twój – pozmieniałem w nim już trochę ustawień. Funkcjonalność jest jednak taka sama, dlatego nie resetowałem konfiguracji.

2.) Łączymy się do Bitlbee przez ZNC. W Weechat nie możemy dodać chwilowych serwerów, dlatego utworzymy nasz na stałe. Proces nie jest trudny:

w Weechat wpisujemy: (nie łamiemy linii, zrobiłem to dla czytelności)
/server add bitlbee moj_adres_znc/moj_port_znc (jezeli wlaczylimy to -ssl) 
-username=twoj_nick/bitlbee -password=haslo_znc -autoconnect

# jeżeli używamy SSL, to musimy na chwilę wrócić do powłoki i odpalić: 
sudo su -c "cat /var/lib/znc/.znc/znc.pem | openssl x509 -sha512 
-fingerprint -noout | tr -d ':' | tr 'A-Z' 'a-z' | cut -d = -f 2"
#output powyzszej komendy kopiujemy i wracamy do Weechat
 
/set irc.server.bitlbee.ssl_fingerprint tutaj_output 
/connect bitlbee 
/save

3.) Jeżeli wszystko się powiodło, za chwilę powita nas takie okno. Zaczynamy od help quickstart. Bitlbee przeprowadzi nas przez podstawy użytkowania.

1.png

4.) Teraz musimy dodać konta poszczególnych serwisów. Dla przykładu, facebook:

ac add facebook twoj_email twoje_haslo
ac facebook on
save
1.png
Grunt to uzdolnienie plastyczne.

5.) Dla ułatwienia możemy jeszcze w ZNC włączyć wtyczkę perform, która sama zaloguje nas do Bitlbee i podłączy konta. Żeby jeszcze się pogminastykować, miast korzystać z internetowego intefejsu, załatwimy sprawę przez Weechat. W dowolnym jego oknie wpisujemy:

/msg *status LoadMod --type=user perform
/msg *perform add PRIVMSG &bitlbee :identify twoje_haslo
/msg *perform add PRIVMSG &bitlbee :ac on

To już wszystko. Jeżeli przebrnąłeś przez poradnik, to masz uniwersalny komunikator, skupiający kilkanaście protokołów wymiany informacji, podpięty pod odbijacz IRC, więc dostępny z każdej platformy – nie ma szans, żeby cokolwiek ci umknęło. 🙂

Screen Shot 2016-08-22 at 17.51.49.png
Jak widać, z OS X też można bezproblemowo połączyć się z serwerem. Dlatego wybrałem ZNC, nie tmux – bo lubię natywne aplikacje w danych środowiskach, a takie rozwiązanie na nie pozwala.

 

Advertisements

One thought on “Zróbmy to razem – komunikator idealny

  1. Nie ma co ukrywać: masz chłopie dar do tłumaczenia. Widzę, że spełniasz się w roli twórcy poradników dla zaawansowanych, ale ja chętnie Twój potencjał wykorzystałbym też na szkoleniu komputerowych laików. Dobrze by było przeczytać coś od Ciebie na “basic level”. Może jakieś przydatne programy do pracy w biurze? Wiem, że w sieci pełno takich pseudo-artykułów, ale czas żeby zajął się tym ktoś mający o tym pojęcie. Zwłaszcza, że znasz mało popularne rozwiązania i tak poradnik dla informatycznych łosiów byłby dużo bardziej potrzebny niż jakaś licencja do winrara. Oczywiście rób to co chcesz i co daje Ci satysfakcję, ale pamiętaj że ciemny lud czeka na zbawcę 🙂

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s