Skonfiguruj SSH do korzystania z uwierzytelniania dwuskładnikowego

Bezpieczna powłoka SSH jest często używana do uzyskiwania dostępu do zdalnych systemów Linux. Ponieważ często używamy go do łączenia się z komputerami zawierającymi ważne dane, zaleca się dodanie kolejnej warstwy bezpieczeństwa.Co to jest uwierzytelnianie dwuskładnikowe

Uwierzytelnianie wieloskładnikowe to metoda potwierdzania tożsamości przy użyciu co najmniej dwóch różnych sposobów uwierzytelniania. Najczęstszy i najłatwiejszy do wdrożenia przykład uwierzytelniania dwuskładnikowego wykorzystuje kombinację hasła (złożone hasło, często złożone z kilku słów) i jednorazowego hasła wygenerowanego przez specjalną aplikację mobilną.

Będziemy używać aplikacji Google Authenticator dostępnej na Androida (w Sklepie Play ) i iOS (w iTunes ) do generowania kodów uwierzytelniających.

Co będziesz potrzebował

  • Komputer z systemem Ubuntu 16.04 LTS lub nowszym
  • Telefon z systemem Android lub iOS
  • Skonfigurowane połączenie SSH
  • Powinieneś zrozumieć niebezpieczeństwo kradzieży haseł.
  • Nie musisz wiedzieć, czym jest uwierzytelnianie dwuskładnikowe i jak działa.

Instalowanie i konfigurowanie wymaganych pakietów

Instalowanie modułu PAM Google Authenticator

Rozpocznij sesję terminala i wpisz:

sudo apt install libpam-google-authenticator

Konfigurowanie SSH

Aby SSH używał modułu PAM Google Authenticator, dodaj do /etc/pam.d/sshd następujący wiersz :

auth required pam_google_authenticator.so

Teraz musisz zrestartować sshddemona, używając:

sudo systemctl restart sshd.service

Zmodyfikuj /etc/ssh/sshd_config– zmień ChallengeResponseAuthenticationnona yes, więc ta część pliku wygląda następująco:

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no # CHANGE THIS TO YES

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

Konfiguracja uwierzytelniania

Google Authenticator znacznie ułatwia konfigurację uwierzytelniania dwuskładnikowego.W terminalu uruchom polecenie

# google-authenticator.

 

Zadaje ci szereg pytań, oto zalecana konfiguracja:

  • Ustaw tokeny na „podstawę czasu”: tak
  • Zaktualizuj .google_authenticatorplik: tak
  • Nie zezwalaj na wiele zastosowań: tak
  • Zwiększ pierwotny limit czasowy generacji: nie
  • Włącz ograniczenie prędkości: tak

Być może zauważyłeś gigantyczny kod QR, który pojawił się podczas tego procesu. Poniżej znajdują się awaryjne kody które można wykorzystać, jeśli nie masz dostępu do telefonu: zapisz je na papierze i przechowuj w bezpiecznym miejscu.

To wszystko. Teraz otwórzmy Google Authenticator i dodaj nasz tajny klucz, aby działał.

WIZERUNEK

Nie używaj niezaszyfrowanych usług do przechowywania tajnych kluczy, takich jak usługa synchronizacji notatek itp. Jeśli nie chcesz ręcznie wpisywać klucza, użyj kodu QR.

4. Dodanie klucza do Google Authenticator

Użyjemy najnowszej wersji programu Authenticator ze Sklepu Play. Proces ten nie powinien wyglądać inaczej w systemie iOS.WIZERUNEK

Korzystanie z kodu QR

Kliknij ikonę Dodaj (+) i wybierz „Zeskanuj kod kreskowy”. Za pomocą aparatu w telefonie zeskanuj kod QR.

WIZERUNEK

Używanie klucza

Kliknij ikonę Dodaj (+) i wybierz „Wprowadź podany klucz”. Wpisz nazwę, którą rozpoznasz jako metodę 2FA dla SSH, a następnie wpisz tajny klucz podany w google-authenticator.

WIZERUNEK

źródło: ubuntu.com

FIDO U2F w systemie Linux

Konieczność zneutralizowania ryzyka związanego z hasłem

Zdecydowana większość przypadków naruszenia bezpieczeństwa danych w wyniku hakowania jest wynikiem złamania haseł. Hasła nie są bezpieczne i nie można na nich polegać. Uwierzytelnianie wieloskładnikowe jest teraz koniecznością.

Ponowne użycie tego samego lub podobnego hasła w wielu usługach znacznie zwiększa narażenie na złośliwy dostęp i przejęcie konta.

