Linux Server Deployment & SSH Mastery · Lekcja

Zabezpieczanie serwera SSH

Zabezpieczą Państwo serwer SSH, edytując sshd_config: wyłączą logowanie roota i hasłem, zmienią ryzykowne ustawienia domyślne, ograniczą użytkowników i zastosują warstwową ochronę, aby łączyć mogli się tylko zaufani klienci.

Lekcja 4 z 413 kroki

Zabezpieczanie serwera SSH to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Dlaczego wzmacniać SSH?

Serwer SSH dostępny z internetu jest nieustannym celem zautomatyzowanych ataków. Domyślne ustawienia pozostawiają kilka otwartych drzwi, które boty bez przerwy sprawdzają.

Wzmacnianie zabezpieczeń oznacza zaostrzenie konfiguracji po stronie serwera, tak aby nawet po znalezieniu serwera przez napastników nie mogli oni uzyskać dostępu metodą brute force.

Plik sshd_config

Zachowaniem SSH po stronie serwera steruje plik /etc/ssh/sshd_config. Różni się on od konfiguracji klienta, którą skonfigurowano wcześniej (~/.ssh/config).

Zawsze edytuj ten plik jako root i przed wprowadzeniem zmian utwórz kopię zapasową.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

Wyłączanie logowania użytkownika root

Konto root jest pierwszym celem napastników. Wyłączenie bezpośredniego logowania użytkownika root zmusza ich również do odgadnięcia prawidłowej nazwy użytkownika.

Ustaw PermitRootLogin na no. Administratorzy powinni logować się jako zwykły użytkownik i korzystać z sudo.

PermitRootLogin no

Wyłączanie uwierzytelniania za pomocą hasła

Po skonfigurowaniu uwierzytelniania za pomocą klucza wyłącz hasła całkowicie. To całkowicie uniemożliwia ataki brute force — nie ma hasła, które można odgadnąć.

Ostrzeżenie: przed zastosowaniem tej zmiany upewnij się, że logowanie za pomocą klucza działa, w przeciwnym razie możesz utracić dostęp do serwera.

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

Ograniczanie użytkowników, którzy mogą się logować

Za pomocą AllowUsers lub AllowGroups można utworzyć białą listę kont, które mogą korzystać z SSH. Dostęp zostanie odrzucony każdemu, kto nie znajduje się na liście, nawet jeśli ma prawidłowe klucze.

To prosta i skuteczna kontrola na serwerach dla wielu użytkowników.

AllowUsers deploy admin
# or by group:
AllowGroups sshusers

Zmiana domyślnego portu (opcjonalnie)

Przeniesienie SSH z portu 22 nie zwiększa rzeczywistego bezpieczeństwa, ale znacznie ogranicza ilość szumu generowanego w dziennikach przez automatyczne skanery.

Wybierz niestandardowy port, pamiętaj o otwarciu go w zaporze i poinformuj o nim klientów.

Port 2222

Ograniczanie prób logowania i sesji

Jest kilka dyrektyw, które skracają czas dostępny dla napastników:

  • MaxAuthTries — liczba nieudanych prób przed rozłączeniem
  • LoginGraceTime — liczba sekund dozwolonych na uwierzytelnienie
  • MaxSessions — liczba jednoczesnych sesji w ramach jednego połączenia
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2

Bezpieczne stosowanie zmian

Po zakończeniu edycji sprawdź składnię za pomocą sshd -t przed ponownym uruchomieniem usługi — literówka może uniemożliwić jej uruchomienie i pozbawić Cię dostępu.

Następnie przeładuj usługę. Pozostaw bieżącą sesję otwartą i przetestuj nowe połączenie, zanim ją zamkniesz.

sudo sshd -t
sudo systemctl restart ssh

Ochrona przed atakami brute force za pomocą Fail2ban

Fail2ban monitoruje dzienniki uwierzytelniania i tymczasowo blokuje adresy IP, z których odnotowano zbyt wiele nieudanych prób. Dodaje dynamiczną warstwę zapory sieciowej do ustawień sshd.

Zainstaluj go i włącz więzienie SSH — ustawienia domyślne są odpowiednie dla większości serwerów.

sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Weryfikowanie wzmocnienia zabezpieczeń

Upewnij się, że serwer odrzuca teraz połączenia korzystające z wyłączonych przez Ciebie funkcji. Spróbuj połączyć się z włączonym szczegółowym wyjściem, aby sprawdzić, jakie metody uwierzytelniania oferuje serwer.

Wzmocniony serwer powinien oferować wyłącznie publickey oraz odrzucać logowania za pomocą hasła i konta root.

ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'

Najlepsze praktyki

Dbaj o bezpieczeństwo serwera SSH przez cały czas:

  • Nigdy nie ustawiaj PasswordAuthentication no przed przetestowaniem logowania za pomocą klucza
  • Podczas zmiany konfiguracji pozostaw jedną otwartą sesję
  • Po każdej edycji uruchamiaj sshd -t
  • Połącz wzmocnienie zabezpieczeń sshd z zaporą sieciową i Fail2ban

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat wzmacniania zabezpieczeń SSH.

Podsumowanie

Wzmocniłeś zabezpieczenia serwera SSH za pomocą pliku /etc/ssh/sshd_config:

  • Wyłączono logowanie za pomocą konta root i haseł
  • Dodano użytkowników do listy dozwolonych za pomocą AllowUsers
  • Dostosowano MaxAuthTries i LoginGraceTime
  • Dodano Fail2ban w celu dynamicznej ochrony przed atakami brute force

Zweryfikuj konfigurację za pomocą sshd -t i zawsze wykonuj testy przed zamknięciem sesji.

Bezpłatny start

Ucz się Linux Server Deployment & SSH Mastery dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Zabezpieczanie serwera SSH” jest bezpłatna?

Tak — pełny tekst „Zabezpieczanie serwera SSH” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Co nauczysz się w „Zabezpieczanie serwera SSH”?

Zabezpieczą Państwo serwer SSH, edytując sshd_config: wyłączą logowanie roota i hasłem, zmienią ryzykowne ustawienia domyślne, ograniczą użytkowników i zastosują warstwową ochronę, aby łączyć mogli s… Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?

Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Zabezpieczanie serwera SSH”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?

Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Poznawanie protokołu SSH
  2. Konfigurowanie klienta SSH
  3. Uwierzytelnianie SSH za pomocą kluczy
  4. Zabezpieczanie serwera SSH
← Powrót do Linux Server Deployment & SSH Mastery