Reklama dynamiczna

poniedziałek, 6 listopada 2017

Synology i KeePass - bo o hasła trzeba dbać

Chyba każdy wie, że zapisywanie haseł w przeglądarce nie należy do bezpiecznych, a jeżeli jeszcze tego nie wiecie, to poniżej zamieszczam dwa linki, które mogą Was zainteresować i przekonać do zrezygnowania z tego pomysłu (a przynajmniej jeżeli chodzi o ważne hasła):
Osobiście uważam, że na luksus zapisywania haseł w przeglądarce można pozwolić sobie tylko na komputerze domowym, a i to nie za bardzo, bo do takiego komputera może usiąść jakiś "dowcipny" serwisant, albo młodszy sąsiad z ambicjami zostania hakerem, który tylko czeka jak wyciągnąć komuś hasło do "fejsa".

No dobrze, ale jeżeli nie w przeglądarce to gdzie? - na żółtych karteczkach?
Od wielu lat korzystam z darmowego programu do przechowywania haseł - nazywa się KeePass i w swojej roli sprawdza się znakomicie. Ma jednakże wadę, która jest też zaletą, a mianowicie jest to program używany lokalnie. Jest to wada, ponieważ coraz bardziej przyzwyczajam się do rozwiązań chmurowych z których mogę korzystać niezależnie od miejsca w którym przebywam. A jak taka wada może być zaletą? 
No cóż. Jeżeli program jest przechowywany lokalnie, to znaczy, że tylko ja mam do niego dostęp, do jego plików i bazy oraz ja kontroluję pełnię dostępu do niego.

Jak więc pogodzić ogień i wodę, tzn. "uchmurowić" program lokalny?:)

Rozwiązaniem może być przechowywanie bazy programu KeePass w usłudze chmurowej. Jakiś czas pokazałem to na przykładzie Dropboxa - Jak synchronizować hasła pomiędzy komputerem i telefonem, czyli o synchronizacji haseł w przeglądarkach i nie tylko.

I owszem, takie rozwiązanie działa i to nawet bezproblemowo, ale jego minusem jest to, że nasza baza z hasłami przechowywana jest w miejscu którego nie kontrolujemy. Sprowadza się to do faktu, że nie tylko firma zewnętrzna ma dostęp do naszych plików i mogą z tego wyniknąć ciekawe "kwiatki" (vide Dropbox trzymał pliki nawet po ich usunięciu), ale - bądźmy szczerzy - służby kraju, w którym firma się znajduje oraz potencjalni intruzi.

Dzisiaj więc postanowiłem przechowywanie haseł wznieść na wyższy poziom bezpieczeństwa i bazę programu KeePass przechowywać nie w jakiejś tam anonimowej chmurze, ale w mojej prywatnej, a dokładniej na lokalnym serwerze Synology, poprzez szyfrowanego FTP-a. 

Schemat synchronizacji bazy programu KeePass przy pomocy serwera FTP
Schemat synchronizacji bazy programu KeePass przy pomocy serwera SFTP

Dlaczego FTP na Synology? Taki pomysł podsunął mi jeden z czytelników, którego niniejszym pozdrawiam:)
Okazało się, że zarówno KeePass oraz KeePass2Android (port KeePassa na Androida) obsługują synchronizację bazy haseł poprzez FTP. Jednocześnie, co mi się bardzo spodobało, nie muszę do całej operacji stawiać odrębnego FTPa bo mam go przecież na Synology. A że jest to całkiem przyjemny FTP, oferujący poziom bezpieczeństwa, którego potrzebowałem na potrzeby niniejszego projektu, to "klamka zapadła" :)

Konfiguracja FTP na Synology DS916+

Poniżej opisana zostanie konfiguracja na Synology DS916+, którego ja używam, ale wg mojej wiedzy, powinna ona wyglądać identycznie na każdym "Synku", jak też odpowiednie opcje powinniście móc odnaleźć w NASach innych producentów. Tak więc do dzieła :)

Utworzenie konta użytkownika

Celem jest zwiększenie bezpieczeństwa, więc zaczniemy od utworzenia specjalnego konta użytkownika. Będzie to tzw. konto techniczne, czyli konto które nie będzie używane przez jakiegokolwiek użytkownika, a jedynie przez aplikacje KeePass i KeePass2Android, w celu dostępu do bazy haseł programu KeePass.