Coraz bardziej wyrafinowane i wiarygodne ataki phishingowe nakłaniają ludzi do ujawnienia swoich danych logowania, a do kradzieży haseł często wykorzystuje się złośliwe programy na telefony, tablety i laptopy.

Nawet usługi zarządzania hasłami, zaprojektowane, aby pomóc osobom posiadającym wiele unikatowych haseł do kont, stały się ofiarą hakerów.

Przestępcy stosują techniki inżynierii społecznej, aby wydedukować hasła używane przez ofiary.

Rozwiązanie FIDO

Wykazano, że próby wzmocnienia bezpieczeństwa logowania za pomocą kodów wysyłanych SMS-em i lokalnie generowanych kodów OTP mają luki (wiadomości tekstowe mogą być przechwytywane w sieci telefonicznej, a kody OTP przekazywane podczas ataków typu „phishing” w czasie użytkowania). Sojusz FIDO (Fast Identity Online), do którego należą m.in. Google, Microsoft, Mozilla, MasterCard, Visa i PayPal, pracował nad zdefiniowaniem bezpiecznego i powszechnie obsługiwanego standardu.Standardy FIDO są bardzo bezpieczne – wykorzystują (asymetryczne) pary kluczy publicznych i prywatnych, przy czym klucz prywatny nigdy nie jest współdzielony i może być dokładnie chroniony za pomocą dedykowanego sprzętu zabezpieczającego. FIDO pokonuje ataki typu phishing i man-in-the-middle – ponieważ protokół uwierzytelniania FIDO wymusza weryfikację pochodzenia wiadomości, więc fałszywe strony internetowe nie zostaną rozpoznane. FIDO jest skalowalny – zaprojektowany do bezpiecznego uwierzytelniania wielu kont za pomocą jednego wystawcy uwierzytelnienia. Dla każdego konta generowane są unikalne i anonimowe kody uwierzytelniające. Logowanie bez hasła – standard FIDO2 dodaje obsługę w celu usprawnienia bezpiecznego procesu logowania poprzez całkowite usunięcie codziennego polegania na hasłach, zmniejszenie ryzyka związanego z hasłem i obciążeń związanych z administrowaniem hasłem przez zespoły wsparcia IT. (Niektóre klucze uwierzytelniania mogą być również używane jako urządzenia kompatybilne z Windows Hello – umożliwiając użytkownikom konfigurację logowania Windows Hello bez hasła na ich konkretnym komputerze z systemem Windows 10).

Chociaż niektóre najnowsze wersje systemu Linux mają wbudowaną obsługę kluczy bezpieczeństwa U2F, wiele z nich tego nie robi, dlatego może być konieczna drobna zmiana konfiguracji systemu, aby umożliwić żądającej przeglądarce internetowej (takiej jak Chrome) bezpośrednią komunikację z Twoim Klucz Token U2F przez port USB.

Jest to ogólnosystemowa aktualizacja konfiguracji, która włącza funkcjonalność Key-ID U2F w systemie Linux dla wszystkich użytkowników i jest całkowicie bezpieczna. Korzysta ze standardowych reguł udev w systemie Linux, co pozwala zidentyfikować, a tym samym zezwolić na określone urządzenia, na podstawie ich określonych właściwości, takich jak identyfikator dostawcy USB i identyfikator produktu.

Klucz FIDO U2F o identyfikatorze klucza ma identyfikator dostawcy (VID) wynoszący 096e (hex) i identyfikator produktu (PID) 0850 lub 0880 (hex). Aby włączyć go w systemie Linux, zakładając, że korzystasz z udev w wersji 188 lub nowszej, po prostu utwórz plik /etc/udev/rules.d/70-u2f.rules z następującą zawartością:


# this udev file should be used with udev 188 and newer
ACTION!="add|change", GOTO="u2f_end"  # Key-ID FIDO U2F KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850|0880", TAG+="uaccess"  LABEL="u2f_end"

możesz pobrać gotowy plik tu: http://download.ubuntu.com.pl/linux-desktop/70-u2f.rules

Zwykle musisz mieć pełne uprawnienia administratora, aby skopiować lub zapisać plik w tym folderze systemowym. Po utworzeniu uruchom ponownie system i wszystko powinno działać.

Konfiguracja systemu Ubuntu 18.04 jako klienta OpenVPN

VPNs (Virtual Private Networks) umożliwiają szyfrowany dostęp z jednego komputera do innego komputera lub sieci przez internet. W tym artykule przedstawiamy jak podłączyć maszynę kliencką Ubuntu 18.04 LTS Desktop do centralnej zapory sieciowej OPNsense za pomocą OpenVPN.

