Jak chronić VPS przed atakami DDoS
Atak typu rozproszonego odmowy usługi (DDoS) zalewa serwer lub jego łącze sieciowe takim ruchem, że prawdziwi odwiedzający nie mogą się dostać do strony. Niektóre ataki są zbyt duże, by sam serwer mógł sobie z nimi poradzić, dlatego ochrona działa najlepiej warstwowo: najpierw filtrowanie na krawędzi sieci, a potem ustawienia zapory i aplikacji na VPS. ONIE chroni serwery chmurowe w Ho Chi Minh City z ochroną DDoS Shield na krawędzi sieci bez dodatkowych opłat, a uruchomienie VPS z ochroną DDoS zajmuje kilka minut.
Typy ataków
- Wolumetryczne (warstwy 3 i 4): zalewanie pakietami, które zapełniają łącze sieciowe, na przykład ataki UDP flood.
- Ataki protokołowe: nadużywanie obsługi połączeń, na przykład SYN flood, który zapełnia tabelę połączeń.
- Warstwa aplikacji (warstwa 7): wiele pozornie poprawnych żądań HTTP, które wyczerpują serwer WWW lub bazę danych.
Każdy typ ataku wymaga innej metody obrony. Ruch wolumetryczny trzeba zatrzymać, zanim dotrze do serwera, a ataki warstwy aplikacji można ograniczać na samym serwerze.
1. Filtruj na krawędzi sieci
Filtrowanie na krawędzi odrzuca złe pakiety, zanim dotrą do VPS, dzięki czemu łącze nie jest przeciążone. Przy DDoS Shield filtrowanie działa na krawędzi sieci z użyciem XDP/eBPF, a konsola pokazuje ruch i zdarzenia ataków dla każdego adresu IP. Zapytaj każdego ocenianego dostawcę, co jest w cenie, gdzie odbywa się filtrowanie i czy wiąże się z dodatkowymi kosztami.
2. Zamknij to, czego nie używasz
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableNie udostępniaj baz danych ani paneli administracyjnych w internecie. Przypisz je do 127.0.0.1 lub do sieci prywatnej.
3. Dostrój jądro pod kątem ataków SYN
Mechanizm SYN cookies jest w większości dystrybucji domyślnie włączony. Sprawdź to poleceniem:
sysctl net.ipv4.tcp_syncookiesZmieniaj inne parametry jądra ostrożnie i testuj je, ponieważ błędne wartości mogą zaszkodzić normalnemu ruchowi.
4. Ogranicz liczbę żądań w Nginx
W bloku http:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;W bloku server lub location:
limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;Przeładuj konfigurację poleceniem sudo nginx -t && sudo systemctl reload nginx. Serwuj pliki statyczne z pamięci podręcznej i używaj wtyczki cache w WordPressie, aby zmniejszyć koszt każdego żądania. Zobacz instalację WordPressa z Nginx.
5. Monitoruj ruch
ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nloadNagły wzrost liczby połączeń lub przepustowości albo serwer, który działa wolno mimo niskiego obciążenia procesora, może oznaczać atak. Ustaw alerty, aby zauważyć problem wcześnie.
6. Lista kontrolna na wypadek incydentu
- Sprawdź w konsoli, czy ruch to atak, czy rzeczywisty skok odwiedzin.
- Sprawdź zdarzenia ataku i zaatakowany adres IP.
- Zablokuj źródłowe adresy lub zakresy, które udało się zidentyfikować.
- Włącz ostrzejsze limity żądań lub stronę serwisową.
- Skontaktuj się z pomocą techniczną dostawcy, podając czas i adres IP.
- Po zakończeniu przejrzyj logi i zaktualizuj ten plan. Dbaj o aktualność kopii zapasowych i snapshotów.
Najczęściej zadawane pytania
Czy sama zapora na VPS zatrzyma duży atak DDoS?
Nie wystarczy sama. Jeśli ruch zapełnia łącze sieciowe, serwer nie jest w stanie go odfiltrować. Potrzebne jest filtrowanie przed serwerem.
Czy CDN pomaga?
W przypadku stron WWW CDN lub reverse proxy może przyjąć ruch webowy, pod warunkiem że rzeczywisty adres IP serwera nie jest ujawniony w DNS ani w nagłówkach poczty.
Czy potrzebuję specjalnego planu z ochroną DDoS?
To zależy od dostawcy. Sprawdź, co jest w cenie Twojego planu i w danej lokalizacji.