Atak DDoS to problem dostępności: serwis działa, ale dla użytkowników staje się wolny albo całkiem znika. W praktyce liczy się nie tylko definicja, lecz także to, jak rozpoznać takie przeciążenie, czym różni się od zwykłej awarii i jak reagować, gdy infrastruktura oparta na Linuksie zaczyna się dusić od ruchu. Poniżej rozbijam temat na proste elementy: mechanizm ataku, typy, symptomy, ochronę i sensowną reakcję na incydent.
Najkrótsza odpowiedź o ataku DDoS
- DDoS to rozproszona odmowa usługi: ruch pochodzi z wielu źródeł, a celem jest przeciążenie serwera, aplikacji lub łącza.
- Najczęściej atak nie „łamie” zabezpieczeń, tylko odbiera dostęp legalnym użytkownikom.
- Na Linuksie pierwsze objawy widać zwykle w logach, liczbie połączeń, zużyciu łącza albo w aplikacji webowej.
- Ochrona lokalnym firewallem pomaga tylko częściowo; przy dużym ataku kluczowe są CDN, WAF, Anycast i wsparcie dostawcy łącza.
- Najlepsza reakcja to szybka diagnoza: czy problem dotyczy łącza, warstwy sieci, czy samej aplikacji.
Czym jest atak DDoS i czym różni się od DoS
Najprościej: w ataku DDoS napastnik zalewa usługę ruchem z wielu komputerów, urządzeń lub serwerów pośredniczących, aż system przestaje odpowiadać normalnym użytkownikom. Skrót oznacza distributed denial of service, czyli rozproszoną odmowę usługi. W praktyce nie chodzi o przełamanie hasła ani o włamanie do bazy, tylko o przeciążenie zasobów, które mają utrzymać dostępność strony, API albo całej sieci.
Różnica między DoS a DDoS jest ważna, bo od niej zależy sposób obrony. Przy zwykłym DoS źródeł jest mało, więc filtracja bywa prostsza. Przy DDoS ruch pochodzi z wielu miejsc naraz, często z botnetu, czyli sieci przejętych urządzeń. To właśnie dlatego blokada jednego adresu IP zwykle nie załatwia sprawy.
| Cecha | DoS | DDoS |
|---|---|---|
| Liczba źródeł | Jedno lub kilka | Wiele, zwykle bardzo dużo |
| Skala | Zazwyczaj mniejsza | Znacznie większa i trudniejsza do odfiltrowania |
| Cel | Przeciążenie usługi | Przeciążenie usługi |
| Diagnoza | Relatywnie prostsza | Trudniejsza, bo ruch wygląda na rozproszony i częściowo legalny |
To jest atak na dostępność, niekoniecznie na poufność danych, choć bywa używany jako zasłona dymna pod inne działania. Żeby zrozumieć, dlaczego takie przeciążenie bywa tak skuteczne, trzeba zobaczyć jego mechanikę krok po kroku.

