LINUX.ORG.RU

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

 , ,


9

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)

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

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

h31 ★★★ ()

это решение для провайдеров, а не для пользователей ?

kto_tama ★★★★★ ()

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

anonymous ()

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

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

Это решение для HSP. У крупных ISP такой проблемы нет.

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

В 2000 году выпустить на nix фильтр трафика - это мощно. Потрясаете основы, парни!

anonymous ()

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

защита от SYN/ACK

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

unt1tled ★★★★ ()

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

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

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

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

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

anonymous ()

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

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

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

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

те хосты, которые досят

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

unt1tled ★★★★ ()
Ответ на: комментарий от 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 ★★★★★ ()
Ответ на: комментарий от pacify

Нет, никому это не интересно. Не выкладывай свое поделие.

anonymous ()
Ответ на: комментарий от 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 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.