Предположим средний клиент платит 3$ в месяц.
2000 клиентов * 3$ = 6000$/мес = 186 000 руб/мес
4xSAS 300Gb 15k rpm + RAID-10 hardware + BBU- стоит около 50-60 т.р.
Это железо проработает как минимум 4 года, и в конце срока службы его можно будет продать процентов за 20 стоимости.
60 т.р. делить на 48 мес. = 1250 руб / мес.
Так что простая арифметика мне говорит, что нет повода экономить на железе, если много клиентов.
Можно пойти и другим путем. Не размещать 2000 клиентов на один сервер с 2xSATA software RAID-1
А купить 4 сервера с 2xSATA software RAID-1
Без логов access.log это работа вслепую. В них масса не заменимой, критически важной информации.
А если растут быстро, то
1) настраивать ротацию
2) Не кидать все логи всех сайтов в один файл. Отдельно вести логи для разных типов файлов, для разных блоков сайта.
У меня в логи пишется у одного сайта за сутки по 2 миллиона запросов к бэкенду и по 10 миллионов в сутки запросов к статике. Отключать логи мыслей не было.
load average: 0.57
А что бы не было нагрузки на диск нужно купить хорошие диски с хорошим рейдом.
Стоит это железо сейчас не так дорого.
От ддос атак какой силы нужна защита?
В какой бюджет на ддос защиту хотите уложится?
Такое фото нечего не подтверждает.
Я тоже могу написать любой ник на листке и сфотографировать его на фоне монитора.
Что значит сервер и все сайты заблокированы?
Каким образом заблокировали?
Кто их заблокировали и по какой причине?
_Dizerd_, у вас в коде реализован простейший алгоритм.
Что вы так переживаете, что его опубликовали?
Подобных скриптов в открытом доступе без всяких лицензий лежит множество.
Вы пишите что будете улучшать свои алгоритмы.
Желание хорошее.
Скажите, какие у вас есть мысли, как обнаружить ботов, каждый из которых кликает не много (5-15 кликов в минуту) но таких ботов несколько тысяч одновременно?
посмотрите конфиг файлы nginx и апач.
Мой вопрос в том чем опасно включение сикуков
echo '1'>/proc/sys/net/ipv4/tcp_syncookies
Для высоконагруженного сервера, который иногда ддосят. (Раз в месяц)
Сервер обслуживает несколько миллионов запросов в сутки.
Синкуки у меня всегда включены и проблем с подключением я не замечал.
В логах были единичные строки
kernel: [1745232.115484] possible SYN flooding on port 80. Sending cookies.
Но они единичны.
А после того как я увеличил длину очереди полуоткрытых соединений, таких сообщений стало еще меньше.
echo '4096' >/proc/sys/net/ipv4/tcp_max_syn_backlog
_Dizerd_, Вы бы дали словесное описание каких то интересных алгоритмов защиты от ддос, которые вы используете.
Тогда бы было что обсуждать.
А пока я увидел лишь простой и очевидный код на shell, который может обнаружить быстрых ботов.
Зачем вы его пытались скрыть не понятно.
Никаких интересных ноухау в вашем коде я не увидел.
Может не заметил?
Чем же ваш код лучше того же DoS Deflate?
В основе механизма синкуков лежит, то что когда очередь полуоткрытых соединений заполнена, новые соединения не ставятся в очередь, а сервер в своем ответе SYN+ACK в 32-битном поле TCP заголовка Sequence number указывает число вычисленное по определенному алгоритму и только клиент с настоящим IP получает пакет SYN+ACK и отвечает правильным пакетом ACK.
На википедии довольно ясно описан алгоритм работы синкуков
http://en.wikipedia.org/wiki/SYN_cookies
там пишется о трех возможных проблемах, которые он вызывает.
1. First, the server is limited to only 8 unique MSS values, as that's all that can be encoded in 3 bits.
2. Second, the server must reject all TCP options (such as large windows), because the server discards the SYN queue entry where that information would otherwise be stored.
3. Third, a connection may freeze when the final ACK of the three-way handshake is lost and the client first awaits data from the server
Также там пишется, что эти ограничения возникают лишь во время атаки, а пока атаки нет (Очередь соединений не заполнена) механизм синкуки не используется.
Furthermore, these restrictions need only apply when the server is under attack, and the connection would have otherwise been denied. In such a situation, the loss of a few of the more esoteric options in order to save the connection is usually a reasonable compromise.
Я не вижу аргументов, почему синкуки нужно выключать, когда нет атаки.
Кто то может такие аргументы привести?