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.
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_configWyłą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 noWyłą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 yesOgraniczanie 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 sshusersZmiana 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 2222Ograniczanie prób logowania i sesji
Jest kilka dyrektyw, które skracają czas dostępny dla napastników:
MaxAuthTries— liczba nieudanych prób przed rozłączeniemLoginGraceTime— liczba sekund dozwolonych na uwierzytelnienieMaxSessions— liczba jednoczesnych sesji w ramach jednego połączenia
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2Bezpieczne 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 sshOchrona 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 sshdWeryfikowanie 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 noprzed 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
MaxAuthTriesiLoginGraceTime - Dodano Fail2ban w celu dynamicznej ochrony przed atakami brute force
Zweryfikuj konfigurację za pomocą sshd -t i zawsze wykonuj testy przed zamknięciem sesji.
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
- Poznawanie protokołu SSH
- Konfigurowanie klienta SSH
- Uwierzytelnianie SSH za pomocą kluczy
- Zabezpieczanie serwera SSH