Рейтинг
0.00

Beget Хостинг

9 читателей, 107 топиков

DDOS OpenSource Testing

Добрый день, Друзья, Коллеги, Товарищи ( Конкуренты =) ).

Мы периодически выкладываем свои труды в OpenSource — sprut.io, firststat.ru и хотим продолжить эту славную традицию.

Месяца 3 назад озадачились вопросом DDOS-атак на 4 уровне модели ISO. В данном случае речь идет о SYN/ACK флуде. Мы посмотрели на представленные решения и, в основном, есть две технологии:

SYNCOOKIE:
Суть заключается в том, что вместо записи информации о соединении мы кодируем ее в ACK-пакете в seq + timestamp последовательности с помощью SHA1 и открываем соединение ACK-пакетом при условии валидного ответа. Этот механизм есть в ядре — syncookie добавили его туда в 1998 году и не так давно его вынесли в iptables. На стандартной 1G сетевой карте без тюнинга сетевого стека и оптимизаций сервер начнет умирать с 500000 пакетов в секунду.

SYNPROXY:
Это решение уже на сторонней железке и обычно встраивается в разрыв сети. Файрвол держит информацию о статусе каждого соединения, подменяя seq последовательность в пакетах. Это решение используется в Juniper, F5, Arbor и прочих железках. При включении/выключении рвутся установленные сессии. Из преимуществ, на одном ядре можно выжать очень много пакетов в секунду, так как можно не использовать SHA1. 14М на ядро — это не сложно.

Фактически нам нужно было решение, которое очищает трафик на 4-м уровне, прозрачно подключается, может держать до 40 гигабит флуда и, в принципе, больше ничего не умеет =). При этом у нас есть довольно большой парк серверов, подключенных 1G-линком (и не с самой современной картой), и, откровенно говоря, в 95% случаев это более чем достаточно. То есть городить решение на каждом сервере было не вариант.

Запросив цены в Juniper, F5, Arbor и прочих вендоров, немного выпал в осадок — для наших нужд минимум 40М пакетов просили 120 000$, при этом подчеркнули, что данное железо надо обязательно резервировать.

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

На текущий момент мы разработали систему, которая на процессоре e3-1270v3 держит более 10М пакетов SYN/ACK флуда на сетевых картах Intel 520/710 + UDP, ICMP флуд пока линки не забьются. На адекватных процессорах все упирается в линки.

Подключается прозрачно перед сервером и по всем нашим тестам отлично работает. Плюс системы в том, что она не разрывает существующие соединения и почти не требует модификации конечной машины.

И да, я хочу выложить все это счастье OpenSource после того, как все доделаем, протестируем и приведем в божеский вид (как минимум, чтобы править конфиги, а не константы в коде =) ). Я убежден — данный продукт повысит качество предоставляемых услуг, и надеюсь не только нам.

Так как и те, кто организует DDOS (будь то хоть школьник или владелец ботнета), пытаются получить прибыль с не совсем адекватной деятельности, так и те, кто защищает от DDOS, в большинстве своем получают прибыль на страхе перед первыми.

КАК ВЫ МОЖЕТЕ НАМ ПОМОЧЬ?
Нам надо нормально протестировать продукт. У нас пока нет ни GUI, ни системы автоматического развертывания, но есть рабочий прототип и большое желание довести его до ума. Если у Вас есть проекты, которые периодически досят, и небольшой простой им не критичен (простой будет меньше, чем если хостинг его отключит) напишите мне на почту alexey@beget.ru и я расскажу, как его направить на наш прототип. Вы будете бесплатно защищаться от DDOS, а мы в свою очередь будем улучшать продукт, который принесет пользу всем. Обращу внимание — проект продолжит размещаться на старом месте.

20 апреля в 20.15 на наши NS сервера

20 апреля в 20.15 на наши NS сервера пошел аномальный трафик, который привел к выводу из строя всего кластера NS серверов. Эта не была атака на канальные емкости, эта была атака, эксплуатирующая уязвимость в используемом нами ПО. В 20.50 мы обновили на всем кластере NS серверов ПО, что привело к восстановлению работоспособности. Работа всех сайтов была полностью восстановлено в 20.55.
В данный момент мы анализируем полученные данные, а также какие именно запросы (трафик) привели к таким последствиям.

Мы подвели итоги партнерского марафона

