Kurs Red Hat Certified System Administrator (RHCSA 7) – Zabezpieczenie logowania poprzez SSH cz.4

Pracując w konsoli często zachodzi potrzeba podłączenia się do zdalnego systemu, aby coś sprawdzić, przesłać plik czy jakiś pobrać. W takim przypadku niezbędne jest skonfigurowanie bezpiecznego opartego o certyfikat połączenia. Ale najpierw pokaże w jaki sposób zabezpieczyć maszynę dla dostępu z zewnątrz.

Zabezpieczenie logowania po SSH

Z pomocą przychodzi SSH (Secure Shell), dzięki któremu możesz za darmo wygenerować klucz prywatny oraz publiczny, następnie musisz wysłać klucz publiczny na zdalną maszynę lub pobrać lokalnie i wtedy otrzymujesz możliwość logowania się bez podawania hasła poprzez SSH z konsoli lub przy pomocy putty. Co ważne, nikt (przynajmniej na razie) nie jest w stanie rozszyfrować danych przesyłanych w trakcie takiego połączenia.

Lista kroków w trakcie konfiguracji…

Na początku zajmiesz się konfiguracją SSH, aby nikt poza Tobą nie dostał się do serwera z zewnątrz lub przynajmniej nie zrobi tego przy pierwszej próbie. Wykonaj te kroki na wszystkich maszynach.

Każdy świeżo zainstalowany system z rodziny GNU/Linux posiada usługę SSH zaszytą na liście usług. Jednak domyślna konfiguracja musi zostać poprawiona, aby znacząco podnieść bezpieczeństwo.

Na początek przejdź do pliku konfiguracyjnego sshd (tak nazywa się usługa SSH):

Domyślnie SSH zezwala na logowanie przy pomocy hasła. Odnajdź w pliku wiersz:

Następnie usuń znak # (który jest komentarzem) oraz zmień parametr yes na no.

Kolejnym punktem jest ustawienie protokołu na 2, ustaw ją w wierszu:

Kolejny krok to zmiana domyślnego portu SSH z 22 na jakiś inny znany tylko Tobie:

Możesz również utrudnić robotę potencjalnemu włamywaczowi i dodać listę kont/grup, które mogą się logować oraz tych, które mają ją jawnie zablokowaną.

Ważną informacją w tym momencie jest to, że wprowadzone wyżej opcje wymagają restartu usługi lub całego serwera. Jednak oczywiście jeżeli teraz to zrobisz to odcinasz sobie wejście na serwer, ponieważ nie możesz się logować zwykłym hasłem.

Dlatego też wygeneruj teraz klucze publiczny i prywatny. Ten pierwszy możesz przekazać innym osoba, natomiast prywatny musisz zostać na serwerze tylko i wyłącznie pod Twoją kontrolą.

WAŻNE: na drugiej maszynie musi istnieć konto użytkownika takie samo jak to na którym pracujesz obecnie.

Wygeneruj klucz RSA o długości 4096 na wszystkich maszynach na które chcesz się logować bez podawania hasła. W tym celu użyj dostępnego w pakiecie SSHD generatora kluczy.

W trakcie generowania kluczy zostaniesz poproszony o podanie kilku informacji:

  1. Nazwę klucza, ja zostawiam domyślną, więc należy kliknąć Enter,
  2. Kolejne dwa pytania dotyczą nałożenia hasła na klucze lub można pozostawić puste. Jest to zabezpieczenie na okoliczność przenoszenia kluczy, np. poprzez internet. Jeżeli nie ustawisz hasła, można klucze przesłać np. w „zahasłowanym” archiwum .zip lub .rar. Ja pozostawiam to hasło puste.
  3. Potwierdzasz wszystkie pozostałe opcje poprzez Enter, aż zobaczysz napis: +–[ RSA 4096] ——+

W ten sposób otrzymujesz klucze, które domyślnie znajdują się w:

Po przejściu do .ssh zobaczysz dwa pliki, pierwszy będzie kluczem prywatnym, drugi publicznym:

Klucz publiczny musisz skopiować na zdalną maszynę jeżeli chcesz pomiędzy dwiema maszynami logować się bez hasła. W tym celu użyj poniższego polecenia do przeniesienia klucza publicznego. Jeżeli korzystasz z Windows’a musisz pobrać klucz prywatny, aby go skonwertować o czym w kolejnej części poniżej.

Domyślnie plik powinien zostać umieszczony w .ssh również na zdalnym serwerze. Ostatni raz musisz podać hasło do konta, aby potwierdzić swoją tożsamość oraz zakończyć kopiowanie.

Otrzymasz również informację w jaki sposób dokonać logowania na zdalną maszynę. W tym przypadku zdalna maszyna nie będzie prosiła już o podanie hasła do konta. Takie samo polecenie zmieniając jedynie adres IP maszyny docelowej, wykonaj na zdalnej maszynie, aby potwierdzić, że jesteś uprawnioną osobą do tych czynności:

Na koniec, pod warunkiem, że korzystasz z systemu GNU/Linux na swoim domowym komputerze musisz wykonać restart każdej maszyny, na której został wygenerowany klucz lub wystarczy restart samej usługi sshd:

Na tym możesz zakończyć pracę z SSH, która powinna już działać poprawnie.

A jeżeli korzystasz z Windowsa…

Musisz przekonwertować plik id_rsa (klucz prywatny, który potwierdza Twoją tożsamość) do formatu zrozumiałego dla Windows czyli .ppk.

Jeśli posiadasz już klucz prywatny, który wygenerowałeś w systemie Linux i chcesz go użyć w systemie Windows, wymagane jest wykonanie konwersji klucza prywatnego do formatu .ppk (zgodnego z systemem Windows). Umożliwia to aplikacja PuTTyGen, którą trzeba pobrać i uruchomić.

Jeśli posiadasz plik klucza prywatnego na swoim komputerze, uruchom aplikację PuTTyGen i przejdź kolejno w menu:

  1. Conversions -> Import key,
  2. Wybierz plik klucza prywatnego – skopiowany z GNU/Linux (id_rsa),
  3. W polu: Key passphrase możesz wpisać hasło do zabezpieczenia,
  4. Kliknij przycisk: Save private key i zapisz klucz prywatny w postaci pliku w formacie .ppk

W wykonaniu tych kroków, putty powinien połączyć się bez problemu z serwerem, ponieważ klucz został zapisany w systemie Windows, tam gdzie może go odnaleźć.

Po tych zabiegach w przypadku korzystania z Windows możesz wykonać restart SSH na maszynach, do których chcesz się dostać bez hasła.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT