Защита от DDoS

Цепочка анализа и блокировки

/ip firewall address-list
add list=ddos-attackers
add list=ddos-target
/ip firewall filter
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
add action=add-dst-to-address-list address-list=ddos-target address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
/ip firewall raw
add action=drop chain=prerouting dst-address-list=ddos-target src-address-list=ddos-attackers

Процесс защиты

Отправляем новые соединения в Jump цепочку detect-ddos

/ip firewall filter
add chain=input connection-state=new action=jump jump-target=detect-ddos

Если трафик не превысит параметрам, он возвращается из цепочки action=return

/ip firewall filter
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s

Если dst-limit превысит показания, создаются адрес-листы:

  • ddos-target с списком жертв
  • ddos-attackers с списком атакующих
/ip firewall filter
add action=add-dst-to-address-list address-list=ddos-target address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos

И трафик списка атакующих ddos-attackers блокируется в RAW

/ip firewall raw
add action=drop chain=prerouting dst-address-list=ddos-target src-address-list=ddos-attackers

SYN

Проверка клиента через «ключ», что ответ пришел от того самого клиента

/ip settings set tcp-syncookies=yes

Аналогично добавляем в цепочку detect-ddos, но при настроенной цепочке от DDoS не имеет смысла

/ip firewall filter
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack