Własny serwer VPS cz1 – logowanie i zabezpieczanie

Własny serwer VPS – gdy zwykły hosting współdzielony to już za mało…

Ten wpis jest poświęcony konfiguracji serwera VPS przeznaczonego do hostowania stron www, obsługi poczty e-mail itp.

W poniższym przykładzie posłużymy się dystrybucją Centos 8 na której zainstalujemy CyberPanel.

Spis treści:

Pierwsze połączenie do serwera

Tuż po zakupie (reinstalacji) serwera VPS otrzymujemy wiadomość powitalną z danymi dostępowymi. Powinny być to co najmniej:

  • adres IP
  • login
  • hasło

Wiadomość wygląda mniej więcej tak:

Wiadomość powitalna

Aby połączyć się do serwera skorzystamy z programu PuTTY.

W pole “Host Name (or IP address)” wpisujemy adres IP otrzymany od usługodawcy. Łączymy się przez SSH będzie to jak na razie port 22

Własny serwer VPS

Podczas pierwszego połączenia możesz zostać poproszony o potwierdzenie odcisku klucza serwera. Naciśnij “YES” lub “TAK

potwierdzanie odcisku klucza

W kolejnym kroku zostaniesz poproszony o wpisanie nazwy użytkownika. Wpisuję więc w moim przypadku “centos” i naciskam Enter

Twój usługodawca może wysłać ci inną nazwę użytkownika np root.

W kolejnym kroku zostaniesz poproszony o wpisanie hasła.

Uwaga! Wpisując hasło kursor nie będzie się przesuwał. Ale spokojnie, Twoja klawiatura działa, pisz dalej. Jest to zabezpieczenie aby nikt nie poznał długości Twojego hasła.

Po poprawnie wpisanym haśle i zatwierdzeniu Enterem może, aczkolwiek nie musi pokazać się wiadomość powitalna np. z informacją dotycząca (prób) ostatnich logowań.

Last login: Fri Jul  3 12:49:45 2020 from 91.217.1.61
Pierwsze logowanie do serwera VPS

Najważniejsze jest to, że udało się zalogować i terminal oczekuje na dalsze polecenia. Informuje o tym znak zachęty np. “$

[centos@vps-c9b20095 ~]$

Mamy tutaj linijkę: [nazwa_użytkownika at nazwa_hosta] znak_zachęty

Zabezpieczanie serwera

Aktualizacja

Pierwszą czynnością po zalogowaniu się do serwera będzie aktualizacja pakietów :

yum update

ewentualnie

yum upgrade


Error: This command has to be run under the root user.

A jeśli masz problem z aktualizacją przez ten błąd…

Error: This command has to be run under the root user.

Użyj komendy

sudo yum update

albo co jest mniej eleganckie

sudo su
sudo su

Znak dolara “$” zamieni się w hash “#” oznacza to, że działamy na uprawnieniach Administratora.

Dla pewności możesz sprawdzić “kim jesteś”

whoami

w odpowiedzi otrzymasz nazwę bieżącego użytkownika.

następnie spróbuj ponownie użyć yum update lub yum upgrade

W oknie terminala zostanie wyświetlone albo

Nothing to do.
Complete!

co oznacza mniej więcej tyle że nie ma nic do zaktualizowania, albo pojawi się lista pakietów posiadających nowszą wersję z pytaniem czy chcemy je zaktualizować

Aby zgodzić się na instalację wpisujemy “y” i zatwierdzamy enter

instalacja aktualizacji

Rozpocznie się instalacja

aktualizowanie centOS

Zakończenie procesu zakomunikowane zostanie napisem Complete!

Aktualizacja zakończona sukcesem

Zmiana domyślnego hasła

Aby nikt nie znał mojego (i waszego) hasła czas aby je zmienić.

passwd
zmiana hasła

System poprosił mnie o wpisanie bieżącego hasła a następnie o dwukrotne wpisanie nowego. Po wszystkim otrzymałem potwierdzenie wykonania zmian.

passwd: all authentication tokens updated successfully.

Blokada dostępu dla użytkownika root

Niewskazane jest, a nawet niebezpieczne, aby dostęp do serwera VPS odbywał się za pomocą użytkownika root. Poza tym jest to domyślna nazwa administratora tworzona w systemach UNIX-owych którą będą próbowały wykorzystać osoby o złych zamiarach. Wystarczy że mają adres IP i nazwę użytkownika a do pełni szczęścia brakuje im tylko hasła, które będą próbowali złamać. Spróbujemy im utrudnić życie i zminimalizować możliwość włamania na nasz serwer.

