opened image

Bezpieczeństwo na chmurowym VPS: jak chronić serwer przed atakami

Użycie chmurowego VPS wymaga szczególnej uwagi na kwestie bezpieczeństwa, ponieważ serwery w chmurze są stale zagrożone przez cyberprzestępców. Ataki cybernetyczne na serwery mogą prowadzić do wycieku danych, usunięcia informacji, zablokowania serwera, a nawet do wykorzystania zasobów VPS do przeprowadzania ataków na inne systemy. Aby zrozumieć, jak ważne jest bezpieczeństwo VPS, rozważmy niektóre podstawowe typy zagrożeń:

  1. Ataki DDoS (Distributed Denial of Service): Serwer jest przeciążany wieloma żądaniami, co prowadzi do jego niedostępności dla użytkowników i strat finansowych dla firmy.

  2. Ataki brute force: Cyberprzestępcy próbują odgadnąć login i hasło, aby uzyskać nieautoryzowany dostęp, co może prowadzić do całkowitego przejęcia systemu.

  3. Malware i rootkity: Po włamaniu się na serwer przez luki w zabezpieczeniach, cyberprzestępcy instalują złośliwe oprogramowanie, które może wykonywać ukryte działania (zbieranie danych, wysyłanie spamu, uruchamianie ataków na inne serwery).

 

 

Można uniknąć tych zagrożeń dzięki odpowiedniej konfiguracji i kompleksowemu podejściu do bezpieczeństwa. W artykule omówimy, jak prawidłowo skonfigurować SSH, zaporę sieciową, wdrożyć uwierzytelnianie dwuskładnikowe i wykorzystać inne środki ochrony.

 

Podstawowe środki bezpieczeństwa dla chmurowego VPS

 

1. Konfiguracja protokołu sieciowego SSH

SSH — główny sposób zarządzania serwerem i "Instalacja i użycie protokołu SSH na Ubuntu 24.04 LTS", ale jego standardowe ustawienia czynią serwer podatnym na ataki. Ochronę połączenia z serwerem można zapewnić, podejmując określone środki bezpieczeństwa.

Zmiana standardowego portu SSH
Standardowy port 22 dla SSH jest często skanowany przez cyberprzestępców. Aby zmniejszyć liczbę ataków na serwer, zaleca się rezygnację z używania portu SSH i jego zamianę.

Wprowadź niezbędne zmiany w pliku sshd_config, aby zmienić port SSH:
sudo nano /etc/ssh/sshd_config

W dokumencie konfiguracyjnym należy znaleźć linię z #Port 22 i ustawić inną wartość, na przykład 2200. Zapisz zmiany i uruchom ponownie usługę SSH:
sudo systemctl restart ssh

 

 

  • Wyłączenie dostępu przez hasło
    Znacznie poprawia proces pracy wdrożenie i zastosowanie kluczy SSH, które zastępują klasyczne hasła, ponieważ klucze są trudne do odgadnięcia metodą brute force. Aby skonfigurować, zapoznaj się z opisanymi poniżej działaniami:
    Tworzenie klucza:
    ssh-keygen -t rsa -b 4096
    Utworzenie na serwerze duplikatu klucza:
    ssh-copy-id user@server_ip
    Dezaktywacja systemu haseł:
    sudo nano /etc/ssh/sshd_config
    Ustaw PasswordAuthentication na no, a następnie uruchom ponownie protokół sieciowy.

  • Użycie adresów IP do ograniczenia dostępu
    Należy używać ustawień zapory sieciowej lub plików konfiguracyjnych /etc/hosts.allow i /etc/hosts.deny, aby zastosować konfiguracje, które pozwolą na dostęp do SSH tylko dla określonych adresów IP.

 

2. Użycie silnych haseł

 

Skomplikowane hasła, zawierające co najmniej 12 znaków, znaki specjalne i litery w różnych rejestrach, zwiększają odporność, odgrywając kluczową rolę w ochronie przed atakami brute force. Zaleca się korzystanie z menedżerów haseł, aby uniknąć zapamiętywania skomplikowanych kombinacji.

 

3. Uwierzytelnianie dwuskładnikowe

 

Aby zapewnić wyższy poziom bezpieczeństwa, należy skonfigurować uwierzytelnianie dwuskładnikowe (2FA). Doda to dodatkowy poziom ochrony, wymagając nie tylko hasła, ale także jednorazowego kodu generowanego przez aplikację na twoim telefonie.

Zainstaluj bibliotekę:
sudo apt install libpam-google-authenticator

 

 

Skonfiguruj uwierzytelnianie za pomocą Google Authenticator:
google-authenticator

 

 

Skanuj kod QR aplikacją i postępuj zgodnie z instrukcjami. Zrzut ekranu powyżej ma na celu pokazanie, jak to będzie wyglądać i był wykonany w środowisku testowym.

 

4. Inne środki bezpieczeństwa

Ograniczenie uprawnień dostępu: Twórz oddzielnych użytkowników z ograniczonymi uprawnieniami i używaj sudo tylko w razie potrzeby.