Jak taki atak wygląda od strony sieci
Mechanizm jest zwykle prosty, a skutki bardzo kosztowne. Napastnik przejmuje albo wynajmuje grupę urządzeń, a potem wysyła do nich polecenie jednoczesnego generowania ruchu. Każde z tych urządzeń staje się „botem” w botnecie i zaczyna bombardować cel żądaniami, które wyglądają jak zwykły ruch internetowy.
- Urządzenia zostają zainfekowane lub wykorzystane jako usługa ataku.
- Atakujący wydaje komendę do uruchomienia ruchu.
- Wiele źródeł jednocześnie wysyła pakiety lub żądania HTTP do celu.
- Przepustowość, tablice połączeń albo procesy aplikacji zaczynają się wyczerpywać.
- Legalni użytkownicy widzą timeouty, błędy 502/503, bardzo wolne ładowanie albo całkowity brak odpowiedzi.
W części ataków napastnik nie uderza bezpośrednio z botnetu, tylko wykorzystuje serwery pośredniczące, na przykład usługi UDP, DNS albo inne podatne źródła, żeby wzmocnić ruch. To szczególnie zdradliwy wariant, bo jeden niewielki pakiet może wywołać znacznie większą odpowiedź po stronie ofiary.
W praktyce widzę tu jeden ważny wniosek: nie każdy duży ruch jest zły, ale każdy duży ruch trzeba umieć odróżnić od normalnego skoku zainteresowania. To prowadzi do najczęściej spotykanych odmian ataku.
Jakie są najczęstsze rodzaje ataków DDoS
Najbardziej użyteczny podział rozróżnia trzy klasy: wolumetryczną, protokołową i aplikacyjną. Taki układ pomaga szybciej zrozumieć, co dokładnie zostaje przeciążone. Jeden atak zjada łącze, inny wyczerpuje zasoby stosu sieciowego, a jeszcze inny dobija samą aplikację webową.
| Rodzaj ataku | Na czym polega | Co najbardziej obciąża | Typowy efekt |
|---|---|---|---|
| Wolumetryczny | Zalewa cel ogromną ilością ruchu | Łącze internetowe, router, upstream | Sieć staje się niedostępna, bo nie ma już pasma |
| Protokołowy | Wykorzystuje sposób zestawiania połączeń i stanów sieciowych | Tablice stanów, stos TCP/IP, load balancer | Serwer ma coraz mniej zasobów na nowe połączenia |
| Aplikacyjny | Uderza w kosztowne żądania HTTP lub API | CPU aplikacji, baza danych, cache, backend | Strona otwiera się wolno albo tylko częściowo działa |
Do tego dochodzą ataki odbiciowe i amplifikacyjne, które wzmacniają ruch przez pośredników. W praktyce są one tak skuteczne dlatego, że napastnik nie musi sam generować całej masy pakietów, tylko korzysta z cudzych serwerów jako „wzmacniaczy”. Najbardziej podstępny bywa jednak wariant aplikacyjny, bo łatwo go pomylić z naturalnym wzrostem ruchu albo z wadliwym wdrożeniem nowej wersji strony.
Skoro wiemy już, jak różnią się rodzaje DDoS, trzeba przejść do najważniejszej umiejętności administratora: rozpoznania, czy problem faktycznie wynika z ataku, czy z innej awarii.
Po czym rozpoznać DDoS w logach i monitoringu
Na serwerach z Linuksem zaczynam od trzech warstw: łącza, połączeń i aplikacji. To zwykle wystarcza, żeby oddzielić atak od zwykłego błędu w kodzie albo od nagłego skoku zainteresowania. Jeśli problem siedzi w sieci, zobaczysz to inaczej niż wtedy, gdy zawodzi baza danych lub reverse proxy.
| Objaw | Co może oznaczać | Co sprawdzić najpierw |
|---|---|---|
| Nagły skok ruchu z wielu źródeł | Ruch rozproszony, możliwy botnet | Statystyki IP, kraje, user-agenty, wzorce żądań |
| Wysokie zużycie pasma przy umiarkowanym CPU | Atak wolumetryczny | Interfejs sieciowy, łącze od operatora, monitoring upstream |
Pełne kolejki połączeń, dużo stanów SYN_RECV
|
Atak protokołowy, np. SYN flood |
ss, conntrack, parametry jądra, load balancer |
| Wzrost błędów 502, 503, 504 albo timeoutów | Backend nie wyrabia pod ruchem | Logi reverse proxy, aplikacji, bazy danych i cache |
| Problem widoczny tylko z internetu, a nie z sieci wewnętrznej | Warstwa brzegowa lub upstream, niekoniecznie sam serwer | CDN, WAF, routing, ustawienia firewalla i dostęp zewnętrzny |
Ja zwykle od razu sprawdzam też, czy nie zaszło coś bardziej przyziemnego: źle wdrożony release, zapętlone zapytania do bazy, błąd w cache albo skrypt, który sam podbił liczbę żądań. DDoS potrafi przypominać awarię aplikacji, ale szczegóły w logach szybko pokazują różnicę. Gdy diagnoza jest już jasna, najważniejsze staje się ograniczenie skutków, zwłaszcza na serwerach opartych na Linuksie.
Jak chronić serwis na Linuksie bez złudzeń
Najlepsza ochrona jest wielowarstwowa. Lokalny firewall jest potrzebny, ale nie jest magiczną tarczą. Jeśli łącze jest zapchane jeszcze przed wejściem na serwer, żaden iptables ani nftables nie uratuje usługi sam z siebie. Dlatego patrzę na ochronę DDoS jak na układ kilku zabezpieczeń, a nie jeden środek ratunkowy.
| Mechanizm | Co pomaga ograniczyć | Gdzie ma sens | Ograniczenie |
|---|---|---|---|
| CDN, WAF i Anycast | Ruch wolumetryczny i część ataków aplikacyjnych | Publiczne strony, API, sklepy, panele frontowe | Wymaga zewnętrznej infrastruktury i sensownej konfiguracji |
| Reverse proxy i cache | Ciężkie żądania HTTP oraz część powtarzalnych odczytów | Nginx, HAProxy, Varnish | Nie zastępuje ochrony upstream |
| Rate limiting | Nadmierną liczbę żądań z jednego źródła lub do jednego endpointu | Logowanie, wyszukiwarka, API, formularze | Nie obroni przed zapchanym łączem |
| SYN cookies i tuning stosu sieciowego | Ataki protokołowe, zwłaszcza związane z zestawianiem połączeń | Serwery wystawione bezpośrednio do internetu | Trzeba testować, bo zbyt agresywne ustawienia potrafią zaszkodzić |
| Monitoring i alerty | Szybkie wykrycie anomalii | Każde środowisko produkcyjne | Samo wykrywanie nie zatrzymuje ataku |
W praktyce najbardziej niedoceniany jest cache. Jeśli statyczne zasoby, obrazy i część odpowiedzi API mogą być serwowane z cache, to backend ma szansę przetrwać dużo dłużej. Z kolei Fail2ban bywa mylony z ochroną przed DDoS, a to narzędzie raczej do powtarzalnych prób logowania niż do zalewu ruchu z tysięcy źródeł.
Warto też pamiętać o prostych rzeczach: ograniczeniu publicznego dostępu do paneli administracyjnych, trzymaniu wrażliwych usług za VPN, rozdzieleniu frontu od backendu i regularnym testowaniu limitów połączeń. To nie są efektowne tematy, ale właśnie one najczęściej robią różnicę, kiedy ruch nagle rośnie.
Skoro baza ochrony jest jasna, zostaje najtrudniejszy moment: co zrobić, kiedy atak już trwa, a użytkownicy zgłaszają niedostępność strony.
Co zrobić, gdy atak już trwa i co odpuścić
Najpierw diagnoza, potem ruchy obronne. W kryzysie łatwo zacząć działać chaotycznie, a to zwykle wydłuża przestój. Ja w takiej sytuacji idę prostą ścieżką: potwierdzam źródło problemu, ograniczam najbardziej kosztowne ścieżki ruchu i w razie potrzeby uruchamiam wsparcie dostawcy hostingu albo operatora łącza.
- Sprawdź, czy rośnie pasmo, liczba połączeń, czy tylko czas odpowiedzi aplikacji.
- Porównaj logi reverse proxy, aplikacji i systemu, żeby ustalić, na której warstwie zaczyna się problem.
- Jeśli masz CDN lub WAF, włącz ostrzejsze reguły i ograniczenia dla najbardziej obciążających endpointów.
- Odetnij albo mocno ogranicz funkcje, które są drogie obliczeniowo, na przykład wyszukiwanie, generowanie raportów czy ciężkie operacje API.
- Zapisz znaczniki czasu, zakresy IP i wzorce żądań, bo po incydencie to będzie ważny materiał do analizy.
Jednej rzeczy bym nie robił: nie podnosiłbym w ciemno timeoutów, limitów i kolejek „żeby serwer jakoś wytrzymał”. To zwykle tylko przesuwa problem i potrafi zamienić częściową niedostępność w pełny paraliż. Nie restartowałbym też wszystkiego bez planu, bo przy ataku DDoS restart często kończy się krótką poprawą i natychmiastowym powrotem kłopotów.
Po opanowaniu sytuacji warto zrobić coś mniej spektakularnego, ale dużo ważniejszego: opisać incydent, sprawdzić, gdzie zadziałała obrona, a gdzie zabrakło warstwy zabezpieczeń. To właśnie wtedy widać, czy infrastruktura była przygotowana, czy tylko miała nadzieję, że nic się nie wydarzy.
Co z tego wynika dla administratora i właściciela strony
Jeśli mam wskazać jedną rzecz, która naprawdę ma znaczenie, to powiedziałbym tak: ochrona przed DDoS nie zaczyna się w momencie alarmu, tylko dużo wcześniej. Serwis bez planu reakcji, bez monitoringu i bez ochrony na brzegu sieci jest podatny nawet wtedy, gdy sam serwer działa poprawnie. W świecie Linuxa często wygrywa nie ten, kto ma najwięcej narzędzi, tylko ten, kto wie, co mierzyć i gdzie odciąć najbardziej kosztowny ruch.
Dla właściciela strony praktyczny wniosek jest prosty. DDoS to nie egzotyczny problem dużych korporacji, tylko realne ryzyko dla sklepów, blogów, paneli usługowych i API. Dla administratora z kolei najważniejsze jest rozróżnienie, czy potrzebuje filtrowania na poziomie aplikacji, ochrony upstream, czy po prostu lepszej architektury i lepszego monitoringu.
Jeżeli masz utrzymać jedną zasadę w głowie, niech będzie taka: najpierw buduje się odporność warstwową, a dopiero potem liczy na to, że lokalny firewall i szybki restart cokolwiek uratują. Właśnie to rozróżnienie najczęściej decyduje o tym, czy incydent kończy się chwilowym spowolnieniem, czy godzinami przestoju.