Uptime: 99.981%
Strony WWW:
Nowe strony WWW dzisiaj:
100 000 Użytkowników w SEOHOST. To dzięki Wam! Czytaj więcej W SEOHOST Użytkownik jest zawsze na pierwszym miejscu! Czytaj więcej Z SEOHOST korzysta już ponad 90 000 Użytkowników! Czytaj więcej Pełna transparencja: uptime naszej infrastruktury Czytaj więcej Wywiad z naszym CEO na bezprawnik.pl Czytaj więcej SEOHOST.pl zdobywa 2 miejsce w rankingu NASK. Czytaj więcej Uwaga: kolejna próba phishingu! Czytaj więcej Dlaczego warto migrować do SEOHOST? Czytaj więcej
Redakcja SEOHOST.pl
Redakcja SEOHOST.pl
07 Czerwca 2020
4 minuty

Blokowanie konta ROOT oraz zmiana domyślnego portu SSH na serwerze VPS

Zaraz po zakupie serwera VPS warto od razu wyłączyć logowanie się na konto ROOT i zmienić domyślny port SSH (22). Konto ROOT to cel nr 1 dla automatycznych skanerów i ataków brute-force, więc jego zablokowanie to jedna z podstawowych metod zabezpieczenia serwera.

Jeśli chcesz skutecznie zabezpieczyć swój serwer VPS już od pierwszego dnia, zadbaj o solidne podstawy techniczne. Blokowanie logowania ROOT, zmiana portu SSH i konfiguracja dostępu działają najefektywniej wtedy, gdy serwer pracuje na stabilnym środowisku — takim jak szybki hosting NVMe lub niezawodny serwer VPS. Pamiętaj również o aktywnej domenie internetowej, a jeśli zależy Ci na oszczędnościach, sprawdź korzystny cennik rejestracji i odnowienia domen.

       

Blokowanie konta ROOT

Na początku, przed zablokowaniem możliwości logowania się na konto ROOT, dodajmy poleceniem useradd nasze konto robocze, z którego będziemy mogli przeprowadzać wszelakie prace administracyjne.

useradd administrator
# Polecenie do nadania hasła nowemu użytkownikowi:
passwd administrator

Po wprowadzeniu hasła do naszego nowo powstałego użytkownika możemy przejść do edycji pliku sudoers, dodając następujące wpisy, aby nadać użytkownikowi uprawnienia administracyjne:

vim /etc/sudoers

W nim dodajemy następującą linię, zamieniając nazwa_naszego_sura na nazwę utworzonego użytkownika:

nazwa_naszego_sura ALL=(ALL) ALL

Bądź wprowadzając następujące polecenie:

echo "nazwa_uzytkownika ALL=(ALL) ALL" >> /etc/sudoers

Sprawdzenie

Przed dokonaniem dalszych zmian koniecznie sprawdź, czy masz dostęp z naszego nowego konta możliwość operowania z uprawnieniami ROOT.

W celu sprawdzenia wprowadź polecenie:

sudo su

Jeśli udało Ci się zalogować jako ROOT z użytkownika, którego utworzyliśmy, to znaczy, że wszystko się udało i jedynie pozostaje nam zablokowanie logowania do konta ROOT.

Blokowanie konta ROOT

Po sprawdzeniu naszego użytkownika roboczego i upewnieniu się, że mamy do niego dostęp, możemy zablokować możliwość logowania się jako ROOT, a więc:

Aby zablokować możliwość logowania się jako ROOT, musimy edytować plik o nazwie sshd_config znajdujący się w katalogu ssh. Ścieżka do pliku jest poniżej - otwórz tenże plik swoim ulubionym edytorem tekstu (np. nano czy vim) i odnajdź następującą opcję:

sudo vim /etc/ssh/sshd_config

Opcja do zmiany z "yes" na "no":

Edycja sshd_config, zmiana 'PermitRootLogin yes' na 'no'

PermitRootLogin no

Po dokonaniu powyższych zmian należy zrestartować usługę poleceniem:

service sshd restart

Polecenie powinno zadziałać jednakowo na Debianie/Ubuntu oraz na CentOS.

Zmiana portu SSH

Zmianę domyślnego portu naszego SSH możesz dokonać w następujący sposób.

Domyślny port SSH to 22, który jest często skanowany przez atakujące boty. Przed zmianą portu warto wykonać kopię zapasową pliku konfiguracyjnego.

Za pomocą dowolnego edytora tekstu (czy to vim, czy nano obojętnie) edytuj następujący plik "sshd\_config":

vim /etc/ssh/sshd_config

W powyższym pliku musimy zlokalizować linię zaczynającą się #Port 22, odkomentować ją (usunąć #) a następnie zamienić 22 na dowolny port, najlepiej wyższy niż 1024, czyli np. 4312. Po dokonaniu zmian możemy zrestartować usługę analogicznym poleceniem jak podczas blokowania logowania do konta ROOT.

service sshd restart

Teraz możemy za pomocą narzędzia netstat sprawdzić, czy wszystko poprawnie się zaaplikowało (narzędzie można doinstalować za pomocą polecenia yum install net-tools w przypadku CentOS).
Output wygląda następująco:

Wynik z netstat pokazujący nasłuchiwanie na nowym porcie

Kopia zapasowa przed zmianą konfiguracji

Jeśli interesuje Cię bezpieczne przeprowadzenie zmian w konfiguracji SSH — zwłaszcza gdy robisz to pierwszy raz — warto wykonać szybki backup pliku sshd_config. Dzięki temu, jeśli wkradnie się literówka lub usługa nie wstanie po restarcie, możesz przywrócić poprzednią wersję jednym poleceniem.

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Ten krok nic nie kosztuje, a potrafi oszczędzić sporo nerwów w sytuacji, gdy przypadkowo zablokujesz sobie dostęp do serwera.

Logowanie kluczem SSH jako bezpieczna alternatywa

Jeżeli interesuje Cię maksymalne ograniczenie ryzyka włamań typu brute-force, warto rozważyć logowanie za pomocą klucza SSH zamiast hasła. To metoda, którą administratorzy stosują jako standard — klucz jest praktycznie niemożliwy do odgadnięcia, a po jego włączeniu możesz całkowicie wyłączyć logowanie hasłem.

Generowanie klucza:

ssh-keygen -t ed25519

Wklejenie klucza na serwer (do pliku authorized_keys):

nano ~/.ssh/authorized_keys

A gdy wszystko działa — możesz w sshd_config ustawić:

PasswordAuthentication no

To rozwiązanie szczególnie polecam, jeśli chcesz podnieść poziom bezpieczeństwa po jednoczesnym wyłączeniu logowania ROOT i zmianie portu SSH. Dzięki temu serwer staje się odporniejszy na automatyczne skanery i masowe próby logowania.

Przeczytaj również inne artykuły w naszym Centrum Pomocy:

Czy udało Ci się rozwiązać problem?
Nie znalazłeś odpowiedzi na swoje pytanie?