Użytkownik, którego ja założyłem na potrzeby niniejszego tutorialu nazywa się keepass_user. W rzeczywistości nawet login użytkownika nie powinien wskazywać do czego konto jest wykorzystywane i zamiast jakiejś "ludzkiej" nazwy może on mieć postać losowego ciągu znaków, podobnie jak hasło.
Jest to dodatkowy element zwiększający bezpieczeństwo, a że login i hasło zapiszemy potem w aplikacjach klienckich, więc z jego wpisaniem będziemy się trudzić tylko za pierwszym razem.

Formatka tworzenia nowego konta użytkownika w Synology
Formatka tworzenia nowego konta użytkownika w Synology
Użytkownikowi warto ustawić długie, skomplikowane hasło oraz zaznaczyć opcję Nie zezwalaj użytkownikowi na zmianę hasła. Wystarczy bowiem kilka / kilkanaście minut, aby urządzenie wystawione do Internetu zaczęło być skanowane przez boty (więcej na ten temat możecie przeczytać w tym poście - Masz w routerze włączony dostęp przez SSH? Zobacz jak ryzykujesz...)
W takim przypadku pierwszą linię obrony odgrywa niestandardowy login, silne hasło i prawidłowe zabezpieczenie routera (więc o tym w poście - Dobre praktyki w zabezpieczaniu domowych routerów na przykładzie Synology RT2600ac), zaś od strony NASa warto włączyć blokadę IP, którą można znaleźć w Panelu Sterowania → Bezpieczeństwo → zakładka Konto.

No dobrze, ale trochę odbiegłem od tematu ;)

Aby zminimalizować ryzyko wykorzystania utworzonego konta do niecnych celów, w dalszych krokach kreatora, na formatce pt. Przypisz uprawnienia do aplikacji, warto odebrać użytkownikowi prawo do korzystania z wszystkich aplikacji, poza FTP-em.

Prawo korzystania z aplikacji dla użytkownika keepass_user
Prawo korzystania z aplikacji dla użytkownika keepass_user
Następnie można potwierdzić kolejne kroki kreatora i zakończyć tworzenie użytkownika.
W tym momencie mamy utworzone konto techniczne, które nie może zostać wykorzystane do niczego poza FTP-em.

O to nam chodziło :)

Konfiguracja FTP

Dalszym etapem projektu jest uruchomienie FTP-a na Synology.
Do jego konfiguracji dostaniecie się poprzez Panel Sterowania → Usługi Plików → zakładka FTP.
Włączamy szyfrowaną wersję FTPa. Chciałem aby było to FTPS (SSL/TLS), ale jak się okazało KeePass miał problemy z jego obsługą, zaś KeePass2Android wcale takiego trybu nie wspiera. Stanęło więc na SFTP (SSH).

Tutaj mała sugestia odnośnie portu. Albo nie udało mi się tego obczaić, albo KeePass nie umożliwia podania portu na którym ma się łączyć z FTP-em. Tak wiec w poniższym oknie lepiej pozostawić domyślny - 22 - port dla usługi SFTP.
Edycja:
A jednak można wykorzystać niestandardowy port w przypadku połączeń SFTP

Włączenie usługi SFTP
Włączenie usługi SFTP
Kolejnym krokiem jest ustawienie folderu jaki ma być widoczny przez żytkownika keepass_user po skorzystaniu przez niego z FTPa, czyli, w jakim folderze umieścimy bazę z hasłami.

Robimy to na tej samej karcie, ale w dolnej części, gdzie widnieje sekcja Ogólne. Tam poprzez przycisk Ustawienia zaawansowane dostajemy się do opcji Zmień katalogi główne użytkowników.

Opcja umożliwiająca zmianę katalogu głównego FTP dla użytkowników
Opcja umożliwiająca zmianę katalogu głównego FTP dla użytkowników
W otworzonej formatce wybieramy utworzonego przez nas użytkownika i ustawiamy, żeby jego katalogiem głównym FTP był Użytkownik domowy.

Ustawienie folderu domowego jako folderu głównego przy łączeniu przez FTP
Ustawienie folderu domowego jako folderu głównego przy łączeniu przez FTP

Z poziomu Synology będziecie się mogli dostać do tego folderu poprzez aplikację File Station → folder udostępniony Homes → folder z nazwą użytkownika, którego utworzyliśmy.

Dzięki takiemu zabiegowi nie musimy tworzyć specjalnego folderu współdzielonego, zachowujemy czystość w strukturze katalogów itd., itp ;)

