Автор Тема: BGP Blackhole или рфц3882  (Прочитано 1537 раз)

Оффлайн Gonarh

  • Админ
  • Абитуриент
  • ******
  • Сообщений: 299
BGP Blackhole или рфц3882
« : 26.01.2015, 22:47:59 »
Каждый мелкопупырчатый пионернет, рано или поздно сталкивается с DDoS. Копий сломано не мало о том, каков инструментарий для сего лучший. Я решил использовать сабж. Тут есть свои подводные камни, типа , поддерживают ли ваши аплинки подобную фичу.
Мы используем стандартные фичи линукса и bird:
Создадим отдельную таблицу маршрутизации, и назовем её blackholes
cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep

10      blackholes
Конфигурячим bird:
Цитировать
filter bh_filt {
        if (proto = "blackhole" ) then
        {
                if net.len = 32 then {
                        bgp_community.add((12345,666));
                        print "Blackhole net/host: ", net;
                        accept;
                }
        }
        if net ~ 1.2.3.0/24 then accept;
        else reject;
}

debug protocols all;

table blackholes;

protocol kernel blackhole {
        table blackholes;
        kernel table 10;
        scan time 60;
        learn;
        import all;
        export all;
}

protocol kernel Kmain_table{
        scan time 60;
        import none;
        export filter bh_filt;
}

protocol pipe {
        table master;
        peer table blackholes;
        mode transparent;
        import filter { accept; };
}
Работать все это хозяйство будет так. Мы ручками добавляем маршрут на атакуемый ip адрес в таблицу blackholes, bird сканит эту таблицу, добавляет его в главную таблицу маршрутизации, и отправляет анонс /32 пиру (в нашем случае это AS 12345),
навешивая на него коммьюнити 666 (данный идентификатор необходимо уточнить у технарей вашего аплинка).
Также необходимо навесить фильтр bh_filt на export сессии с пиром по BGP.
Ну и на посошок, напишем такой скриптец
Цитировать
cat blackhole.sh
#!/bin/bash

ip route $1 blackhole $2/32 table blackholes
Допустим мы хотим заблекхолить адрес 1.2.3.4
нам достаточно сделать
Цитировать
blackhole.sh add 1.2.3.4
И через минуту пир получит анонс.
« Последнее редактирование: 16.02.2016, 12:04:53 от Gonarh »