Мы подвели итоги партнерского марафона beget.ru/news/2015/partner-race2015 и уже вручили подарки некоторым нашим победителям, а остальные заберут их в ближайшее время или получат курьерской службой.
В марафоне приняло более 150 партнеров!
Последние дни марафона стали особенно жаркими.
В гонке за призами активизировались все партнеры, чтобы стать обладателями ценных подарков Apple.
К несчастью, не обошлось и без, по нашему мнению, накрутки со стороны некоторых партнеров. Привлеченные ими клиенты проходят проверку.
Тем не менее, чтобы оставаться до конца честными к нашим партнерам, мы заменили подарки на более ценные трем лидирующим участникам, кто действительно старался и честно привлекал новых клиентов. А также ввели подарки за 11 и 12 место.
Мы поздравляем победителей и благодарим за участие всех участников! А тем, кто не сумел вырваться в лидеры, желаем удачи в наших следующих акциях.

Читать дальше →

Juniper MX + IX + SynFlood

В данной статье я бы хотел рассказать об одном достаточно простом методе защиты от Syn Flood атак на маршрутизаторах Juniper серии MX. Данный метод может помочь при нескольких условиях, о которых рассказано ниже. Конечно, есть аппаратные и программные решения, технологии Syn Cookies, Syn Proxy и другие. Но, иногда, большую часть трафика получается заблокировать на маршрутизаторе без применения дополнительных механизмов или дорогостоящих устройств. Так как мы использовали для настройки маршрутизатора некоторые статьи наших коллег, решили поделиться и нашим опытом, он достаточно специфичны, но надеемся принесет пользу. Пример такой атаки приведен на графике ниже.



Немного теории

Syn Flood — одна из разновидностей сетевых атак типа отказ от обслуживания, которая заключается в отправке большого количества SYN-запросов в достаточно короткий срок. Сам SYN пакет имеет маленький размер (с заголовками канального уровня 54+ байт), даже с полосой 1G можно генерировать большое количество пакетов в секунду. Часть провайдеров не запрещают отправку из своей сети пакетов с подменным адресом источника, и даже один сервер с полосой 1G, размещенный у такого провайдера, может генерировать атаку, которая создаст много проблем. Большинство провайдеров интернета для конечных пользователей не выпускают из своей сети пакеты с поддельным адресом источника и, как следствие, большинство атак идет именно с клиентов ДЦ, при этом количество атакующих машин невелико.

Что можно предпринять на Маршрутизаторе?

Изначально нужно исходить из того, что у нас хорошая связанность и подключено много точек обмена трафиком. Конечно, если у Вас единственный UPLINK и, предположим, Syn Flood идет с одной машины, можно попробовать проанализировать трафик, и, если человек который организует DDOS совсем ленивый и не позаботился о разных ttl, можно заблокировать трафик по ttl + dst ip. В этом случае отрежется весь трафик с данным ttl — это, безусловно, лучше, чем если бы сервер лежал совсем, но не оптимально.

На текущий момент на моей работе кроме магистральных провайдеров и провайдеров обеспечивающих неполную связанность, подключены такие точки обмена трафиком, как:
  • DataIX
  • Cloud-IX
  • Pirix
  • WIX
  • SpbIX
  • MskIX
  • CodIX
  • GlobalIX
  • IHome

Читать дальше →

Бесплатные SSL-сертификаты для всех

Мы рады сообщить, что теперь пользователи нашего хостинга прямо из панели управления могут бесплатно заказать
SSL-сертификат, предоставляемый некоммерческой организацией Let's Encrypt. Сертификат будет автоматически выпущен и установлен для вашего домена, а в последствии будет автоматически продлеваться. Для заказа Let's Encrypt сертификата не требуется выделенный IP-адрес.

Выпуск, установка и дальнейшее продление сертификата — абсолютно бесплатны!


Как заказать бесплатный SSL-сертификат?
1. Зайдите в раздел «Домены» и выберите напротив домена «Управление SSL сертификатами».

2. В открывшемся окне перейдите на вкладку «Бесплатный сертификат» и нажмите кнопку «Заказать».

3. После отправки заказа SSL-сертификата на контактный email вы получите письмо о подаче заявки на выпуск SSL, а затем еще одно письмо о завершении его установки.
4. В момент установки для домена будет автоматически изменена A-запись, если домен работает на наших DNS. Если вы используете не наши DNS, то необходимо самостоятельно прописать на них указанный в письме IP-адрес в качестве А-записи для домена.

