Cryptology Academy · Lekcja

Hartowanie SSH i najlepsze praktyki audytowe

Proszę zastosować hartowanie sshd_config, rotację kluczy i rejestrowanie audytowe, aby zwiększyć bezpieczeństwo wdrożeń SSH.

Lekcja 4 z 413 kroki

Hartowanie SSH i najlepsze praktyki audytowe to bezpłatna lekcja Cryptology Academy 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 Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wyłączanie uwierzytelniania hasłem

Najskuteczniejszym pojedynczym krokiem utwardzania SSH jest ustawienie PasswordAuthentication no w pliku /etc/ssh/sshd_config. Wymusza to uwierzytelnianie wszystkich użytkowników za pomocą kluczy publicznych, eliminując ryzyko związane ze słabymi lub ponownie używanymi hasłami oraz atakami brute force. Przed wyłączeniem uwierzytelniania hasłem należy upewnić się, że zainstalowano co najmniej jeden autoryzowany klucz, aby uniknąć zablokowania sobie dostępu.

Ograniczanie dozwolonych użytkowników i grup

Dyrektywy AllowUsers i AllowGroups ograniczają dostęp SSH do wskazanych użytkowników lub członków grup. Na przykład AllowGroups sshusers zezwala na dostęp wyłącznie członkom grupy sshusers. Zapewnia to dodatkową warstwę ochrony: nawet jeśli atakujący zna nazwę użytkownika i zdobędzie dane uwierzytelniające, dostęp SSH zostanie odrzucony, chyba że konto zostało wyraźnie dopuszczone.

Zmiana domyślnego portu

Zmiana portu SSH z 22 na port o wysokim numerze jest formą ukrywania, a nie zabezpieczeniem. Znacznie ogranicza jednak ilość wpisów w dziennikach generowanych przez automatyczne skanery atakujące port 22. Ułatwia to analizowanie dzienników pod kątem rzeczywistych zagrożeń. Reguły zapory sieciowej należy zawsze traktować jako podstawowy mechanizm kontroli dostępu; ukrywanie portu jest wyłącznie środkiem dodatkowym.

Wyłączanie logowania roota

Ustawienie PermitRootLogin no uniemożliwia bezpośrednie uwierzytelnianie użytkownika root przez SSH. Atakujący obierający za cel konto root ma zagwarantowaną prawidłową nazwę użytkownika, a w razie powodzenia uzyskuje nieograniczone uprawnienia. Zalecane ustawienie to PermitRootLogin prohibit-password, które zezwala na logowanie roota wyłącznie za pomocą uwierzytelniania kluczem publicznym, blokując ataki brute force na konto root z użyciem haseł, a jednocześnie zachowując dostęp awaryjny.

Ograniczanie liczby prób uwierzytelniania

MaxAuthTries 3 ogranicza liczbę prób uwierzytelniania w ramach jednego połączenia do trzech. Po trzech nieudanych próbach serwer kończy połączenie. Spowalnia to próby brute force. W połączeniu z wykładniczym wydłużaniem odstępów realizowanym przez fail2ban lub SSHGuard, które tymczasowo blokują adresy IP po wielokrotnych niepowodzeniach, ataki brute force stają się praktycznie niewykonalne obliczeniowo.

Kontrola czasu logowania

LoginGraceTime określa, jak długo serwer czeka na pomyślne uwierzytelnienie przed rozłączeniem. Wartość domyślna wynosi 120 sekund; zmniejszenie jej do 20 sekund zapobiega powolnym próbom brute force i ogranicza zużycie zasobów przez nieuwierzytelnione połączenia. ClientAliveInterval i ClientAliveCountMax kontrolują sprawdzanie stanu połączenia, aby rozłączać bezczynne lub nieaktywne sesje.

Ograniczanie dozwolonych algorytmów kryptograficznych

Nowoczesne konfiguracje SSH powinny ograniczać algorytmy do silnych, współczesnych opcji. W sshd_config należy ustawić Ciphers na chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, MACs na hmac-sha2-256-etm@openssh.com, a KexAlgorithms na curve25519-sha256. Eliminuje to starsze algorytmy, takie jak arcfour i DES, oraz oparte na MD5 kody uwierzytelniania wiadomości, które mogą być dostępne w celu zachowania zgodności wstecznej.

