5. DDoS
-‐
он
пришел…
1. Не
паникуем
2. Удаляем
hWp
сервер
из
автостарта
3. Что
в
top?
4. Интересные
сообщение
в
dmesg
5. Содержимое
netstat
6. Анализируем
access.
Log
8. HTTP
Flood.
Frontend
И
ожидаем
попавшихся
ботов
на
default
vhost
server
{
listen
80;
server_name
noname;
return
444;
}
Ограничиваем
количество
одновременных
соединений
с
одного
ip
limit_zone
conlim
$binary_remote_addr
XXm;
limit_conn
conlim
XX;
9. HTTP
Flood.
Backend
Бюджетирование
нагрузки
на
скриптовый
бэкенд
через
limit_req_zone
$binary_remote_addr
zone=qulim:Xm
rate=Yr/s;
limit_req
zone=qulim
burst=Z;
10. HTTP
Flood.
Отфильтровать
в
один
запрос
log_format
$hWp_accept
$hWp_accept_language
$hWp_accept_encoding;
+
grep
-‐-‐line-‐buffered
=
tail
-‐f
/var/log/nginx/myserver.access_log
|
grep
-‐-‐line-‐buffered
-‐F
'*/*
en-‐us
-‐'
|
grep
-‐-‐line-‐buffered
-‐oE
"BOINK
[0-‐9]{1,3}.[0-‐9]{1,3}.[0-‐9]{1,3}.[0-‐9]{1,3}
"
|
sed
-‐u
"s/^BOINK//"
|
xargs
-‐n1
ipset
-‐A
myserv
и
вариации
на
тему
из
myserv.error_log
по
ключевому
слову
limiwng
11. HTTP
Flood.
Кого
фильтровать
не
нужно
Ваши
собственные
ajax
скрипты
(вставляем
заголовки-‐маркеры)
Полезных
ботов,
например
поисковики:
§
77.88.0.0/18
Yandex
§
87.250.224.0/19
Yandex
§
93.158.128.0/18
Yandex
§
213.180.192.0/19
Yandex
§
95.108.128.0/17
Yandex
§
65.52.0.0/14
Microso–
§
209.85.128.0/17
Google
§
81.19.64.0/19
Rambler*
рамблер
-‐
это
телеком,
и
там
иногда
живут
боты.
12. Conntrack
abuse
ip_conntrack:
table
full,
dropping
packet
?
Conntrack
хранит
соединения
в
hashtable
и
небесплатен.
При
больших
размерах
таблицы
можно:
net.ipv4.nešilter.ip_conntrack_tcp_wmeout_*
но
проще
выключить:
iptables
-‐t
RAW
-‐A
PREROUTING
-‐d
$PUBLISHED_IP
-‐j
NOTRACK
iptables
-‐t
RAW
-‐A
OUTPUT
-‐d
$PUBLISHED_IP
-‐j
NOTRACK
13. Большой
обьем
отфильрованых
ботов?
ipset
его
чудесные
b-‐tree
для
плохих
ботов
ipset
-‐N
myserv
iptree
-‐-‐wmeout
XX
ipset
-‐A
myserv
$OFFENDING_IP
и
-‐N
goodbots
nethash
-‐-‐hashsize
512
-‐-‐probes
4
-‐-‐resize
50
для
хороших
14. SYN
Flood
syn-‐cookies!
net.ipv4.tcp_syncookies
=
1
15.
Просто
много
трафика
и
складывается
инфраструктура
провайдера?
16. Домашнее
задание
1. Настроенные
nginx/ipset
на
сервере
2. Выключенный
conntrack
3. Выделенный
ip
для
публикуемых
сервисов
4. Представление
о
связности
хостера