Instalacja

W Ubuntu pakiety menadżera sieciowego mogą zostać później doinstalowane, dzięki czemu konfiguracja OpenVPN jest zintegrowana bezpośrednio w ustawieniach sieciowych i może być łatwo konfigurowana:

sudo apt install network-manager-openvpn-gnome

Tworzenie konfiguracji OpenVPN

Konfigurację klienta należy wyeksportować do archiwum na firewallu OPNsense i wprowadzić dodatkowe hasło dla pliku PKCS12, które powinno różnić się od hasła użytkownika, aby zwiększyć bezpieczeństwo.

Konfiguracja połączenia OpenVPN z wiersza poleceń

Nowe połączenie OpenVPN można łatwo importować za pomocą narzędzia wiersza poleceń nmcli:

$ nmcli connection import type openvpn file </Pfad-zur-ovpn-Datei/Dateiname.ovpn>

Połączenie zostaje zintegrowane w menedżerze sieci. Następnie należy przejść do menedżera sieci i dodać użytkownika, jego hasło i hasło dla pliku z certyfikatem PKCS12. Następnie należny kliknąć na Apply. Połączenie jest teraz w pełni skonfigurowane i może zostać nawiązane.

Konfiguracja połączenia OpenVPN z GUI

Pozostałych kilka kroków konfiguracyjnych jest realizowanych w menedżerze sieci w Ubuntu

Należy uruchomić menedżer sieci. Po udanym zaimportowaniu przez “nmcli” połączenia OpenVPN należy kliknąć na symbol koła zębatego.

Poprzez dezaktywację pola wyboru można ograniczyć połączenie tylko dla własnego użytkownika.

Po wprowadzeniu “nazwa użytkownika”, “jego hasła” oraz “user key password” i kliknięciu na Apply konfiguracja połączenia OpenVPN jest zakończona i połączenie może zostać utworzone.

VPN na Ubuntu 17.4 (windscribe klient)

W sieci mamy wysyp firm oferujących usługę tunelowania naszego dostępu do internetu jednak dla użytkownika systemu linux problemem może być znalezienie usługodawcy który udostępnia darmowo klienta VPN.

Jest jednak firma która ma w swojej ofercie klienta na systemy linux-owe który działa choć jest jeszcze w fazie beta. Jak zawsze w przypadku darmowych usług także windsribe narzuca klientowi limit (10GB) transferu miesięcznie pod warunkiem potwierdzenia podanego wcześniej adresu email . Klient windscribe działa obecnie tylko w terminalu co niektórzy mogą nazwać zaletą programu.

Instalacja windscribe:
1. Logujemy się w terminalu jako root i dodajemy klucz :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key FDC247B7

2. Dodajemy repozytorium windscribe do listy:

echo 'deb https://repo.windscribe.com/ubuntu zesty main' | sudo tee /etc/apt/sources.list.d/windscribe-repo.list

3. Uruchamiamy

apt-get update
sudo apt-get update

4. Instalujemy windscribe-cli

sudo apt-get install windscribe-cli

