Что “рекомендуются Прокси-серверы Syn”? Или как создать тот?

Мое эмпирическое правило:

Когда Ваша машина имеет меньше чем 4 гигабайта RAM, ни для одного из Ваших процессов не нужны больше чем 2 гигабайта памяти, и Вам не нужна ни одна из новых инструкций x86_64 системы команд, пойдите с 32 битами (x86) система.

Иначе выберите 64 бита (x86_64).

1
задан 31 December 2017 в 06:45
4 ответа

Прокси-сервер SYN - это не что иное, как хост-бастион, настроенный для обработки огромного количества входящих наполовину построенных TCP-соединений, а также для передачи только завершенных. Честно говоря, я понятия не имею, зачем вам его использовать; они по-прежнему уязвимы к сбоям из-за исчерпания ресурсов (у них все еще есть конечный объем пространства состояний) и, следовательно, не масштабируются так же хорошо, как хорошая реализация SYN cookie.

Из интереса, не могли бы вы поделиться источник вашей рекомендации для прокси-сервера SYN?

0
ответ дан 3 December 2019 в 17:18

Вы можете заменить процессорное время на память, используя прокси-сервер syn, который добавляет секрет к адресу сокета и вычисляет его хэш, который используется в качестве начального порядкового номера сервера для TCP-соединения. .

Никакие записи для полуоткрытых соединений не будут добавлены в таблицу состояний.

Если приходит пакет (с установленным флагом подтверждения), номер подтверждения, отправленный от клиента, минус 1, будет сравниваться с хеш-кодом адрес сокета соединен с секретом.

Если числа не совпадают, пакет будет отброшен.

Нет ограничения на количество полуоткрытых соединений, только скорость соединения зависит от мощности процессора.

3
ответ дан 3 December 2019 в 17:18

Важно понимать, что SYN-cookie позволяет серверу отвечать на исходный SYN без создания записи в таблице потоков; он потребляет меньше ресурсов и поддерживает ваш сервер в сети; увеличение производительности до 20 раз является обычным явлением!

Вам действительно стоит прочитать эти справочные статьи; SYNPROXY действительно стоит попробовать.

http://rhelblog.redhat.com/2014/04/11/mitigate-tcp-syn-flood-attacks-with-red-hat-enterprise-linux-7-beta/ https://r00t-services.net/knowledgebase/14/Homemade-DDoS-Protection-Using-IPTables-SYNPROXY.html

1
ответ дан 3 December 2019 в 17:18

Когда был задан этот вопрос, вероятно, не было прокси TCP SYN с файлами cookie SYN, которые был открытым исходным кодом (вероятно, был OpenBSD PF, но он использует кеш SYN вместо файлов cookie SYN). Однако теперь есть SYN-прокси netfilter: https://lwn.net/Articles/563151/

В качестве альтернативы этому SYN-прокси netfilter вы можете создать собственный код. Я сделал это. Моя реализация - это 9000 строк кода основного компонента и 17 000 строк кода вспомогательной библиотеки, написанного на языке C. Счетчик строк включает очень тщательные модульные тесты. Я не буду рекомендовать этот подход «кодируйте свой собственный» для производственных целей, но если у вас есть свободное время, создание собственного SYN-прокси может быть хорошим способом узнать много нового о TCP. Я выполнил свою реализацию чуть больше месяца.

По-видимому, некоторое время назад в SYN-прокси netfilter была ошибка, из-за которой пакет TCP RST не был должным образом модифицирован для того, чтобы его принял хост, открывший соединение. Таким образом, если вам удалось прокси-соединение с прокси-сервером SYN, но другая конечная точка не приняла его, соединение не было закрыто должным образом, чтобы инициирующая конечная точка это заметила. Я не уверен, что они исправили ошибку сейчас.

Что касается моей рекомендации, я бы рекомендовал запускать хосты конечных точек, которые поддерживают TCP SYN cookie. Это делает SYN-прокси устаревшим. Если вам абсолютно необходимо запускать хосты конечных точек, у которых нет поддержки SYN cookie, тогда SYN-прокси может быть хорошей идеей. Кроме того, если вы запустите брандмауэр, он создаст новую цель для исчерпания ресурсов:не исчерпывают ресурсы узла конечной точки, а вместо этого исчерпывают ресурсы брандмауэра. У брандмауэра нет другого способа защитить себя, кроме правильного SYN-прокси с SYN cookie. Итак, если вы используете брандмауэр, подумайте о тех, которые поддерживают прокси TCP SYN. PF OpenBSD имеет SYN-прокси с SYN-кешем, который уязвим для атак из-за исчерпания ресурсов, хотя и не так уязвим, как брандмауэр без SYN-кеша. В Linux iptables можно настроить с помощью прокси-модуля SYN способом, который использует файлы cookie SYN и, таким образом, не уязвим для атак из-за исчерпания ресурсов.

1
ответ дан 3 December 2019 в 17:18

Теги

Похожие вопросы