Raspberry Pi + Seafile (cz. 4)

Aktualizacja dot. instalowania klientów Seafile

  1. Od ostatniego wpisu zmienił się znacznie sposób instalacji klientów Seafile dla systemów GNU/Linux. Dystrybucje: Debian, Ubuntu, Fedora doczekały się oficjalnych repozytoriów, Arch Linux zaś oficjalnej paczki. Sposób instalacji został szczegółowo opisany w tym dokumencie.

  2. Dla Debiana repozytorium podpisane jest cyfrowo - na początku należy zainstalować klucz:

    # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61

    Następnie dodać dla wydania Jessie repozytorium:

    deb http://dl.bintray.com/seafile-org/deb jessie main

    lub dla Wheeze:

    deb http://dl.bintray.com/seafile-org/deb wheezy main

    Po zaktualizowaniu listy pakietów:

    # apt-get update

    należy zainstalować paczkę:

    # apt-get install seafile-gui

  3. W Ubuntu wystarczy dodać repozytorium:

    $ sudo add-apt-repository ppa:seafile/seafile-client

    odświeżyć listę paczek:

    $ sudo apt update

    i wydać polecenie instalacji:

    $ sudo apt install

  4. Niewiątpliwym zaskoczeniem była dla mnie Fedora - paczka z klientem Seafile znalazła się w repozytoriach świeżo zainstalowanej dystrybucji Fedora 24. Przecierałem oczy ze zdumienia, ale też bardzo się ucieszyłem, kiedy na pytanie:

    $ dnf search seafile

    otrzymałem zwrotną informację w postaci:

    seafile.i686 : Cloud storage cli client seafile.x86_64 : Cloud storage cli client seafile-devel.i686 : Development files for seafile seafile-devel.x86_64 : Development files for seafile seafile-client.x86_64 : Seafile cloud storage desktop client

    Można było od razu wydać polecenie instalacji:

    # dnf install seafile-client

  5. W dystrybucji Arch Linux mamy zamiast dawnej strony z opisem instalacji, oficjalną stronę z paczką klienta wydaną przez społeczność Arch pod tym adresem.

Otwieramy serwer na świat - przypadek 1

  1. Do tej pory (opierając się na tym, opisałem w poprzednich wpisach poświeconych Seafile) można było korzystać z serwera jedynie w sieci LAN. Przyszła pora, aby otworzyć serwer na świat i korzystać z zalet, jakie daje połączenie oszczędnego urządzenia Raspberry Pi z uruchomionym serwerem Seafile, który jest dostępny w każdej chwili i z każdego miejsca za pomocą choćby klienta zainstalowanego na smartfonie z systemem Android.

  2. W pierwszym przypadku zalożyłem, że jestem szczęśliwym posiadaczem dostępu do sieci wraz ze stałym adresem IP. Właśnie w takiej sieci uruchomiłem serwer, który podczas konfiguracji otrzymał adres w mojej sieci LAN - 192.168.1.140. Aby serwer ten udostępnić na zewnątrz, należy uruchomić na routerze usługę przekierowania portów (port forwarding) dla dwóch portów - zakładając, że podczas konfiguracji numery portów pozostawiliśmy niezmienione będzie to port 8000 dla interfejsu WWW serwera oraz port 8082 dla samego serwera. Jest to standardowa opcja, która powinna być dostępna dla wszystkich routerów. Może to wyglądać w ten sposób:

    rpi01

    Jeśli mamy ustawioną zaporę w routerze, to należy jeszcze otworzyć w samej zaporze te dwa porty i gotowe. Teraz wystarczy na stronie internetowej, bądź podczas konfigurowania konta klienta wpisać nasz stały adres IP - XX.XX.XX.XX:8000.

  3. Można zamiast konfigurować oba porty osobno, zdefiniować przekierowania zakresu portów od 8000 do 8082. Nie jest to najrozsądniejsze, szczególnie gdyby się okazało, że będziemy mieli jakąś inną usługę działającą na porcie w tym zakresie, ale jeśli nic więcej nie mamy, jest jak najbardziej dopuszczalne.

  4. Odradzam umieszczania serwera w DMZ (strefie zdemilitaryzowanej). Rozwiązanie to charakteryzuje się dużą prostotą i wygodą, ale kosztem bezpieczeństwa, ponieważ DMZ to cała sieć wyznaczona jako sieć o niższym poziomie bezpieczenstwa. Najczęściej (w praktyce) oznacza to, że cały zakres portów (1 - 65535) adresu IP serwera Seafile będzie dostępny w Internecie.