Blokowanie ataków brute force za pomocą fail2ban

fail2ban monitoruje dzienniki uwierzytelniania i blokuje adresy IP, które przekroczą ustalony próg nieudanych prób logowania. Po skonfigurowanej liczbie niepowodzeń w określonym przedziale czasu fail2ban dodaje regułę iptables odrzucającą kolejne pakiety z tego adresu IP. Ta automatyczna reakcja sprawia, że ataki brute force stają się niepraktyczne bez konieczności ręcznej interwencji.

Audyt za pomocą ssh-audit

Narzędzie ssh-audit łączy się z serwerem SSH i ocenia jego konfigurację: sprawdza oferowane algorytmy wymiany kluczy, typy kluczy hosta, szyfry i kody MAC oraz wskazuje przestarzałe lub słabe opcje. Uruchomienie ssh-audit przeciwko serwerom przed utwardzeniem i po nim zapewnia obiektywną ocenę stanu przed zmianami i po nich oraz pozwala wykryć luki w konfiguracji.

Rejestrowanie zdarzeń i audyt dostępu

Zdarzenia uwierzytelniania SSH są rejestrowane za pośrednictwem syslog. W systemie Linux plik /var/log/auth.log (Debian) lub /var/log/secure (RHEL) zapisuje każde udane i nieudane logowanie wraz ze znacznikiem czasu, nazwą użytkownika, źródłowym adresem IP i użytym odciskiem palca klucza. Przesyłanie tych dzienników do centralnego systemu SIEM umożliwia wykrywanie nietypowych wzorców dostępu, takich jak logowania z nieoczekiwanych krajów lub o nietypowych porach.

Przykład kompletnej utwardzonej konfiguracji

Utwardzony plik sshd_config łączy ustawienia: PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, ograniczone wartości Ciphers i MACs, X11Forwarding no oraz AllowTcpForwarding no (chyba że tunelowanie jest wymagane). Każda dyrektywa usuwa konkretny wektor ataku, a wszystkie razem tworzą wielowarstwowe zabezpieczenie SSH.

Konfiguracja utwardzania SSH

Które ustawienie sshd_config najskuteczniej eliminuje ataki brute force z użyciem haseł przeciwko SSH?

Podsumowanie utwardzania SSH

Lista kontrolna utwardzania SSH: wyłączyć uwierzytelnianie hasłem, ograniczyć dostęp za pomocą AllowGroups/AllowUsers, wyłączyć logowanie roota lub ograniczyć je do kluczy, ustawić MaxAuthTries 3, skrócić LoginGraceTime, ograniczyć algorytmy wyłącznie do nowoczesnych szyfrów, wdrożyć fail2ban lub SSHGuard, uruchamiać ssh-audit w celu obiektywnej oceny oraz centralizować dzienniki na potrzeby wykrywania anomalii.

Bezpłatny start

Ucz się Cryptology Academy 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
67
Lekcje
261

Często zadawane pytania

Czy lekcja „Hartowanie SSH i najlepsze praktyki audytowe” jest bezpłatna?

Tak — pełny tekst „Hartowanie SSH i najlepsze praktyki audytowe” 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 Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Hartowanie SSH i najlepsze praktyki audytowe”?

Proszę zastosować hartowanie sshd_config, rotację kluczy i rejestrowanie audytowe, aby zwiększyć bezpieczeństwo wdrożeń SSH. Ćwiczysz Cryptology Academy 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ąć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy 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 „Hartowanie SSH i najlepsze praktyki audytowe”?

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 Cryptology Academy?

Tak. Każda lekcja Cryptology Academy 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. Uzgadnianie SSH i uwierzytelnianie kluczem hosta
  2. Uwierzytelnianie kluczem publicznym i przekazywanie agenta
  3. Tunelowanie SSH i techniki przekierowywania portów
  4. Hartowanie SSH i najlepsze praktyki audytowe
← Powrót do Cryptology Academy