Tak więc w tym momencie od strony Synology mamy wszystko gotowe. Pozostaje nawiązać testowe połączenie z FTP-em (np. poprzez darmowego klienta FileZilla) na koncie utworzonego przez nas użytkownika, sprawdzić czy wszystko działa, a jeżeli tak, to skopiować do niego bazę z hasłami.

Poniżej zaznaczyłem na czerwono ustawienia, które są niezbędne do nawiązania połączenia.

Formatka do nawiązywania połączenia w FileZilla (Plik → Menedżer stron)
Jeżeli do tego momentu wszystko działa to znaczy, że konfiguracja SFTP na Synology zakończyła się pomyślnie i możemy przejść do konfiguracji KeePassa i KeePass2Android.
Prawda, że było prosto? ;)

Konfiguracja KeePass do łączenia z szyfrowanym FTP

Domyślnie KeePass obsługuje połączenia przez FTP jedynie w formie niezaszyfrowanej. Jeżeli chcemy korzystać z połączenia SFTP konieczne jest pobranie darmowej wtyczki o nazwie IOProtocolExt, która została napisana przez samego twórcę aplikacji, więc jest raczej bezpieczna.

Jej instalacja sprowadza się do rozpakowania pobranej zawartości do podfolderu Plugins w głównym folderze KeePass i zrestartowaniu programu.

Obecność wtyczki możecie sprawdzić poprzez menu Narzędzia Wtyczki.

Poprawnie zainstalowana wtyczka IOProtocolExt w programie KeePass
Poprawnie zainstalowana wtyczka IOProtocolExt w programie KeePass
Jeżeli jest ona widoczna, można przystępować do próby nawiązania połączenia. 
W tym celu w KeePass przechodzimy do menu Plik → Otwórz Otwórz URL i wypełniamy istniejące tam pola. 

Okno nawiązywania połączenia z serwerem SFTP
Okno nawiązywania połączenia z serwerem SFTP
Adres URL powinien mieć postać:
sftp://adres_IP_serwera/plik_bazy_z_hasłami.kdbx Lub w przypadku korzystania z niestandardowego portu: sftp://adres_IP_serwera:PORT/plik_bazy_z_hasłami.kdbx
Jeżeli wszystko zostało skonfigurowane poprawnie, to wystarczy nacisnąć OK i program powinien zapytać nas o hasło główne do pliku z bazą haseł, potwierdzając tym samym sukces powyższych kroków.

Od tego momentu gdziekolwiek byśmy chcieli skorzystać z naszych haseł, czy to w domu, czy w pracy, będziemy już mieli taką możliwość :)

A gdzie korzystanie ze smartfona?

No tak. Obiecałem przecież, że przedstawię w jaki sposób można z takiej bazy korzystać przez smartfona. 

Przejdźmy zatem do rzeczy.

Ja korzystam z Androida, na którego powstała całkiem przyjemna aplikacja nazwana KeePass2Android. Jest to aplikacja zewnętrzna, ponieważ do chwili obecnej KeePass nie wypuścił wersji mobilnej. Oczywiście jest całe mnóstwo innych apek, które możecie użyć zamiast KeePass2Android, ale tamtych nie znam. Jeżeli znajdziecie coś lepszego niż ta z której ja korzystam, podzielcie się proszę w komentarzach, a chętnie przetestuję :)

Poniższy screen pokazuje, że obsługuje ona wiele sposobów łączenia się z bazą haseł, ale w naszym przypadku wybierzemy połączenie nazwane SFTP (transfer plików przez SSH).

Wybór sposobu łączenia się z bazą haseł
Wybór sposobu łączenia się z bazą haseł
W kolejnym oknie podajemy adres IP naszego serwera, nazwę użytkownika oraz hasło. W odróżnieniu od KeePassa, tutaj nie musimy wpisywać nazwy bazy danych. Po nawiązaniu połączenia, podłączony folder zostanie wylistowany, a my będziemy mogli wskazać odpowiedni plik.

Formatka do nawiązywania połączenia SFTP
Formatka do nawiązywania połączenia SFTP


Następnie aplikacja poprosi nas o hasło główne do bazy z hasłami i voilà :) Mamy gotowe połączenie z telefonu komórkowego :)
No i proszę. Tutaj było jeszcze prościej niż w oryginalnym KeePassie :)

Podsumowanie

