Poradnik administracji Ubuntu

Zabezpieczanie nowego VPS z Ubuntu krok po kroku

Zabezpiecz nowy VPS z Ubuntu, aktualizując system, tworząc imienne konto administratora, sprawdzając logowanie przez SSH za pomocą klucza, ograniczając usługi dostępne z sieci, włączając zaporę na serwerze oraz konfigurując monitoring i kopie zapasowe. Wprowadzaj zmiany po kolei, zachowaj dostęp do konsoli dostawcy i nie zamykaj pierwotnej sesji SSH, dopóki drugie połączenie nie zakończy się powodzeniem.

Najważniejsze informacje

Dotyczy
Obsługiwane wersje Ubuntu Server korzystające z systemd i OpenSSH
Najważniejsze zabezpieczenie
Zachowanie dostępu do konsoli i sprawdzenie drugiej sesji
Uwierzytelnianie
Klucz SSH chroniony hasłem, przypisany do imiennego użytkownika
Odzyskiwanie
Niezależna kopia zapasowa i przetestowane odtworzenie

Najpierw zaktualizuj i sprawdź system

Jeśli platforma udostępnia migawki, wykonaj migawkę u dostawcy tylko wtedy, gdy rozumiesz, że nie jest ona niezależną kopią zapasową. Zaloguj się udokumentowaną metodą początkową, potwierdź obraz systemu operacyjnego i zainstaluj aktualizacje z repozytoriów poleceniem sudo apt update, a następnie sudo apt full-upgrade. Przeczytaj komunikaty przed zaakceptowaniem zamiany plików konfiguracyjnych. Jeśli wymaga tego jądro lub kluczowy składnik systemu, wykonaj sudo reboot.

Połącz się ponownie i sprawdź nasłuchujące usługi poleceniem sudo ss -tulpn. Każdy publicznie dostępny port powinien mieć określonego właściciela i cel. Minimalny obraz Ubuntu dla chmury może różnić się od obrazu instalacyjnego, dlatego nie zakładaj z góry, które usługi są włączone. Przed instalacją stosu aplikacji zapisz stan wyjściowy.

  • Korzystaj tylko z repozytoriów i kluczy, którym świadomie ufasz.
  • Usuń nieużywane oprogramowanie po upewnieniu się, że nie jest zależnością.
  • Zaplanuj regularne aktualizacje, zamiast poprzestawać na pierwszej aktualizacji.

Utwórz imienne konto administratora i sprawdź klucze SSH

Utwórz osobne konto poleceniem sudo adduser deploy, zastępując nazwę z przykładu wybraną nazwą użytkownika, a następnie nadaj mu dostęp administracyjny poleceniem sudo usermod -aG sudo deploy. Dodaj klucz publiczny SSH tego użytkownika do ~/.ssh/authorized_keys, korzystając z funkcji dostawcy albo z ssh-copy-id. Nigdy nie przesyłaj pliku klucza prywatnego.

Otwórz drugi terminal i sprawdź ssh deploy@SERVER_IP. Upewnij się, że działa sudo -v. Dopiero po tym teście rozważ wyłączenie bezpośredniego logowania roota i logowania hasłem. Edytuj dodatkowy plik konfiguracyjny poleceniem sudoedit /etc/ssh/sshd_config.d/60-local-hardening.conf, ustaw PermitRootLogin no oraz PasswordAuthentication no, sprawdź konfigurację poleceniem sudo sshd -t, a następnie przeładuj ją przez sudo systemctl reload ssh. Pozostaw dotychczasową sesję otwartą i ponownie przetestuj logowanie.

  • Jawnie zastąp wszystkie przykładowe nazwy i adresy.
  • Używaj lokalnego hasła do klucza oraz menedżera haseł lub bezpiecznego agenta.
  • Jeśli sprawdzenie konfiguracji się nie powiedzie, popraw plik i nie przeładowuj SSH.

Zezwalaj tylko na potrzebne usługi sieciowe

UFW w Ubuntu jest wygodnym interfejsem zapory działającej na serwerze. Najpierw upewnij się, że SSH używa oczekiwanego portu. Zezwól na nie poleceniem sudo ufw allow OpenSSH; jeśli port został celowo zmieniony, utwórz odpowiednią regułę. Sprawdź planowany stan przez sudo ufw status verbose, włącz zaporę poleceniem sudo ufw enable, a przed zamknięciem starego terminala potwierdź dostęp w nowym.

Dodawaj porty aplikacji dopiero wtedy, gdy dana usługa jest zainstalowana i gotowa. W przypadku serwera WWW są to często porty TCP 80 i 443, ale nie istnieje jedna lista odpowiednia dla każdego wdrożenia. Zapora dostawcy i UFW mogą się uzupełniać; udokumentuj obie warstwy, aby osoba reagująca na incydent wiedziała, która z nich zablokowała ruch.

  • Nie włączaj zdalnie zapory domyślnie odrzucającej ruch bez reguły zezwalającej na SSH.
  • Udostępniaj prywatne bazy danych tylko przez interfejs lokalny lub prywatny.
  • Po wdrożeniu oprogramowania ponownie wykonaj sudo ss -tulpn.

Zamień utwardzanie w stały proces operacyjny

Zainstaluj i przejrzyj automatyczne aktualizacje zabezpieczeń poleceniem sudo apt install unattended-upgrades, a następnie skonfiguruj je zgodnie z zasadami konserwacji i ponownych uruchomień. Monitoruj miejsce na dysku, pamięć, nieudane próby uwierzytelniania, stan usług, terminy ważności certyfikatów i wyniki kopii zapasowych. Nie udostępniaj agenta monitorującego bez uwierzytelniania i ograniczeń sieciowych.

Utwórz niezależną, wersjonowaną kopię zapasową i odtwórz ją w odizolowanym systemie testowym. Kody odzyskiwania i instrukcje korzystania z konsoli przechowuj oddzielnie od VPS. Ustawienia bezpieczeństwa zmieniają się z czasem, dlatego przed wdrożeniem produkcyjnym porównaj tę ogólną listę z aktualną dokumentacją Ubuntu i potrzebami aplikacji.

  • Regularnie przeglądaj konta administratorów i ich klucze.
  • Aktualizuj aplikacje, a nie tylko system operacyjny.
  • Przed usunięciem dowolnej metody logowania udokumentuj sposób odzyskania dostępu.

Źródła

  1. Dokumentacja zapory Ubuntu Server
  2. Dokumentacja bezpieczeństwa Ubuntu
Częste pytania

Częste pytania

Czy warto zmienić port SSH?

Może to ograniczyć szum generowany przez rutynowe skanowanie, ale nie zastępuje uwierzytelniania kluczem, aktualizacji, kontroli dostępu ani monitoringu. Jeśli zmienisz port, zaktualizuj każdą warstwę zapory i przeprowadź test przed zakończeniem sesji.

Czy mogę od razu wyłączyć logowanie roota?

Dopiero gdy imienny użytkownik może zalogować się kluczem, uzyskać wymagane uprawnienia sudo i ponownie połączyć się w osobnej sesji. Zachowaj możliwość odzyskania dostępu przez konsolę.

Czy UFW wystarczy do zabezpieczenia VPS?

Nie. Zapora ogranicza dostępność usług przez sieć, ale nie aktualizuje podatnego oprogramowania, nie chroni skradzionych danych logowania, nie zabezpiecza logiki aplikacji i nie zastępuje kopii zapasowych.