Kuidas kaitsta VPS-i DDoS-rünnakute eest
Hajutatud teenusetõkestusrünnak (DDoS) saadab serverile või selle võrguühendusele nii palju liiklust, et tavalised külastajad enam läbi ei pääse. Mõned rünnakud on serveri enda jaoks liiga suured, seetõttu toimib kaitse kõige paremini kihtidena: esmalt filtreerimine võrgu servas, seejärel tulemüüri- ja rakenduse seaded VPS-il. ONIE kaitseb Ho Chi Minh Cityst pilvserverid DDoS Shieldiga võrgu servas ilma lisatasuta ning VPS-i DDoS-kaitsega saab üles seada paari minutiga.
Rünnakute liigid
- Mahurünnakud (kihid 3 ja 4): pakettide üleujutus, mis täidab võrgu ühenduse, näiteks UDP-üleujutus.
- Protokollirünnakud: ühenduste käsitlemise väärkasutus, näiteks SYN-üleujutus, mis täidab ühenduste tabeli.
- Rakenduskiht (kiht 7): palju tundub-õigeid HTTP-päringuid, mis kurnavad veebiserveri või andmebaasi.
Iga liik vajab erinevat kaitset. Mahuliiklus tuleb peatada enne, kui see serverini jõuab; rakendustasandi üleujutust saab serveril vähendada.
1. Filtreeri võrgu servas
Servafiltreerimine eemaldab halva liikluse enne, kui see VPS-ini jõuab, nii et ühendus ei ummistu. DDoS Shieldi puhul toimub filtreerimine võrgu servas XDP/eBPF abil ning konsool näitab iga IP-aadressi liiklust ja rünnakusündmusi. Küsi igalt hinnatavalt pakkujalt, mis on kaasas, kus filtreerimine toimub ja kas see maksab lisaks.
2. Sulge see, mida ei kasuta
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableÄra jäta andmebaase ega haldusliideseid internetti avatuks. Seo need 127.0.0.1 või privaatse võrguga.
3. Häälesta kerneli seaded SYN-üleujutuste vastu
SYN-küpsised on enamikus distributsioonides vaikimisi sisse lülitatud. Kontrolli:
sysctl net.ipv4.tcp_syncookiesHoia muud kerneli muudatused väikesed ja testi neid, sest valed väärtused võivad tavalist liiklust kahjustada.
4. Piira päringuid Nginxis
http plokis:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;server või location plokis:
limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;Laadi konfiguratsioon uuesti käsuga sudo nginx -t && sudo systemctl reload nginx. Serveeri staatilisi faile vahemälust ja kasuta WordPressis vahemälu pistikprogrammi, et vähendada iga päringu koormust. Vaata WordPressi paigaldamist Nginxiga.
5. Jälgi liiklust
ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nloadÜhenduste või ribalaiuse järsk tõus või server, mis muutub aeglaseks madala protsessori koormuse juures, võib viidata rünnakule. Seadista hoiatused, et märkaksid probleemi varakult.
6. Intsidendi kontrollnimekiri
- Kinnita konsoolist, kas liiklus on rünnak või tavaline tippkoormus.
- Vaata rünnakusündmusi ja rünnatud IP-aadressi.
- Blokeeri tuvastatavad kahjulikud lähteaadressid või vahemikud.
- Lülita sisse rangemad päringupiirangud või hooldusleht.
- Võta ühendust pakkuja toega, märkides aja ja IP-aadressi.
- Hiljem vaata logid üle ja uuenda seda plaani. Hoia varukoopiad ja hetktõmmised ajakohasena.
Korduma kippuvad küsimused
Kas VPS-i tulemüür suudab suurt DDoS-rünnakut peatada?
Mitte ainult sellega. Kui liiklus täidab võrguühenduse, ei saa server seda filtreerida. Vajad filtreerimist enne serverit.
Kas CDN aitab?
Veebisaitide puhul saab CDN või pöördproksi veebiliiklust neelata, kui sinu tegelik serveri IP-aadress ei ole DNS-is ega e-posti päisetes nähtav.
Kas DDoS-kaitseks on vaja erilist paketti?
See sõltub pakkujast. Vaata, mis on sinu paketi ja asukoha juures kaasas.