LINUX.ORG.RU

BeGet.com выложил в открытый доступ систему для защиты от DDOS атак

 beget, ,


7

6

Компания BeGet выложила в открытый доступ систему защиты от DDOS атак SynCookied. Основным предназначением является защита от SYN/ACK/DATA-флуда, также SynCookied может фильтровать трафик по произвольному набору правил в формате Pcap до 4 уровня по модели OSI.

SynCookied состоит из трех частей:

  • модуля ядра Linux;
  • сервиса, запускаемого на защищаемом сервере;
  • сервиса, запускаемого на фаерволе.

Основным отличием от подобных систем (Arbor, F5, Juniper SRX) является:

  • бесплатность и открытый исходный код;
  • возможность прозрачного включения/выключения без разрыва соединения (технология SynProxy этого не позволяет);
  • для фильтрации необходимо обрабатывать только входящий трафик, что позволяет устанавливать Syncookied либо на стыке с вышестоящими провайдерами, либо сразу за граничным маршрутизатором.

Фактически, 10 ядер процессора Intel Xeon E5-2680v3 могут обрабатывать до 10 Гбит трафика. Один физический сервер способен обрабатывать более 40 Гбит трафика.

SynCookied — идеальное решение для провайдеров с распределенной сетью (асинхронными маршрутами), парком серверов на базе Linux, для которых возможна предварительная установка модуля для ядра.

Исходный код (под лицензией GNU GPL v2)

>>> Страница проекта с подробным описанием принципов работы



Проверено: Falcon-peregrinus ()
Последнее исправление: DeadEye (всего исправлений: 5)

Хорошая компания, постоянно какие-то проекты выкладывает в опенсорц. А ещё у них есть зеркало Убунты буквально в паре хопов от меня.

h31 ★★★★
()

Молодцом, все молодцом

st4l1k ★★
()

Отличная вещь! Спасибо большое за работу и за публикацию под GPL.

anonymous
()

А IPv6 поддерживается?

anonymous
()

Кто в курсе, просвятите.

защита от SYN/ACK

делается тупо дропаньем пакетов, если их слишком много?

unt1tled ★★★★
()

«для которых возможна предварительная установка модуля для ядра. »

А разве нельзя собрать модуль отдельно для уже имеющегося ядра и подгружать его после старта сервера?

rwman
()
Ответ на: комментарий от rwman

А разве нельзя собрать модуль отдельно для уже имеющегося ядра и подгружать его после старта сервера?

Подозреваю, что имеется в виду «у вас есть root-доступ к серверу и вы можете управлять модулями ядра».

anonymous
()

А про то, что проект написан на Rust не написали... Пожалуй, это первый серьёзный проект на этом ЯП, который я видел.

lucentcode ★★★★★
()
Ответ на: комментарий от unt1tled

нет, надо уметь отсеять именно те хосты, которые досят. иначе досеры победили - ты дропаешь честных пользователей.

i36_zubov
()
Ответ на: комментарий от unt1tled

Это какбы подразумевалось. Я про сам сетевой экран, что он делает.

пройти по ссылке и почитать не судьба?

anonymous
()
Ответ на: комментарий от lucentcode

Спасибо, тогда не нужно.

// Jesús MEDA

anonymous
()

Прочитал описание и остался в недоумении.

Люди сделали довольно хакерный, но вполне рабочий способ вынести обработку открытия соединения на отдельный сервер. Да, подняли количество соединений с миллиона в секунду до десяти и при этом сняли нагрузку с сервера. Ок, но что дальше?

Никаких банов, никакой статистики и резака ненормальных запросов не предусмотрено. Просто позволяют забить не гигабитный, а 40 гигабитный канал.

В качестве недостатка они лишили сервер возможности резать трафик правилами iptables посколько вся процедура инициации сессии у них идет на другом сервере. Там же и простейшие правила фильтрации подключают.

В целом интересно, но по моему это тупиковая ветка.

AVL2 ★★★★★
()

Пролистал исходники — код не выглядит таким ужасным и перегруженным, как некоторые любят расписывать, ругая Rust.

