Co jest domyślnie wyłączone na większości serwerów Linux?
Podczas uruchamiania świeżego serwera Linux – czy to VPS, serwera dedykowanego bare-metal, czy maszyny wirtualnej hostowanej w chmurze – można zauważyć, że system uruchamia się w celowo minimalistycznym i wzmocnionym środowisku. Nie jest to niedopatrzenie, lecz celowy wybór projektowy. Nowoczesne dystrybucje Linuksa usuwają niepotrzebne usługi i funkcje, aby zminimalizować powierzchnię ataku, oszczędzać zasoby systemowe i zapewnić administratorom precyzyjną kontrolę nad tym, co jest włączone. Poniżej przeanalizujemy najczęstsze funkcje i usługi, które są domyślnie wyłączone (lub po prostu nieobecne) i dlaczego ma to znaczenie zarówno dla bezpieczeństwa, jak i wydajności operacyjnej.
Logowanie SSH roota
Bezpośrednie logowanie roota przez SSH jest niemal powszechnie wyłączone we współczesnych wersjach serwerów Linux. Zezwolenie na zdalny dostęp roota jest rażącą luką w zabezpieczeniach: jedno złamane hasło oznacza całkowitą własność systemu.
Zamiast tego administratorzy powinni logować się za pomocą nieuprzywilejowanego użytkownika i eskalować uprawnienia za pomocą sudo lub su.
Weryfikacja:
Powinieneś zobaczyć:
Uwierzytelnianie hasłem w SSH
Na wielu serwerach dostarczanych w chmurze uwierzytelnianie hasłem jest również wyłączone, pozostawiając klucze SSH jako jedyny mechanizm uwierzytelniania. Klucze są odporne na ataki typu brute-force i znacznie podnoszą poprzeczkę dla prób nieautoryzowanego dostępu.
Tradycyjne instalacje ISO mogą nadal zezwalać na logowanie za pomocą hasła, ale najlepszą praktyką jest ich natychmiastowe wyłączenie.
Weryfikacja:
Przestarzałe protokoły sieciowe
Starsze usługi, takie jak Telnet, FTP, Rlogin i Rsh są nieobecne w nowoczesnych kompilacjach serwerów. Protokoły te przesyłają poświadczenia i dane w czystym tekście, co czyni je łatwymi do przechwycenia.
Zostały one zastąpione przez
SSH dla zdalnego dostępu do powłoki
SFTP/FTPS do bezpiecznego przesyłania plików
Sprawdź aktywne usługi:
Jeśli porty takie jak 21 (FTP) lub 23 (Telnet) nie pojawiają się, usługi te nie są uruchomione.
Graficzny interfejs użytkownika (GUI)
W przeciwieństwie do dystrybucji desktopowych, edycje serwerowe nie są dostarczane z GNOME, KDE lub innymi środowiskami graficznymi. Interfejs graficzny zużywa pamięć i cykle procesora, wprowadzając jednocześnie dodatkowe zależności oprogramowania, które mogą poszerzyć ślad bezpieczeństwa.
Oczekiwanie jest jasne: serwery mają być zarządzane za pomocą CLI przez SSH.
Łańcuchy narzędzi programistycznych
Kompilatory takie jak gcc i narzędzia do kompilacji takie jak make są celowo nieobecne w większości minimalnych obrazów serwerów. Uzasadnienie jest dwojakie:
Aby zmniejszyć podstawowy rozmiar obrazu.
Aby uniemożliwić atakującemu, w przypadku uzyskania dostępu, kompilowanie złośliwych plików binarnych w locie.
Sprawdź, czy GCC jest obecne:
Jeśli polecenie zwróci ” not found”, toolchain nie jest zainstalowany.
W razie potrzeby zainstaluj ręcznie:
ICMP (Ping)
Większość serwerów Linux domyślnie odpowiada na żądania echa ICMP, choć niektórzy dostawcy hostingu wyłączają je na poziomie zapory sieciowej. Tłumienie odpowiedzi ICMP sprawia, że serwer jest mniej widoczny dla skanowania sieci, ale także zakłóca monitorowanie i diagnostykę.
Test:
IPv6
Protokół IPv6 jest domyślnie włączony w nowoczesnych dystrybucjach, takich jak Ubuntu, Debian i pochodne RHEL. Jednak wielu dostawców hostingu wyłącza go na poziomie sieci, jeśli nie oferują łączności IPv6.
Sprawdź adresy IPv6:
Wnioski
Gotowe serwery Linux są celowo dostarczane w bezpiecznym, okrojonym stanie. Główne logowanie SSH jest wyłączone, uwierzytelnianie hasłem jest często ograniczone, a starsze protokoły są całkowicie pomijane. Nie jest dostarczane żadne środowisko graficzne, a kompilatory są wykluczone z podstawowych kompilacji.
Z kolei usługi takie jak ICMP i IPv6 pozostają domyślnie włączone, ale mogą być ograniczone w zależności od stanu bezpieczeństwa dostawcy.
Ta filozofia “bezpiecznego domyślnie, rozszerzalnego z wyboru” zapewnia, że administratorzy zachowują pełną agencję: serwer ujawnia tylko to, co jest wyraźnie wymagane do jego zamierzonej roli. Jest to model, który maksymalizuje zarówno bezpieczeństwo operacyjne, jak i wydajność.