DNS записи обычно обновляются в течение 10-15 минут, после их обновления проверьте корректную работу сайта через https и при необходимости настройте редирект с http на https на постоянной основе.

Убедитесь, что все подключаемые к сайту ресурсы запрашиваются по https, а также все внутренние и внешние ссылки указаны по протоколу https. В противном случае, это может повлиять на правильную работу сайта.

Если все прошло успешно, то при запросе сайта по https, в адресной строке браузера вы увидите зеленый замок слева от адреса вашего сайта , который означает, что установлено безопасное соединение с ним. Нажмите на иконку зеленого замка, если хотите посмотреть более подробную информацию о выпущенном сертификате.

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

Подключили прямой стык с провайдером Elitel

Подключили прямой стык с провайдером Elitel eliteltg.ru Теперь трафик между нашими сетями ходит напрямую, время отклика существенно сократилось. В текущий момент ведем переговоры, что бы трафик до наших серверов считался как локальный.

Встречайте PHP7



Мы рады сообщить вам, что теперь на нашем хостинге вы можете использовать PHP7 (www.php.net), подключив его в панели управления всего в несколько кликов.

По сравнению с PHP 5.6 новый интерпретатор выигрывает по производительности по меньшей мере на 20-30%.

Большие изменения коснулись ядра интерпретатора: проект PHPNG, который лежит в основе PHP7, значительно поднял производительность его работы, был улучшен менеджер оперативной памяти и введена полноценная поддержка 64-битных систем.

Новвоведения PHP7
В PHP7 был добавлен ряд новых синтаксических конструкций, а также исправлено множество ошибок предыдущих версий.

Поддержка скалярного typehint для агрументов функций, аргументов методов и возвращаемых значений позволит сделать код более читабельным. Также появилась возможность включить режим строгой типизации, при которой проверка типов будет выполняться строго. В случае несоответствия типов будет выброшено исключение TypeError.
declare(strict_types=1);
 
function checkPasswordLength(string $password) : bool {
     
return strlen($password) > 6;
 
}
 
  checkPasswordLength
(123456); // TypeError!
  checkPasswordLength
("secretpassword"); // ok


Null coalescing operator.
Новый оператор, который, по сути, является приятным синтаксическим сахаром, позволяет не писать утомительную проверку с isset, если переменной или значения в массиве может не существовать.
$username = isset($_GET['username']) ? $_GET['username'] : "nobody"; // Старый способ
$username
= $_GET['username'] ?? "nobody"; // С помощью нового оператора
$username
= $_GET['user'] ?? $_POST['user'] ?? 'nobody'; // можно объединять в цепочки


Spaceship operator.
Новый оператор сравнения тоже является синтаксическим сахаром. Он производит сравнение операндов и возвращает:
0, если значения равны
-1 если левый операнд меньше правого
1 если правый операнд больше правого

Spaceship operator удобно использовать в callback-функциях, которые передаются в функцию сортировки:
$users = [
 
"Mike" => ["age" => 22],
 
"Ann"  => ["age" => 32],
 
"Tony" => ["age" => 10],
];

$sortSpaceship
= function($a, $b) {
 
return $a['age'] <=> $b['age'];
};

$sortWithoutSpaceship
= function($a, $b) {
 
return ($a['age'] < $b['age']) ? -1 : (($a['age'] > $b['age']) ? 1 : 0);
};

uasort
($users, $sortSpaceship); // Сортировка с применением нового spaceship-оператора
uasort
($users, $sortWithoutSpaceship); // Сортировка без него, намного длиннее


Анонимные классы.
В PHP7 добавлена поддержка анонимных классов в стиле Java и C#. Анонимные классы могут быть вложенными.
// Pre PHP 7 code
class Logger
{
   
public function log($msg) {
        echo $msg
;
   
}
}

$util
->setLogger(new Logger());

// PHP 7+ code
$util
->setLogger(new class {
                     
public function log($msg) {
                         echo $msg
;
                     
}
                 
});


Как включить поддержку PHP7?
Включить поддержку PHP7 для домена вы можете из панели управления в разделе «Сайты». Напротив домена, который должен использовать интерпретатор PHP7, нажмите на иконку с надписью «PHP». В открывшемся окне выберите PHP7 и нажмите кнопку «Применить». Немного подождите пока применятся настройки и начинайте писать код на PHP 7.