gistart
()
Ответ на: комментарий от gistart
use ::yaml_rust::{self,YamlLoader};
use ::yaml_rust::yaml::Yaml;
use std::net::{Ipv4Addr,SocketAddr,AddrParseError};
use std::path::Path;
use std::fs::File;
use std::str::FromStr;
use std::io::{self,Read};
use ::pnet::util::MacAddr;
use ::filter::{RuleLoader,FilterAction};
use ::bpfjit::BpfJitFilter;

Опять заборы из двоеточий. В топку.

anonymous
()
Ответ на: А вот и ответочка от компаний от anonymous

Чем больше открытых прокетов - тем лучше.

Наша задача как компании не в том, что бы с кем то соревноваться или зарабатывать на сервисе защиты от DDOS. Главный посыл в том, если технологии защиты и подобные сервисы как https://wiki.hetzner.de/index.php/DDoS-Schutz/ru будут бесплатными и открытыми (если хватит времени мы тоже подобный запустим) - смысла DDOS как такового не будет.

Смысл досить если есть бесплатная защита ? И простите любой школьник сможет ее поставить. Как только стоимость защиты будет ниже стоимости атаки - проблемы не будет как таковой.

По поводу комментария о добавлении в Blackhole - на syncookie направляется трафик который уже прошел роутер - это не средство борьбы с забитыми каналами. Если вам нужно, что бы каналы не забились: используйте BGP FlowSpec - у нас его поддерживают retn и ruscom статические ACL у провайдера - поддерживают почти все BGP комьюнити для управления трафиком

и банальный blackhole - но это самый ужасный из доступных вариантов.

AlexeyYManikin
() автор топика

Я тоже в своё время написал подобную программу, правда парсил лог апача и добавлял правила через прямой запуск iptables, сорцы в открытом доступе исчезли (российский FireForge по-удалял все проекты). Может быть, выложу потом - программа интересна как академическая разработка (`конечные автоматы` для парсинга лога).

pacify ★★★★★
()
Ответ на: комментарий от anonymous

Нет, никому это не интересно

Солнышко не припекает? =)

pacify ★★★★★
()
Ответ на: комментарий от pacify

Выкладывай, я вообще думаю, что отделять легитимных юзеров от нелегетимных занятие неблагодарное, тем более только на основе парсинга логов веб-сервера. Может человеку curl захотелось запустить там или коки отключены, что сразу его банить?
AlexeyYManikin, есть такой глупый вопрос

Фактически, 10 ядер процессора Intel Xeon E5-2680v3 могут обрабатывать до 10 Гбит трафика. Один физический сервер способен обрабатывать более 40 Гбит трафика.

Если оборудование берется в аренду в облаке, разве не дешевле будет просто оплатить 10 Гбит DDoS, чем арендовать отдельную железку. Или нужно просто арендовать что-то, где нужно будет процессорное время, и если сервер с syncookied будет простаивать основное время, то все равно окупится?
Это уже не говоря, что большинство провайдеров бесплатно предоставляют защиту от DDoS.

anonymous_sama ★★★★★
()
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

Выкладывай,

Вот, лови, оформил снова в виде странички http://lubyagin.ru/projects/logipinspect.html (внизу страницы ссылка на tar.gz)

Может человеку curl захотелось запустить там

Это было тестовое задание при приёме на работу в провинциальный вуз, инженером-программистом (2009).

pacify ★★★★★
()
Ответ на: комментарий от pacify
/* максимально допустимое число адресов IPv4 за одну минуту */
//#define N_MAX_IP_A 1000
#define N_MAX_IP_A 100
/* максимально допустимое число адресов IPv4 за один час */
#define N_MAX_IP_B (N_MAX_IP_A*60)

Так это по сути ты в свое время сделал такой «ddos deflate», только пошел не по простому пути отслеживания количества соединений, а по пути парсинга логов apache.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Это уже не говоря, что большинство провайдеров бесплатно предоставляют защиту от DDoS.

это какие такие провайдеры и от какого типа DDoS?

snaf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.