Jak postawić swój własny bezpieczny serwer komunikatora

dodał 10 października 2017 o 07:20 w kategorii HowTo  z tagami:
Jak postawić swój własny bezpieczny serwer komunikatora

Wiele doniesień medialnych z ostatnich lat pokazuje, jak ważna jest możliwość prywatnej komunikacji i jak trudno jest ją zapewnić. Gdy każdy podsłuchuje każdego ostatnim systemem godnym zaufania pozostaje własny serwer.

Na fali doniesień o inwigilacji stosowanej przez amerykańskie NSA (a i zapewne także każdą inną służbę o podobnych możliwościach) bardzo rozwinął się rynek prywatnych komunikatorów. Niektóre z nich zdecydowanie warte są uwagi (jak chociażby Signal czy Threema), jednak wiele z nich ciągle szuka równowagi między użytecznością a prywatnością lub wprost stawia na wygodę, ignorując bezpieczeństwo. Hasło „Gdy szukasz prywatności, zapewnij ją sobie sam” może oznaczać, że trzeba swój komunikator napisać samodzielnie – jednak tego nie polecamy nawet osobom, które posiadają wystarczające umiejętności techniczne. Lepiej skorzystać ze sprawdzonego rozwiązania na własnym serwerze – czyli popularnego Jabbera, dlatego dzisiaj pokażemy Wam, jak swój własny serwer tej usługi na maszynie Aruby postawić.

Artykuł pod patronatem Aruba Cloud

We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać, jak postawić swój własny zdalny pulpitswój serwer WWWjak monitorować zmiany w plikachjak zablokować reklamy na komórce, jak skonfigurować bezpieczną kopię zapasowąjak zabezpieczyć logowanie do serwera za pomocą jednorazowych tokenów  lub za pomocą klucza Yubikey a także jak monitorować swoje systemy w dwóch odsłonach.

Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Co więcej Aruba ma już serwerownię w Warszawie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.

Instalacja i konfiguracja serwera eJabberd XMPP

Na początek film dla tych z Was, którzy wolą sobie popatrzeć, a poniżej opis krok po kroku:

Dla dystrybucji Ubuntu pakiet ejabberd znajduje się w domyślnym repozytorium pakietów. Dla innnych dystrybucji takich jak CentOS pakiet rpm można pobrać ze strony producenta. Instalujemy pakiet ejabberd za pomocą apt:

Przed uruchomieniem usługi powinniśmy ją odpowiednio skonfigurować. Plik konfiguracyjny ejabberd.cfg zawiera aż 803 linie – zmienimy tylko niektóre ustawienia, lecz zachęcamy do przejrzenia całego pliku konfiguracyjnego w celu dostosowania usługi do własnych potrzeb.

Edytujemy plik konfiguracyjny ejabberd.yml który znajduje się w katalogu /opt/ejabberd/:

Zmieniamy poziom logowania z Info na Warning. Jest to opcjonalny krok, dzięki któremu w logach będą zapisywanie zdarzenia o poziomie Warning (i niżej). Zdarzenia te powinny zwrócić naszą uwagę, a nie umkną nam podczas wielu zdarzeń INFO.:

Następnie ustawiamy domeny obsługiwane przez nasz serwer Jabbera:

Po ustawieniu wartości w zmiennej hosts należy ustawić odpowiednią domenę w ACL:

Jeśli nie chcemy, aby usługa ejabberd nawiązywała połączenia „s2s” (server-to-server) z innymi serwerami XMPP, komentujemy następujące linie:

Po wprowadzonych zmianach uruchamiamy usługę ejabberd:

Usługą jabber możemy zarządzać z linii poleceń za pomocą polecenia ejabberdctl lub za pomocą panelu administracyjnego , który dostępny jest pod adresem https://<adres_ip>:5280/admin.

Aby uzyskać dostęp do panelu administracyjnego należy zmienić hasło dla konta administratora:

Aby uzyskać dostęp do panelu administracyjnego w przeglądarce podajemy adres https://<adres_ip>:5280/admin i logujemy się podając nazwę użytkownika admin@localhost wraz z określonym przez nas hasłem.

Panel administracyjny usługi eJabberd

Panel administracyjny usługi eJabberd

Certyfikat TLS

Usługa ejabberd umożliwia szyfrowanie komunikacji za pomocą certyfikatów TLS. Certyfikaty te mogą być użyte w połączeniach typu c2s (client-to-server) oraz s2s (server-to-server). Opisywaliśmy już jak wygenerować certyfikaty do usługi Apache2 za pomocą Let’s Encrypt. Korzystając ponownie z Let’s Encrypt wygenerujemy certyfikat dla połączeń typu c2s.

Dodajemy repozytorium:

Instalujemy pakiet certbot:

Po zainstalowaniu wymaganego oprogramowania możemy przystąpić do wygenerowania certyfikatów. Generujemy certyfikaty dla domeny jabber.z3s.pl:

Ejabberd wymaga aby cała ścieżka certyfikacji oraz klucz prywatny były zapisane w jednym pliku.

Edytujemy raz jeszcze plik /etc/ejabberd/ejabberd.yml i wprowadzamy następujące zmiany:

Sprawdzamy certyfikat TLS

Narzędzie dostępne pod tym adresem umożliwia sprawdzenie certyfikatu serwera jabber. Test można wykonać raz na godzinę dla określonego serwera.

Pamiętajmy o wspomnianym wcześniej panelu administratora dostępnym na porcie 5280/tcp. Możemy wyłączyć go na dwa sposoby: komentując następujące linie:

lub za pomocą prostego firewall’a:

Jeśli korzystamy z certyfikatów Let’s Encrypt, certyfikaty należy odnawiać raz na 90 dni.

Podsumowanie

Postawiliście właśnie swój własny serwer Jabbera. Pozostaje wybrać jednego z wielu klientów tej usługi i zaprosić na serwer współpracowników lub kolegów. Warto także poczytać o bezpieczeństwie serwera, by nie skończyło się tak jak w przypadku usługi Jabbim.pl / Jabster.pl. Nie zapominajcie tez o szyfrowaniu, bo przecież nie po to stawialiście serwer, by Was teraz ktoś podsłuchał.