Aktualizacja oprogramowania: Stare wersje oprogramowania mogą zawierać luki, które cyberprzestępcy mogą wykorzystać do włamania się na serwer. Regularne aktualizowanie wszystkich pakietów zmniejsza takie ryzyko:
sudo apt update && sudo apt upgrade

Monitorowanie logów: Logi zawierają ważne informacje o podejrzanej aktywności na serwerze. Używaj narzędzi fail2ban i logwatch do automatycznego monitorowania i powiadamiania o podejrzanej aktywności.

 

Konfiguracja zapory sieciowej

 

Zapora sieciowa, znana również jako firewall, jest pierwszą linią obrony, zapobiegającą nieautoryzowanemu dostępowi do twojego serwera. Można skorzystać z narzędzia ufw (Uncomplicated Firewall), które można stosować jako zaporę sieciową. Charakteryzuje się ono prostotą w konfiguracji i zarządzaniu.

 

1. Instalacja i uruchomienie narzędzia

W przypadku braku zainstalowanej wersji, zainstaluj i aktywuj ufw:

sudo apt install ufw


 

sudo ufw enable

 

2. Otwieranie dostępu przez SSH

Umożliw dostęp do SSH na wybranym porcie, aby uniknąć utraty połączenia z serwerem:

sudo ufw allow 2200/tcp  # Podaj swój niestandardowy port

 

3. Konfiguracja reguł dostępu

Po skonfigurowaniu SSH można zezwolić na dostęp do innych usług, takich jak HTTP i HTTPS:

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

 

4. Blokowanie wszystkich innych połączeń

Aby wzmocnić ochronę, całkowicie zablokuj przychodzące połączenia, z wyjątkiem tych, którym wyraźnie udzieliłeś zezwolenia:

sudo ufw default deny incoming

sudo ufw default allow outgoing

 

5. Analiza i ocena norm

Możliwość zapoznania się z obowiązującymi zasadami zapory i potwierdzenia, że wszystkie konfiguracje działają poprawnie, daje polecenie ufw status:

sudo ufw status


 

Nadzór i ocena środków bezpieczeństwa

Ciągłe przeprowadzanie kontroli i nadzoru nad bezpieczeństwem pomaga uniknąć incydentów, zapobiegając wyrządzeniu szkód.

 

Jak pracować z fail2ban
Narzędzie fail2ban automatycznie ogranicza dostęp adresów IP, które wykonują podejrzane działania, takie jak wielokrotne nieudane logowania. Zainstaluj narzędzie:
sudo apt install fail2ban


 

Przygotuj plik konfiguracyjny i ustaw parametry blokady:


sudo nano /etc/fail2ban/jail.local

Ustaw niezbędne konfiguracje dla SSH, HTTP i innych usług.

 

Monitorowanie logów za pomocą logwatch


logwatch — narzędzie, które pozwala na otrzymywanie raportów o podejrzanej aktywności na serwerze. Zainstaluj logwatch:
sudo apt install logwatch


 

 

 

  1. Aby monitorować aktywność na serwerze, warto skonfigurować codzienne raporty na email.

  2. Kopia zapasowa danych
    Aby chronić swoje pliki przed cyberatakami lub błędami administratora, niezwykle przydatne jest regularne tworzenie kopii zapasowych wszystkich niezbędnych danych. Aby skonfigurować automatyczne kopie zapasowe, można skorzystać z rsync, cron oraz chmurowych usług przechowywania.

 

 

Podsumowanie

Korzystając z omówionych metod, można znacznie wzmocnić ochronę VPS i zmniejszyć ryzyko. Fundamentalnymi, ale nie wyczerpującymi środkami zapewnienia bezpieczeństwa będą instalacja uwierzytelniania dwuskładnikowego, stosowanie skomplikowanych haseł oraz konfiguracja SSH. Konfiguracja zapory ogranicza dostęp tylko do potrzebnych portów, zapobiegając nieautoryzowanemu połączeniu, a takie narzędzia jak fail2ban i logwatch pomogą w terminowym wykrywaniu podejrzanych działań i zapobieganiu prób intruzji.

Warto również pamiętać o regularnym tworzeniu kopii zapasowych danych. Niezależnie od tego, jak dobrze zabezpieczony jest twój system, zawsze istnieje szansa, że serwer napotka atak. W takich przypadkach kopie zapasowe będą nieocenioną pomocą w szybkim przywracaniu systemu i minimalizowaniu szkód. Nie zapominaj okresowo przeglądać i aktualizować swoje ustawienia bezpieczeństwa zgodnie z aktualnymi zagrożeniami. Współczesne cyberataki stają się coraz bardziej wyrafinowane, a tylko stała uwaga na bezpieczeństwo pozwoli chronić twój VPS i dane na nim.

Aby wzmocnić swoją ochronę, staraj się być na bieżąco z nowymi lukami i trendami w dziedzinie cyberbezpieczeństwa. Wykorzystanie tych zaleceń w całości tworzy potężną strategię ochrony i zapewnia stabilną i bezpieczną pracę twojego serwera, niezależnie od tego, do jakich zadań go używasz.