Pomysł z plikiem bazy przechowywanym w Dropboxie był dla mnie rewolucją swego czasu. Dostęp z kilku komputerów i smartfona bez konieczności wykonywania żadnych czynności synchronizacyjnych. Miodzio :)
Wszystko robiło się z automatu i pomimo, że jestem ogromnym zwolennikiem rozwiązań chmurowych, to jednak postanowiłem wykorzystać pomysł podsunięty mi przez czytelnika i przenieść bazę do Synka. Zbyt wiele "zachodu" z tym nie było, więc czemu nie :)

Teraz mam pełną kontrolę nad tym, kto ma dostęp do bazy haseł oraz w jaki sposób. 

Jeżeli nie macie Synology na swoim posiadaniu to z powyższego sposobu możecie skorzystać także na innych NASach. Bo żeby stawiać do tego celu osobnego kompa pracującego 24/7 to... no chyba nie bardzo ;)

Cóż więcej... KeePassSynology... to musiało się udać :) Proste i bezproblemowe projekty. Takie lubię :)
Ceny wymienionego w tekście sprzętu wg Ceneo
Synology DS916+ Sprawdź

5 komentarzy:

  1. Jaka jest różńica między tym keepas instalowanym lokalnie czy też na synology, który też jest dostępny za pewne po zalogowaniu się na konto windows, a hasłami w przeglądarce? One przecież nie są dostępne bez logowania na konto Windows, co już samo w sobie jest zabezpieczeniem. A jeśli ktoś zostawia komputer niezablokowany, to nie pomoże mu ani keepas ani nic innego. Artykuł na siłę...

    OdpowiedzUsuń
    Odpowiedzi
    1. To że baza haseł jest wspólna dla każdego urządzenia które chcesz używać teraz i w przyszłości. I to że wraz ze zmianą systemu czy całkowitą zmianą komputera nie tracisz zapisanych haseł. Trzecia sprawa że nie powinno się zapisywać haseł w przeglądarkach bo jakiś syf ci może je zczytać. Są nawet zwykłe programiki które pozwalają ci wyciągnąć hasła z przeglądarki. Więc nie, to nie jest artykuł na siłę.

      Usuń
    2. Witajcie Anonimowi czytelnicy :)

      Anonim z godz. 15.14 doskonale odpowiedział na zadane wcześniej pytanie w zakresie dlaczego nie przechowywać haseł w przeglądarce. Uzupełniłbym je tylko o to, że już na samym wstępie podałem dwa linki, po przeczytaniu których można takie hasła wyciągnąć. Oczywiście, do skorzystania z pierwszego i drugiego sposobu wymagany jest dostęp do konta. Ale czy na pewno?
      Przecież wystarczy Live CD aby pobrać cały folder przeglądarki i zastosować wobec niego np. ChromePassa. Konto Windows nie przed wszystkim broni, a sposobów na wyciągnięcie haseł jest zapewne jeszcze więcej.

      Zaś co do dostępu do Synology zaraz po zalogowaniu się na konto windows - przyznam, że nie do końca wiem o co chodzi. Zarządzanie Synology odbywa się poprzez przeglądarkowy system DSM do którego także trzeba się zalogować.

      Pozdrawiam
      Daniel

      Usuń
    3. Przez sambe, gdzie możesz mieć folder z keepasem udostępniony? Albo przez program FTP z zapisanym hasłem dostępu do serwera FTP (nie wierzę, że podajesz z palca za każdym razem)?

      Przeglądarki trzymają pliki z hasłami otwartym tekstem i na pewno masz dostęp do plików użytkownika w jego katalogu (roaming) z poziomu LiveCD? No, bo nie mów, że korzystasz z tych wszystkich zabezpieczeń, a tak prostego nie posiadasz jak szyfrowanie dysku, a przynajmniej folderów z wrażliwymi danymi.

      Usuń
  2. Rozumiem. W tutorialu jest podany sposób na trzymanie hasła bez udostępniania go przez sambę. W sumie to nikt poza specjalnie utworzonym użytkownikiem i administratorem, nie ma dostępu do pliku bazy haseł.

    Z tego co się orientuję to przeglądarki nie trzymają haseł otwartym tekstem, ale nie jest to nic z czym nie poradziłyby sobie zewnętrzne programy, chociażby wymieniony na wstępie tekstu ChromePass.
    Nie, nie szyfruję dysku w domowym komputerze. W służbowych laptopach oczywiście, ale na domowym sprzęcie nie :)

    Pozdrawiam serdecznie :)
    Daniel

    OdpowiedzUsuń

Bardzo proszę o zachowanie netykiety.

Related Posts Plugin for WordPress, Blogger...