Страница 1 из 1

ddos block firewall+address list+bgp filter

Добавлено: 29 мар 2017, 23:30
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

Re: ddos block firewall+address list+bgp filter

Добавлено: 30 мар 2017, 16:11
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;
	}
}

 

Re: ddos block firewall+address list+bgp filter

Добавлено: 30 мар 2017, 23:24
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?

Re: ddos block firewall+address list+bgp filter

Добавлено: 31 мар 2017, 00:43
Chupaka
Так ведь

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