Скрипт защиты от DDOS
Быть может кому понадобится:
Скрипт защиты от DDOS (ddos + iptables + настройка ядра sysctrl + netstat) Ноябрь 23, 2009 Автор: stranger Недавно столкнулся с проблемой DDOS "небольшого" выделенного сервера. Сервер к сожалению был один. Процессы Apache из-за выполнения сумасшедшего количества запросов съедали всю память, php съедал весь процессор а изза keepalive заканчивались сокеты. Установив фронтендом Nginx (тема одной из следующих моих статей), мы несколько выиграли в производительности, но это не особо решало ситуацию. Тогда мы решили ограничивать количество соединений с помощью iptables + netstatИдея следующая: просматриваем все подключения к серверу при помощи netstat, далее убираем из списка подключений все адреса самого сервера, ну и там нужных нам серверов/машин. Следующим шагом убираем из списка все адреса с количеством подключений меньше 6. Ну и на последок забиваем список ip ботов в файл, блокируем траффик с них iptables. Текст скрипта: Код:
#!/bin/sh | sed /"2 "/d | Также мы изменили некоторые параметры ядра. Для защиты от SYN атак включаем SYN-cookies: Код:
echo 1 >/proc/sys/net/ipv4/tcp_syncookies Код:
sysctl -w net.ipv4.tcp_max_syn_backlog="4096" Другая методика защиты от SYN атак заключается в отключении некоторые параметров TCP, которые всегда активны в течение процесса установления связи сервера с клиентом. Некоторые из этих параметров автоматически выключаются механизмами Syncookies. Теперь настроим переменные стека TCP/IP, которые позволяют уменьшить время хранения полуоткрытых соединений в очереди задач: Рассмотрим параметр tcp_synack_retries, который управляет количеством перепередач в операционной системе Linux. По умолчанию, для большинства операционных систем Linux, это значение равно 5, что означает удаление полуоткрытого соединения через 3 минуты. Сделаем так, чтобы перепередача осуществлялась на 3 секунде и полное время хранения полуоткрытых соединений в очереди составило 9 секунд: Код:
sysctl -w net.ipv4.tcp_synack_retries=1 Код:
sysctl -w net.ipv4.tcp_fin_timeout = 10 Код:
sysctl -w net.ipv4.tcp_keepalive_time=1 Код:
sysctl -w net.ipv4.tcp_keepalive_probes=1 |
Re: Скрипт защиты от DDOS
Источник бы указали http://tty.org.ru/node/30
|
Re: Скрипт защиты от DDOS
http://www.inetbase.com/scripts/ddos/install.sh - а он типо уже не в моде ?
Нужно помнить 3 вещи 1. гавно проект ляжет по любому и нечего не поможет 2. нет ни одной нормальной статьи, каждый параметр нужно выгугливать 3. если у вас нормальный проект - закажите настройку и не парьтесь (все равно так как вам за $ сделают, вы долго будете настраивать) |
Re: Скрипт защиты от DDOS
Цитата:
|
Текущее время: 19:30. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot