Úvod
Útok typu DoS (denial-of-service) nebo DDoS (distributed denial-of-service) je zákeřný pokus o narušení běžného provozu cílového serveru, služby nebo sítě zahlcením cíle nebo jeho okolní infrastruktury záplavou internetového provozu. Existuje několik typů útoků DDoS, například HTTP flood, SYN flood, DNS amplification atd.
Ochrana proti DDoS
Konfigurační linky
Vysvětlení konfigurace
Nejprve odešleme každé nové připojení do konkrétního řetězce brány firewall, kde zjistíme DDoS:
Do nově vytvořeného řetězce přidáme následující pravidlo s parametrem "dst-limit". Tento parametr je zapsán v následujícím formátu: dst-limit=count[/time],burst,mode[/expire]. Budeme porovnávat 32 paketů s 32 pakety burst na základě toku cílové a zdrojové adresy, který se obnovuje každých 10 sekund. Pravidlo bude fungovat, dokud nebude překročena daná rychlost.
Zatím by měl veškerý legitimní provoz procházet přes "action=return", ale v případě DoS/DDoS bude buffer "dst-limit" naplněn a pravidlo "nezachytí" žádný nový provoz. Zde přicházejí na řadu další pravidla, která se budou útokem zabývat. Začneme vytvořením seznamu pro útočníky a oběti na které provoz zahodíme:
V části filtru firewallu přidáme útočníky do seznamu "DDoS-attackers" a oběti do seznamu "ddos-targets":
Útok SYN
Záplava SYN
SYN flood je forma útoku DoS, při kterém útočník posílá do cílového systému řadu požadavků SYN ve snaze spotřebovat dostatečné množství prostředků serveru, aby systém přestal reagovat na legitimní provoz. V systému RouterOS máme naštěstí pro takový útok specifickou funkci:
Funkce funguje tak, že odesílá zpět pakety ACK, které obsahují malý kryptografický hash, který klient, který odpovídá, odešle zpět jako součást svého paketu SYN-ACK. Pokud jádro tento "cookie" v odpovědním paketu neuvidí, bude předpokládat, že spojení je falešné, a ukončí ho.
SYN-ACK Flood
SYN-ACK flood je metoda útoku, která spočívá v zasílání podvrženého paketu SYN-ACK cílovému serveru vysokou rychlostí. Server potřebuje značné prostředky na zpracování takových paketů mimo pořadí (ne v souladu s běžným mechanismem třícestného handshake TCP SYN, SYN-ACK, ACK), může být natolik vytížen zpracováním útočného provozu, že nezvládne zpracovat legitimní provoz, a útočníci tak dosáhnou stavu DoS/DDoS. V systému RouterOS můžeme nakonfigurovat podobná pravidla z dříve uvedeného příkladu, ale konkrétněji pro SYN-ACK flood:
Útok typu DoS (denial-of-service) nebo DDoS (distributed denial-of-service) je zákeřný pokus o narušení běžného provozu cílového serveru, služby nebo sítě zahlcením cíle nebo jeho okolní infrastruktury záplavou internetového provozu. Existuje několik typů útoků DDoS, například HTTP flood, SYN flood, DNS amplification atd.
Ochrana proti DDoS
Konfigurační linky
Kód: Vybrat vše
/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
Vysvětlení konfigurace
Nejprve odešleme každé nové připojení do konkrétního řetězce brány firewall, kde zjistíme DDoS:
Kód: Vybrat vše
/ip/firewall/filter/add chain=forward connection-state=new action=jump jump-target=detect-ddos
Kód: Vybrat vše
/ip/firewall/filter/add chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s action=return
Kód: Vybrat vše
ip/firewall/address-list/add list=ddos-attackers
ip/firewall/address-list/add list=ddos-targets
ip/firewall/raw/add chain=prerouting action=drop src-address-list=ddos-attackers dst-address-list=dddos-targets
Kód: Vybrat vše
/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
Útok SYN
Záplava SYN
SYN flood je forma útoku DoS, při kterém útočník posílá do cílového systému řadu požadavků SYN ve snaze spotřebovat dostatečné množství prostředků serveru, aby systém přestal reagovat na legitimní provoz. V systému RouterOS máme naštěstí pro takový útok specifickou funkci:
Kód: Vybrat vše
/ip/settings/set tcp-syncookies=yes
SYN-ACK Flood
SYN-ACK flood je metoda útoku, která spočívá v zasílání podvrženého paketu SYN-ACK cílovému serveru vysokou rychlostí. Server potřebuje značné prostředky na zpracování takových paketů mimo pořadí (ne v souladu s běžným mechanismem třícestného handshake TCP SYN, SYN-ACK, ACK), může být natolik vytížen zpracováním útočného provozu, že nezvládne zpracovat legitimní provoz, a útočníci tak dosáhnou stavu DoS/DDoS. V systému RouterOS můžeme nakonfigurovat podobná pravidla z dříve uvedeného příkladu, ale konkrétněji pro SYN-ACK flood:
Kód: Vybrat vše
/ip/firewall/filter add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack