ddos block firewall+address list+bgp filter

Автоматизация при помощи встроенного скриптового языка и RouterOS API
prozaklob
Сообщения: 9
Зарегистрирован: 29 мар 2017, 23:15

ddos block firewall+address list+bgp filter

Сообщение prozaklob »

Милсдари,нужен скрипт:
защита от ddos следующего вида
На тике есть ip. на него прилетают пакеты/соединения. Анализируем кол-во пакетов/соединений. Если достигнут лимит - вносим этот ip ( который на микротике ) в address-list list=ddos с каким-то timeout.
Далее работает скрипт с каким-то интервалом.
Этот скрипт должен чекнуть наличие IP в address-list list=ddos и занести этот IP в routing filter и bgp networks
bgp networks:
ip address/32 dis=no
bgo filter:
chain=bgp-out prefix=ipfromaddersslist action-accept set-bgp-communities=test
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: ddos block firewall+address list+bgp filter

Сообщение Chupaka »

Я так понимаю, сети /32 в мир не анонсируются, поэтому фильтр трогать не надо (в нём просто будет правило: всё, что /32 - в блэкхол).

Синхронизация адрес-листа с networks:

Код: Выделить всё


# пробегаем по адрес-листу, добавляем в networks адреса
:foreach i in=[ /ip firewall address-list find list="ddos" ] do={
	:local net ([ /ip firewall address-list get $i address ]."/32");
	:if ([ :len [ /routing bgp network find network=$net ] ] = 0) do={
		/routing bgp network add network=$net;
	}
}

# пробегаем по networks, удаляем лишние
:foreach i in=[ /routing bgp network find network~"/32\$" ] do={
	:local addr [ /routing bgp network get $i network ];
	:set addr [ :pick $addr 0 [ :find $addr "/" ] ];
	:if ([ :len [ /ip firewall address-list find list="ddos" address=$addr ] ] = 0) do={
		/routing bgp network remove $i;
	}
}

 
prozaklob
Сообщения: 9
Зарегистрирован: 29 мар 2017, 23:15

Re: ddos block firewall+address list+bgp filter

Сообщение prozaklob »

/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=block-ddos
add chain=block-ddos dst-limit=200,200,src-and-dst-addresses/10s action=return
add chain=block-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m


как оптимизировать это правило,что бы оно работало только при входящих соединениях на пул адресов 10.10.10.0/24?
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: ddos block firewall+address list+bgp filter

Сообщение Chupaka »

Так ведь

add chain=forward dst-address=10.10.10.0/24 connection-state=new action=jump jump-target=block-ddos