Инструменты пользователя

Инструменты сайта


ddos_apache_debian_ubuntu

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ddos_apache_debian_ubuntu [2015/11/17 15:54]
admin
ddos_apache_debian_ubuntu [2015/11/17 16:13] (текущий)
admin
Строка 83: Строка 83:
  
 <​note>​Целочисленная переменная tcp_keepalive_probes задает число передач проб keepalive, после которого соединение считается разорванным. По умолчанию передается 9 проб.</​note>​ <​note>​Целочисленная переменная tcp_keepalive_probes задает число передач проб keepalive, после которого соединение считается разорванным. По умолчанию передается 9 проб.</​note>​
 +
 +<​file>​
 +cat /​proc/​sys/​net/​ipv4/​tcp_keepalive_probes
 +9
 +</​file>​
 +
 +Ставим 5:
 +
 +<​file>​
 +echo "​5"​ > /​proc/​sys/​net/​ipv4/​tcp_keepalive_probes
 +</​file>​
 +
 +tcp_keepalive_intvl
 +
 +<​note>​Целочисленная переменная tcp_keepalive_intvl определяет интервал передачи проб. Произведение tcp_keepalive_probes * tcp_keepalive_intvl определяет время, по истечении которого соединение будет разорвано при отсутствии откликов. По умолчанию установлен интервал 75 секунд,​ т.е., время разрыва соединения при отсутствии откликов составит приблизительно 11 минут.</​note>​
 +
 +<​file>​
 +cat /​proc/​sys/​net/​ipv4/​tcp_keepalive_intvl
 +75
 +</​file>​
 +
 +Ставим 15:
 +
 +<​file>​
 +echo "​15"​ > /​proc/​sys/​net/​ipv4/​tcp_keepalive_intvl
 +</​file>​
 +
 +netdev_max_backlog
 +
 +Здесь указывается максимальное количество пакетов в очередь на обработку если интерфейс получает пакеты быстрее,​ чем ядро может их обработать.
 +
 +<​file>​
 +cat /​proc/​sys/​net/​core/​netdev_max_backlog
 +1000
 +</​file>​
 +
 +Увеличиваем:​
 +
 +<​file>​
 +echo "​20000"​ > /​proc/​sys/​net/​core/​netdev_max_backlog
 +</​file>​
 +
 +somaxconn
 +
 +Максимальное число открытых сокетов,​ ждущих соединения.
 +
 +<​file>​
 +cat /​proc/​sys/​net/​core/​somaxconn
 +1024
 +</​file>​
 +
 +Увеличиваем:​
 +
 +<​file>​
 +echo "​20000"​ > /​proc/​sys/​net/​core/​somaxconn
 +</​file>​
 +
 +Так как подобные изменения параметров ядра не сохранятся после перезагрузки — добавляем в ''/​etc/​rc.local'':​
 +
 +<​file>​
 +echo "​20000"​ > /​proc/​sys/​net/​ipv4/​tcp_max_syn_backlog
 +echo "​1"​ > /​proc/​sys/​net/​ipv4/​tcp_synack_retries
 +echo "​30"​ > /​proc/​sys/​net/​ipv4/​tcp_fin_timeout
 +echo "​5"​ > /​proc/​sys/​net/​ipv4/​tcp_keepalive_probes
 +echo "​15"​ > /​proc/​sys/​net/​ipv4/​tcp_keepalive_intvl
 +echo "​20000"​ > /​proc/​sys/​net/​core/​netdev_max_backlog
 +echo "​20000"​ > /​proc/​sys/​net/​core/​somaxconn
 +</​file>​
 +
 +Кроме того, можно добавить ограничение числа SYN пакетов в единицу времени в iptables:
 +
 +<​file>​
 +iptables -N syn_flood
 +iptables -A INPUT -p tcp --syn -j syn_flood
 +iptables -A syn_flood -m limit --limit 500/s --limit-burst 1500 -j RETURN
 +iptables -A syn_flood -j DROP
 +</​file>​
 +
 +Число новых SYN пакетов — максимум 500 в секунду,​ при превышении порога в 1500 — новые пакеты блокируются:​
 +
 +<​note>​Более наглядно этот критерий можно представить себе как некоторую емкость с выпускным отверстием,​ через которое проходит определенное число пакетов за единицу времени (т.е. скорость «вытекания»). Скорость «вытекания» как раз и определяет величина --limit. Величина --limit-burst задает общий «объем емкости». А теперь представим себе правило --limit 3/minute --limit-burst 5, тогда после поступления 5 пакетов (за очень короткий промежуток времени),​ емкость «наполнится» и каждый последующий пакет будет вызывать «переполнение» емкости,​ т.е. «срабатывание» критерия. Через 20 секунд «уровень» в емкости будет понижен (в соответствии с величиной --limit), таким образом она готова будет принять еще один пакет, не вызывая «переполнения» емкости,​ т.е. срабатывания критерия.</​note>​
 +
 +[[http://​mtaalamu.ru/​blog/​93.html|Источник]]
 +
 +**Собственно это одна из мер по защите от DDos атак. Тестировалось на Debian. Помогло. А помогло ли это вам?**
ddos_apache_debian_ubuntu.1447764872.txt.gz · Последние изменения: 2015/11/17 15:54 — admin