GNU/Linux >> Znalost Linux >  >> Linux

Proč neblokovat ICMP?

Řešení 1:

ICMP je mnohem víc než „traceroute“ a „ping“. Používá se pro zpětnou vazbu při spuštění serveru DNS (port nedostupný), což v moderním serveru DNS může ve skutečnosti pomoci vybrat jiný počítač pro rychlejší dotazování.

ICMP se také, jak bylo zmíněno výše, používá pro zjišťování cesty MTU. Je pravděpodobné, že váš operační systém nastaví „DF“ (nefragmentujte) na paketech TCP, které odesílá. Očekává se, že dostane zpět paket ICMP „vyžaduje fragmentaci“, pokud něco na cestě nezvládne tuto velikost paketu. Pokud zablokujete všechny ICMP, váš počítač bude muset použít jiné záložní mechanismy, které v zásadě používají časový limit k detekci „černé díry“ PMTU a nikdy nebudou správně optimalizovány.

Kromě toho byste se měli zeptat sami sebe, proč chcete blokovat ICMP. Čemu konkrétně se zde snažíte zabránit? Je celkem jasné, že nechápete, k čemu se ICMP používá, což je docela běžné. Byl bych extrémně opatrný při blokování něčeho, čemu úplně nerozumíte.

Aby bylo ještě těžší se o tom dozvědět, mnoho běžných knih o firewallu říká „blokovat ICMP“ – je jasné, že jejich autoři nikdy nečetli RFC nebo museli řešit problémy kolem takových rad. Je špatná rada blokovat všechny ICMP.

Nyní může ublížit i omezení rychlosti. Pokud je váš počítač zaneprázdněn, nebo i když není, můžete získat značné množství provozu ICMP. Můj webový server pravděpodobně dostává asi 10-100 ICMP paketů za minutu, z nichž většinu tvoří objev PMTU. I kdyby se někdo rozhodl zaútočit na můj server pomocí ICMP paketů nějakého typu, ve skutečnosti to není tak velký problém. Pokud váš počítač akceptuje byť jen jedno TCP spojení (ssh, http, mail, atd.), je pravděpodobné, že se jedná o větší vektor útoku, než kdy bude špatně pochopený ICMP.

Řešení 2:

ICMP se používá pro řadu diagnostických (např. ping, traceroute) a síťových funkcí (např. zjišťování PMTU). Nerozlišující blokování ICMP způsobuje ostatním lidem nejrůznější pálení žáhy, a pokud přesně nevíte, co děláte, měli byste to nechat být.

Řešení 3:

Nikdy jsem nepochopil, proč lidé taktovají ICMP, jak bylo řečeno výše, vždy to způsobuje bolesti hlavy vám i ostatním. Můžete snadno určit, zda je hostitel zapnutý, a pokud je dostatečně omezený, aby nemohl být použit jako DOS, nikdy jsem neslyšel žádné přesvědčivé důvody, proč jej blokovat. (Pokud někdo může přijít s důvodem, napište)

Řešení 4:

můžete prostě zkusit omezit icmp, takže to nemůže být použito jako útok DOS. ale existuje příliš mnoho nástrojů pro odstraňování problémů, jako je ping, mtr (zapomínám na ekvivalent systému Windows), traceroute (tracert), které používají icmp. úplně je vypustit je hloupost. Je to dobrý způsob, jak zkontrolovat, zda je vaše instance aktivní, i když na žádném portu nemůžete telnet.

--limit 10/second
na vaše pravidlo (pravidla) icmp je pravděpodobně slušný limit vzhledem k tomu, kolik počítač skutečně zvládne.

Řešení 5:

Zde je alternativní pohled v duchu toho, co by naznačovala bezpečnostní teorie. Jiné plakáty mají pravdu, že bezpečnostní praktiky jsou často příliš horlivé, ale mnohé z nich mají dobrý základ.

Bezpečnostní teorie obecně říká, že povolíte pouze TO, CO POTŘEBUJETE. Jiné věci (které by mohly být užitečné – např. odpovědi pingem) může útočník použít k prozkoumání vašeho systému nebo možná jako vektor útoku na nějakou dosud neobjevenou zranitelnost.

Když se tedy podíváme na typy zpráv ICMP, co POTŘEBUJETE pro normální a správný provoz vašeho systému?

  • echo odpověď (ping) – ne tolik
  • cíl je nedostupný – zde je spousta užitečných informací. Vypněte toto a některým klientům přerušíte přístup k vašemu serveru.
  • source quench – zastaralý od roku 1995 a zřejmě odstraněn z hostitelských implementací (nejpozději) od roku 2005. tools.ietf.org/html/rfc6633#section-1.
  • přesměrování – téměř jistě ne
  • Inzerce a žádosti o směrovač – není potřeba, pokud staticky konfigurujete své cesty, a lze je použít pro DoS. Zablokoval bych to, pokud nevíte, že to potřebujete, a pokud to potřebujete, možná kódujte pravidlo, které bude přijímat informace pouze z možných známých směrovačů.
  • Překročena hodnota ttl – nejen pro traceroute, znamená to, že se váš provoz nedostává do cíle

...a tak dále. Pokud tomu opravdu chcete porozumět, přečtěte si informace o různých typech ICMP a o tom, k čemu slouží. Článek na wikipedii je dobrým výchozím bodem.

V praxi je to opravdu ošklivé přesměrování; pokud chcete udělat něco rychlého a užitečného, ​​zablokujte to a povolte zbytek.

Dodal bych, že sledování připojení IPtables umožní odpovídající návratové pakety ICMP pro aktivní připojení. Pokud tedy používáte conntrack, měli byste být schopni zablokovat většinu příchozích ICMP, pokud přijímáte SOUVISEJÍCÍ pakety (než zablokujete ICMP v sadě pravidel).


Linux
  1. Proč Find nepřijímá ‚-exec Cp {} Dir +‘?

  2. Proč dlouhé zpoždění poté, co příkaz nebyl nalezen?

  3. Proč nebyl příkaz sudo:bundle nalezen?

  1. Proč mapování MAP_GROWSDOWN neroste?

  2. Proč používáme su – a nejen su?

  3. proč smazání bash historie nestačí?

  1. Proč server zablokoval moji IP?

  2. Proč není Nullglob výchozí?

  3. Linux – Proč Setuid nefunguje?