Чтобы предотвратить DDOS-атаки, я последовал советам оставить значение / proc / sys / net / ipv4 / tcp_syncookies равным 1 в моем Linux-окне, чтобы включить TCP syncookies.
Однако, когда я смотрю на этот URL: http://ckdake.com/content/2007/disadvantages-of-tcp-syn-cookies.html
Он сообщает мне, что если я включу tcp_syncookies, то половина функций tcp, включая управление большими окнами, будет отключена, что может снизить производительность.
Я читал в другом месте, что часть назначения файлов cookie синхронизации заключается в расширении буфера отставания tcp syn за его верхний предел (через / proc / sys / net / ipv4 / tcp_max_syn_backlog), когда поступает больше пакетов, чтобы пакеты не падали.
Я хочу иметь возможность отключить файлы cookie синхронизации, чтобы в полной мере использовать tcp и заставить мой сервер работать быстрее и по-прежнему не подвергаться атакам DDOS. Я могу легко увеличить буфер синхронизации и максимальное количество подключений, но я думаю, что есть момент, когда у меня закончится память, если я перейду на слишком высокий уровень.
Есть ли у кого-нибудь хороший альтернативный метод для синхронизации файлов cookie на тяжелом сервере без потенциальной атаки DDOS? Я хочу пользоваться функциями TCP и очень быстро предоставлять пользователям контент.
Очевидно, что tcp_syncookies приносит больше преимуществ, чем недостатков.
Вместо типичных спекуляций о случайных блогах, мы могли бы проконсультироваться "источник":
С обновлениями для IPv6 и современных схем опций TCP файлы cookie, похоже, готовы и дальше обеспечивать сладкое облегчение в своей несколько эзотерической нише сетевой безопасности.
В связанная статья цитирует некоторые эксперименты и делает некоторые выводы:
Вилли Тарро: Мои тесты на AMD LX800 с max_syn_backlog на 63000 на обратном HTTP-прокси заключались во внедрении 250 обращений в секунду законного трафика с 8000 SYN / с шума. [..] Без файлов cookie SYN среднее время ответа было примерно 1,5 секунды и нестабильно (из-за повторных передач), а ЦП был установлен на 60%. При включенных файлах cookie SYN время ответа упало до 12-15 мс, но загрузка ЦП подскочила до 70%. Разница проявляется в более высокой скорости легитимного трафика.
Росс Вандегрифт: При отсутствии SYN-флуда сервер обрабатывает 750 HTTP-запросов в секунду, измеренных через httping в режиме лавинной рассылки. С tcp_max_syn_backlog по умолчанию 1024, я могу тривиально предотвратить любые входящие клиентские соединения с 2 потоками синхронного потока. Включение tcp_syncookies увеличивает скорость обработки соединения до 725 выборок в секунду.
Эти данные убедительно подтверждают сохраняющуюся ценность syncookie, и эта позиция, похоже, победила. Патчи syncookie IPv6 теперь помещены в очередь в дереве разработки сети 2.6.26.
Кроме того, согласно CentOS документация, это используется адаптивным образом, возможно, чтобы избежать нарушения законного трафика:
Если число, указанное в tcp_max_syn_backlog, достигнуто, этот параметр срабатывает, чтобы ваш сервер не был недоступен из-за соединений, ожидающих ACK, который никогда не придет.
Ubuntu 10.04 имеет настройку по умолчанию "sysctl.d / 10-network-security.conf" ниже:
# Turn on SYN-flood protections. Starting with 2.6.26, there is no loss
# of TCP functionality/features under normal conditions. When flood
# protections kick in under high unanswered-SYN load, the system
# should remain more stable, with a trade off of some loss of TCP
# functionality/features (e.g. TCP Window scaling).
net.ipv4.tcp_syncookies=1
Отредактируйте файл /etc/sysctl.conf, запустите:
# vi /etc/sysctl.conf
Добавьте следующую запись:
net.ipv4.tcp_syncookies = 1
Сохраните и закройте файл. Чтобы перезагрузить изменение, введите:
# sysctl -p