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:

Aby połączyć się do serwera skorzystamy z programu PuTTY.
[tm_success]https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html[/tm_success]
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

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

W kolejnym kroku zostaniesz poproszony o wpisanie nazwy użytkownika. Wpisuję więc w moim przypadku „centos” i naciskam Enter
[tm_message]Twój usługodawca może wysłać ci inną nazwę użytkownika np root. [/tm_message]
W kolejnym kroku zostaniesz poproszony o wpisanie hasła.
[tm_warning]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. [/tm_warning]
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

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
[tm_accordion style=”3″]
[accordion title=”Error: This command has to be run under the root user.”]
A jeśli masz problem z aktualizacją przez ten błąd…

Użyj komendy
sudo yum update
albo co jest mniej eleganckie
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
[/accordion] [/tm_accordion]
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

Rozpocznie się instalacja

Zakończenie procesu zakomunikowane zostanie napisem Complete!

Zmiana domyślnego hasła
Aby nikt nie znał mojego (i waszego) hasła czas aby je zmienić.
passwd

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
[tm_message]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.[/tm_message]
[tm_accordion style=”3″]
[accordion title=”Chcę używać nano – jak w przykładzie”]
yum install nano
[/accordion][/tm_accordion]
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:

A logowanie na root-a?

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„

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

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.

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.

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„.

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„.

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 🙂