Как да защитите VPS от DDoS атаки
Разпределената атака за отказ на услуга (DDoS) залива сървър или връзката му с трафик, докато реалните посетители не могат да се свържат. Някои атаки са твърде големи, за да се справи самият сървър, затова защитата работи най-добре на слоеве: първо филтриране на мрежовия край, после настройки на защитната стена и приложението на VPS-а. ONIE защитава облачни сървъри в Хошимин с DDoS Shield на мрежовия край без допълнителна такса, а можете да разположите VPS с DDoS защита за няколко минути.
Видове атаки
- Обемни (слой 3 и 4): наводнения с пакети, които запълват мрежовата връзка, например UDP наводнения.
- Протоколни атаки: злоупотреба с обработката на връзките, например SYN наводнения, които запълват таблицата на връзките.
- Атаки на ниво приложение (слой 7): много привидно легитимни HTTP заявки, които изчерпват уеб сървъра или базата данни.
Всеки тип изисква различна защита. Обемният трафик трябва да бъде спрян, преди да достигне до сървъра ви; наводненията на ниво приложение могат да бъдат намалени на самия сървър.
1. Филтрирайте на мрежовия край
Филтрирането на мрежовия край отхвърля лошия трафик, преди да достигне до VPS-а ви, така че връзката да не се запълни. С DDoS Shield филтрирането работи на мрежовия край чрез XDP/eBPF, а конзолата показва трафика и атаките за всеки IP адрес. Попитайте всеки доставчик, който оценявате, какво е включено, къде се извършва филтрирането и дали има допълнителна цена.
2. Затворете това, което не използвате
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableНе излагайте бази данни или административни панели в интернет. Свържете ги към 127.0.0.1 или към частна мрежа.
3. Настройте ядрото за SYN наводнения
SYN cookies са включени по подразбиране в повечето дистрибуции. Проверете:
sysctl net.ipv4.tcp_syncookiesПазете другите промени в ядрото малки и ги тествайте, защото грешни стойности могат да навредят на нормалния трафик.
4. Ограничете заявките в Nginx
В блока http:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;В блока server или location:
limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;Презаредете с sudo nginx -t && sudo systemctl reload nginx. Сервирайте статичните файлове от кеш и използвайте плъгин за кеширане в WordPress, за да намалите цената на всяка заявка. Вижте инсталиране на WordPress с Nginx.
5. Следете трафика
ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nloadВнезапен скок в броя на връзките или в честотната лента, или сървър, който става бавен при ниско натоварване на процесора, може да означава атака. Настройте известия, за да ги забележите навреме.
6. Контролен списък при инцидент
- Потвърдете в конзолата дали трафикът е атака или реален пик.
- Проверете събитията за атаки и атакувания IP адрес.
- Блокирайте злоупотребяващите изходни адреси или диапазони, които можете да идентифицирате.
- Включете по-строги лимити на заявките или страница за поддръжка.
- Свържете се с поддръжката на доставчика, като посочите времето и IP адреса.
- След това прегледайте логовете и актуализирайте този план. Поддържайте резервните копия и снимките актуални.
Често задавани въпроси
Може ли защитната стена на VPS да спре голяма DDoS атака?
Не сама. Ако трафикът запълни мрежовата връзка, сървърът не може да го филтрира. Нужно е филтриране преди сървъра.
Помага ли CDN?
За уебсайтове CDN или обратен прокси може да поеме уеб трафика, при условие че реалният IP адрес на сървъра не е разкрит в DNS или в заглавките на имейлите.
Нужен ли ми е специален план за DDoS защита?
Зависи от доставчика. Проверете какво е включено в плана ви и в локацията.