5. Logujemy się to Windscribe (najpierw trzeba założyć konto na stronie https://windscribe.com/signup i zaznaczyć darmowe konto )

windscribe login

6. łączymy się z VPN Windscribe

windscribe connect

7. Pozostałe komendy są widoczne po wpisaniu:

windscribe --help

Szyfrowanie poczty PGP w Ubuntu 18.4 (Evolution)

Niezależnie od tego, czy używasz klienta pracy grupowej Evolution do pracy, czy do poczty e-mail, może być konieczne dodanie
warstwy zabezpieczeń do komunikacji.
Do szyfrowania wiadomości, można użyć systemu kryptografii asymetrycznej. W tym systemie każdy uczestnik ma dwa różne klucze: klucz publiczny i klucz prywatny. Gdy ktoś chce przesłać zaszyfrowaną wiadomość, musi użyć swojego klucza publicznego, by wygenerować algorytm szyfrujący. Odbiorca wiadomości, by ją odszyfrować, musi użyć swojego klucza prywatnego.

UWAGA: Nigdy nikomu nie udostępniaj swojego klucza prywatnego.

Protokół używany do szyfrowania wiadomości to PGP (Pretty Good Privacy).

Ale jak to osiągnąć? Jeśli zdarzyło Ci się używać Evolution do poczty e-mail, prawdopodobnie masz już wszystko, czego
potrzebujesz, aby tak się stało. Wystarczy odrobina pracy, aby PGP i Evolution zapewniały bezpieczeństwo tych danych.

Zanurzmy się w procesie konfigurowania i korzystania z niego.

Twój klucz PGP

Jak powiedziałem, Ubuntu GNOME 18.04 ma wszystko, czego potrzebujesz, od razu po wyjęciu z pudełka, aby
pracować z szyfrowaniem w Evolution. Jedyne, co musisz zrobić, to utworzyć klucz PGP.
Być może już go masz (w takim przypadku wystarczy wyeksportować klucz do Evolution).

Najpierw przeprowadzę Cię przez proces generowania klucza za pomocą wbudowanego narzędzia graficznego Seahorse.
Jeśli otworzysz GNOME Dash i wpiszesz hasła, powinieneś zobaczyć Hasła i Klucze . Kliknij, aby otworzyć aplikację.

Po uruchomieniu aplikacji kliknij Klawisze GnuPG (w lewym panelu nawigacyjnym).

Kliknij przycisk +, wybierz z listy Klucz PGP i kliknij Kontynuuj. Następnie zostaniesz poproszony o podanie pełnego
imienia i nazwiska oraz adresu e-mail. Możesz rozwinąć Zaawansowane opcje klucza, aby skonfigurować datę wygaśnięcia,
komentarz, siłę klucza i typ szyfrowania.
Kliknij przycisk Utwórz, wprowadź / zweryfikuj hasło do klucza i kliknij OK. Klucz zacznie się generować.
Jednym z zastrzeżeń dotyczących używania aplikacji jest to, że nie daje absolutnie żadnej wskazówki, że klucz jest generowany.
Więc w tym momencie musisz używać myszki i klawiatury w celu przyspieszenia jego generowania.

Pisz, otwieraj aplikacje, przesuwaj okna. Jest to konieczne, aby pomóc GPG
w generowaniu losowych danych niezbędnych do utworzenia klucza.

Po wygenerowaniu klucza wróć do okna głównego i wybierz właśnie utworzony klucz. Kliknij nowy klucz prawym przyciskiem myszy
i wybierz właściwości. W nowym oknie wybierz Nazwy i podpisy. Kliknij przycisk Podpisz, a następnie po wyświetleniu monitu
wybierz opcję Niezobowiązująco, a następnie kliknij Podpisz.

Po podpisaniu klucza jest on gotowy do użycia do szyfrowania w Evolution.

Klucz z wiersza poleceń

Jeśli stwierdzisz, że aplikacja nie odpowiada Twoim potrzebom, zawsze możesz utworzyć klucz GPG za pomocą wiersza polecenia.
Jest to również dość proste. Pozwól mi przeprowadzić Cię przez następujące kroki:

Otwórz okno terminala

Wydaj polecenie:

gpg2 –full-gen-key

Odpowiedź na przedstawione pytania (w większości przypadków ustawienia domyślne będą działać poprawnie)

Wprowadź hasło dla klucza GPG

W tym momencie będziesz musiał (podobnie jak podczas korzystania z aplikacji) pracować na komputerze,
aby GPG mogła wygenerować losowe dane potrzebne do utworzenia klucza.

Po wygenerowaniu klucza zobaczysz go automatycznie w aplikacji. Następnie możesz użyć aplikacji GUI do podpisania klucza
(jest to najłatwiejsza metoda, aby upewnić się, że klucz nadaje się do użycia z Evolution).

Importowanie kluczy

Jeśli masz już klucz do podpisania, możesz go zaimportować do aplikacji, klikając opcję Plik> Importuj. Przejdź do miejsca,
w którym zapisałeś klucz, wybierz go, a następnie kliknij Otwórz. Klucz powinien następnie się zaimportować i być
natychmiast dostępny do użycia. Będziesz musiał podpisać klucz (zgodnie z instrukcją wcześniej), aby działał w Evolution.

Eksport twojego klucza publicznego na serwery PGP

Aby nadawca mógł wysłać zaszyfrowaną wiadomość na Twoją skrzynkę musi posiadać Twój klucz publiczny. Możesz przekazać mu go
w formie pliku txt lub umieścić go na serwerach publicznych PGP w tym celu najprościej użyć opcji w aplikaci hasła i klucze:
Zdalne-> zsynchronizuj i opublikuj klucze.

Możesz wcześniej dodać kilka serwerów w zakładce preferencje (wpisz pgp public server w google :P)
Klucz publiczny można również wyeksportować na serwer ręcznie kopiuj/wklej jego zawartość w pole do tego przeznaczone.
Serwery publiczne między sobą się synchronizują więc wystarczy wysłać na jeden.

Znalezienie klucza publicznego jest jeszcze prostsze, wystarczy wpisać jego nazwę lub przypisany do niego email na jednym
z publicznych serwerów PGP i pobrać w postaci nazwa.asc (o ile odbiorca go opublikował). Teraz wchodzimy do aplikacji
hasła i klucze i importujemy klucz (plik->zaimportuj)

Przypisanie klucza w Evolution

Teraz możesz już użyć klucza w Evolution. Aby to zrobić, wykonaj następujące kroki:

Kliknij Edytuj> Preferencje

W kontach pocztowych wybierz konto, które ma być używane

Kliknij Edytuj

Kliknij Zabezpieczenia

W polu Identyfikator klucza OpenPGP wprowadź adres e-mail powiązany z utworzonym kluczem lub wpisz jego identyfikator

Kliknij OK

Spowoduje to powiązanie nowo utworzonego klucza z Twoim adresem e-mail.

Szyfrowanie wiadomości e-mail

Domyślnie wychodzące wiadomości e-mail nie będą szyfrowane. Aby zaszyfrować wiadomość e-mail, wykonaj następujące czynności:

Utwórz nowy e-mail

Kliknij Opcje> Szyfrowanie PGP

Możesz opcjonalnie kliknąć Opcje> Znak PGP (co pomoże odbiorcy wiedzieć, że użyty klucz może być zaufany)

Wyślij wiadomość e-mail

Zaszyfrowana wiadomość e-mail dotrze następnie do skrzynki odbiorczej odbiorcy. Oczywiście, aby odszyfrować wiadomość e-mail
odbiorca będzie musiał mieć Twój klucz publiczny i swój klucz prywatny

Aby wyeksportować klucz (backup), wrócimy do apki hasła i klucze.

Oto kroki:

Otwórz aplikację (hasła i klucze)

Kliknij klucz prawym przyciskiem myszy, aby użyć i wybrać właściwości

Wybierz kartę Szczegóły

Kliknij przycisk Eksportuj

Nadaj kluczowi nazwę i kliknij Eksportuj

Po wyświetleniu monitu wprowadź hasło powiązane z kluczem.

Szyfrowanie wybranych katalogów w Ubuntu (ENCFS)

Jeśli używasz Ubuntu lub  innych dystrybucji Linuksa opartych na Ubuntu, możesz użyć oficjalnego PPA za pomocą poniższego polecenia:

#sudo add-apt-repository ppa:gencfsm

#sudo apt-get update

#sudo apt-get install gnome-encfs-manager

Pakiety dla Debiana, Fedory i openSUSE są dostępne tutaj:

https://software.opensuse.org/download.html?project=home:moritzmolch:gencfsm&package=gnome-encfs-manager

 

Jeśli używasz GNOME na Wayland (na przykład Ubuntu 17.10), powinieneś użyć tego rozszerzenia GNOME, aby dodać szybki dostęp do górnego panelu. Przeczytaj ten artykuł, aby dowiedzieć się, jak korzystać z rozszerzeń GNOME .

Po zainstalowaniu może być konieczne wylogowanie, aby aplikacja działała. Przejdź do menu aplikacji i uruchom Gnome Encfs Manager. Kliknij znak +, aby dodać nowy folder, który będziesz blokować hasłem.

Folder chroniony hasłem nosi nazwę skrytki w terminologii tej aplikacji.

Menedżer Gnome Encfs

W tym miejscu możesz utworzyć nowy katalog lub przejść do istniejącego. Możesz spróbować zabezpieczyć istniejący folder hasłem, ale pliki, które są już obecne w folderze, nie zostaną zaszyfrowane.

Z tego powodu proponuję utworzyć nowy folder i przenieść pliki po zabezpieczeniu hasłem.

Nie zapomnij użyć hasła, które z łatwością zapamiętasz. Jeśli zapomnisz hasła, powinieneś także zapomnieć o plikach, które są z nim zaszyfrowane.

Po utworzeniu folderu możesz rozpocząć kopiowanie plików. Twój zablokowany folder będzie widoczny gdy zostanie odblokowany.

Możesz także użyć zaawansowanych ustawień, takich jak automatyczne uruchamianie lub automatyczne odmontowywanie po pewnym czasie bezczynności.

Zauważ, że tak zwany tajny katalog będzie widoczny i dostępny dla każdego w jego normalnej lokalizacji. Jednak jego zawartość nie będzie w czytelnym formacie, nawet nazwy plików. Po zamontowaniu zablokowanego folderu stanie się on czytelny.

To wszystko, co musisz wiedzieć o folderach chroniących hasłem za pomocą Gnome Encfs Manager.