Omezení rychlosti není prevencí, ale spíše pozvánkou k DoS – zejména ve výše uvedené variantě, kdy pakety budou zahazovány, pokud bude překročena určitá rychlost neověřených paketů bez informací o stavu. Vzhledem k tomu, že každý může padělat pakety (včetně zdrojových IP adres) v tomto stavu připojení bez větší námahy, vznikne nový vektor útoku DoS využívající vaše zařízení pro omezení rychlosti.
Omezení sazby bude mít obecně smysl, pouze pokud máte
- buď předvídatelný pevný nebo měkký limit připojení ve vaší konfiguraci
- nastavte limit rychlosti pro obecný provoz pod tento limit, abyste mohli nastavit připojení pro prioritní nebo administrativní provoz bez ohledu na zatížení
Zatímco 1. je často dost těžké určit, aby to i obtěžovalo, 2. bude evidentně fungovat pouze tehdy, pokud jste schopni při nastavení připojení spolehlivě odlišit „prioritní nebo administrativní“ provoz od ostatního – např. pokud přichází přes jiné síťové rozhraní.
V ostatních případech by to spíše snížilo odolnost vašeho systému, než aby ji přidalo.
Problém s -m limit je omezení všech TCP paketů bez ohledu na zdrojové IP adresy. Pokud tedy máte nízké omezení pro pakety syn, jako je
-A INPUT -p tcp --syn -m limit --limit 30/s --limit-burst 30 -j ACCEPT
-A INPUT -p tcp --syn -j DROP
pouze jeden klient s příkazovým řádkem hping může zničit váš server odesláním tolika tcp paketů s příznakem SYN, protože pravidlo limitu bude odpovídat a zahodí mnoho paketů bez ohledu na zdrojové IP adresy. limit nedělá rozdíl mezi dobrým a špatným provozem. Sníží to i dobrý příchozí provoz.
hping může být něco jako:
hping thetargetedhostip -p 80 -S -c 1000 -i u20000
Pro omezení příchozích tcp připojení na IP adresu je lepší použít hashlimit . Následující pravidlo bude odpovídat pouze v případě, že bude přijato 30 paketů za sekundu, čímž se sníží počet autorizovaných paketů na IP až 15 paketů za sekundu.
-A INPUT -p tcp --syn -m hashlimit --hashlimit 15/s --hashlimit-burst 30 --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name synattack -j ACCEPT
-A INPUT -p tcp --syn -j DROP
Ve skutečnosti jsem PŘESVĚDČEN, že mnoho serverů, které jsou dnes staženy, není zabráno kvůli nedostatku zdrojů během útoku, ale kvůli limitnímu modulu, který vyřadí veškerý příchozí provoz.