Otwieramy serwer na świat - przypadek 2

  1. Nie każdy jest szczęśliwym posiadaczem stałego adresu IP. Ci, którzy go nie mają muszą sobie poradzić inaczej - poprzez uruchomienie usługi Dynamic Domain Name System (DDNS). W praktyce wygląda to tak: należy założyć konto u dostawcy usługi DDNS; zarejestrować poddomenę / subdomenę, która zostanie dodana do domeny dostawcy; później należy uruchomić na routerze lub jednym z komputerów w naszej sieci klienta DDNS, aby logował się do dostawcy i komunikował mu co pewien czas jaki adres ma nasza sieć. Dzięki temu posługując się nazwą domeny można łączyć się z konkretną usługą / komputerem w naszej sieci - oczywiście, z jaką usługą (jakim komputerem) to zależy od ustawienia przekierowania portów na naszym routerze. Prościej już nie da się tego przedstawić.

  2. Pierwszym krokiem na drodze do ustawienia usługi DDNS jest wybór dostawcy i rejestracja konta. W znalezieniu dostawcy DDNS pomoże wyszukiwarka, ale lepiej skorzystać z gotowej listy dostępnej choćby na stronie projektu DD-WRT. Ja wybrałem freedns.afraid.org. Ich cennik zaczyna się od darmowego profilu Starter posiadającego status podstawowy. Na moje potrzeby jest on w pełni wystarczajacy. Na początku należy wybrać z menu na stronie dostawcy Main Menu -> Setup an account here. Ze strony z cennikiem wybieramy (Select) pierwszy cennik. Wyświetli nam się standardowa strona rejestracji.

    rpi02

    Na zakończenie procesu rejestracji otrzymamy maila z linkiem aktywującym konto. Udany proces aktywacji konta umożliwia jego dalszą konfigurację w postaci dodania subdomeny - wybieramy Add a subdomain. Wyświetli nam się właściwa strona z ustawieniami.

    rpi03

    Konfigurację subdomeny kończymy poprzez jej zapis.

  3. Teraz jest pora na przekierowanie portów - wystarczy powtórzyć konfigurację routera opisaną w punkcie 2 poprzedniego wariantu. Bez przekierowania portów router nie będzie “wiedział” co z czym ma połączyć. Ustawiamy więc przekierowanie portu 8000 oraz 8082.

  4. Dostawca DDNS już wie jaką nazwą będziemy posługiwali się, aby połączyć się z naszą siecią, musi jeszcze wiedzieć jaki aktualny adres IP ma nasza sieć. Dlatego na jednym z naszych urządzeń pracujących w sieci (może to być router lub jeden z komputerów) należy uruchomić klienta DDNS, którego zadaniem będzie regularne łączenie się z dostawcą i przekazywanie mu komunikatu o naszym adresie.

  5. Jeśli klientem DDNS ma być nasz router, musimy go teraz skonfigurować. Konfiguracja może różnić się szczegółami dla poszczególnych marek i modeli routerów. Najczęściej jednak sprowadza się do podania danych, które powstały podczas rejestracji konta u dostawcy usługi DDNS, tj: nazwy użytkownika, hasła i nazwy hosta (domeny). U mnie będzie to wyglądało w sposób następujący:

    rpi04

    Oczywiście ustawiłem wspomniany wcześniej port forwarding:

    rpi01

    Na skutek zastosowania ww. ustawień mogę już łączyć się z moim serwerem za pomocą domeny greyseal.mooo.com:8000.

  6. Jeśli nie możemy lub nie chcemy aktywować klienta DDNS na naszym routerze, możemy do tego wykorzystać jeden z komputerów w sieci - a konkretnie nasze Raspberry Pi. Nie ma tu jednego i uniwersalnego rozwiązania. Najczęściej jest nim uruchomiony gotowy skrypt (do pobrania ze strony dostawcy DDNS), który pełni taką funkcję. Dobrze jest jednak pamiętać o zasadzie, aby unikać uruchamiania obcych, gotowych skryptów, których działania zupełnie nie rozumiemy. Albo spróbujmy zrozumieć skrypt, albo poszukajmy innego rozwiązania (jeśli to możliwe). Całkiem rozsądnym rozwiązaniem a do tego bezpiecznym będzie posłużenie się instalacją aplikacji, która zostanie zainstalowania z oficjalnego repozytorium, aplikacji której praca opiera się na konfiguracji pliku o te same zasady, jakie obowiązywały podczas konfiguracji klienta DDNS na routerze. Mam na myśli aplikację ddclient. Zaczynamy od jej instalacji:

    sudo apt-get install ddclient

    Podczas instalacji zostaniemy poproszeni o jej konfigurację - wybieramy dostawcę usługi DDNS (w tym przypadku będzie inny dostawca):

    rpi05

    podajemy nazwę (adres) naszego dostawcy:

    rpi06

    podajemy protokół:

    rpi07

    naszą nazwę użytkownika (konta, które założyliśmy u dostawcy):

    rpi08

    hasło:

    rpi09

    ponownie hasło:

    rpi10

    interfejs sieci (u mnie eth0):

    rpi11

    i na końcu nazwę naszego hosta (domenę):

    rpi12

    Teraz wystarczy zrestartować Raspberry Pi. Sprawdzenie, czy klient działa umożliwia polecenie:

    sudo ddclient status

    W każdej chwili możemy zmienić ww. konfigurację. Wystarczy poddać edycji plik /etc/ddclient.conf.

  7. DDNS a modem 3G. Jeżeli Waszym połączeniem WAN jest modem 3G, możecie mieć problem (pomimo poprawnego ustawienia DDNS) z dostaniem się do Waszego routera bądź komputera pracującego w Waszej sieci. Powodem jest to, że polscy operatorzy komórkowi blokują porty wejściowe. Blokują, ale mogą je także odblokować. Może to wiązać się z dodatkową opłatą, bądź być już wliczone w koszt usługi. Wszystko zależy od tego jakiego rodzaju posiadacie usługę u operatora. Proponuję zacząć od dokładnego przeczytania jej regulaminu. Później należy skontaktować się telefonicznie z konsultantem (najlepiej technicznym) i przedstawić problem / porzebę. W sieci znajdziecie opisy odblokowania portów, którym towarzyszyły wielokrotne rozmowy z konsultantami i niejednokronie ich sprzeczne wyjaśnienia. Grunt, aby się nie poddawać. Jeżeli traficie na konsultanta, który nie orientuje się za dobrze w temacie, dzwońcie raz jeszcze, aż traficie na tego, który posiada stosowną wiedzę. Należy dążyć do definitywnego wyjaśnienia, czy w Waszym przypadku taka usługa jest możliwa. Jeśli jest, to tylko pozostaje zlecić otwarcie portów i upewnić się, czy nie będzie się to wiązało z koniecznością jakiejkolwiek modyfikacji Waszej konfiguracji.

W następnym wpisie poświęconym serwerowi Seafile opiszę wykonywanie kopii jego danych i ich przywracanie.

greyseal

comments powered by Disqus