Aby uniemożliwić użytkownikowi root bezpośredni dostęp poprzez protokół SSH należy należy zmodyfikować plik konfiguracyjny SSH

Warto wspomnieć, że polecenie nano podane jest tu przykładowo – możesz użyć polecenia vim lub jakiegokolwiek innego polecenia umożliwiającego edytowanie pliku sshd_config.

nano /etc/ssh/sshd_config

następnie w linii

PermitRootLogin yes

Zmieniamy “yes na “no

Zmiana domyślnego portu SSH

Utrudnijmy jeszcze bardziej możliwość włamania i przy okazji zmieńmy domyślny port SSH za pomocą którego będziemy się łączyć do naszego serwera.

modyfikujemy linię:

#Port 22

usuwając hash i wpisując wybrany numer portu (najlepiej 5000+) np:

Port 5555

Następnie musimy zezwolić usłudze sshd na korzystanie z innego portu niż domyślny:

semanage port -a -t ssh_port_t -p tcp 5555

należy teraz ponownie uruchomić usługę:

systemctl restart sshd.service

Dzięki temu próba zalogowania się przez port 22 zakończy się błędem. Na przykładzie PuTTY:

Błąd po zmianie portu SSH

A logowanie na root-a?

blokada użytkownika root

Tworzenie i instalacja kluczy SSH

Lepszym i szybszym rozwiązaniem niż logowanie za pomocą zwykłego hasła jest używanie klucza SSH – to tak naprawdę para dwóch plików (“klucza prywatnego” i “klucza publicznego“) stworzonych w taki sposób by do siebie pasowały jak klucz do zamka w drzwiach.

Do wygenerowania pary kluczy użyjemy programu PuTTYgen (PuTTY Key Generator)

Jako typ klucza wybierz “RSA“, jako liczbę bitów do wygenerowania wpisz 4096, a następnie kliknij przycisk “Generate“. Teraz losowo przesuwaj kursorem myszy w obszarze pod paskiem postępu, jak pokazano poniżej. Przesuwanie kursora myszy spowoduje wypełnianie paska postępu by na końcu wyświetlić wygenerowany klucz.

Opcjonalnie możesz wpisać dowolny opis – komentarz dla klucza w polu “Key comment

PuTTY Key Generator

Klucz publiczny należy skopiować i umieścić w katalogu użytkownika np: “/root/.ssh/authorized_keys” albo “/home/[nazwa_użytkownika]/.ssh/authorized_keys” w zależności na kogo chcemy się logować.

nano home/centos/.ssh/authorized_keys
edytor tekstu nano

Przed zapisaniem klucza prywatnego można uzupełnić pole “Key passphrase” i “Confirm passphrase” – jest to dodatkowa fraza (hasło) zabezpieczające klucz.

Bez podania dodatkowego hasła każda osoba posiadająca plik tego klucza prywatnego, będzie mogła zalogować się na Twój serwer. :/ Z drugiej strony nie po to generujemy klucz żeby wpisywać hasło a odgadnięcie zawartości tegoż pliku czy jego przechwycenie charakteryzuje się niebywale małym prawdopodobieństwem.

Wygenerowany plik klucza prywatnego w formacie *.ppk zapisujemy w czeluściach naszego dysku.

eksport klucza do pliku ppk

Aby użyć klucza należy w PuTTY przejść do “Connection -> “SSH“-> “Auth” i w pole “Private key file for authentication” wybrać wcześniej wyeksportowany klucz.

putty autoryzacja po kluczu

Dla ułatwienia całego procesu łączenia proponuję zapisać wszystkie ustawienia sesji. Czyli mając wypełnione pola:

  • Host Name
  • Port
  • Saved Session – dowolna wymyślona nazwa
  • Private key file for authentication

Nasikamy “Save“.

ustawienia putty

Nazwa sesji pojawi się na liście. Od tej pory nie trzeba będzie za każdym razem uzupełniać od nowa ustawień. Po prostu wybieramy wcześniej zapisaną nazwę sesji, naciskamy “Load” i następnie “Open“.

łączenie się przez klucz do serwera

wpisujemy nazwę użytkownika, po czym serwer informuje nas że nastąpi uwierzytelnianie za pomocą klucza SSH. W cudzysłowie znajduje się wcześniej wypełniony komentarz do klucza.

Authenticating with public key "rsa-key-20200704"

Jeśli ustaliliśmy hasło dla klucza należy je także podać.

Passphrase for key "rsa-key-20200704":

W przeciwnym wypadku (bez hasła klucza) zostaniemy od razu zalogowani 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *