Netfilter

Transkript

Netfilter
„Netfilter“
semestrální projekt předmětu OBDAI 2011
Vypracoval:
Obor:
Ročník:
Datum:
E-mail:
Pavel Vraný
Aplikovaná informatika K-AI-4
1.
1.11.2011
[email protected]
Obsah
1 Úvod..............................................................................................................................................3
2 Netfilter.........................................................................................................................................4
2.1 Funkcionalita.........................................................................................................................4
2.2 Netfilter a kernel ..................................................................................................................4
2.2.1 Průchod paketů protokolu IPv4 ....................................................................................5
2.3 Nástroje pro Netfilter ...........................................................................................................5
2.4 iptables .................................................................................................................................6
2.4.1 Slabiny iptables.............................................................................................................7
2.4.2 Rozšíření pro iptables....................................................................................................7
2.5 Příklady nasazení pro ethernet a IPv4...................................................................................8
2.5.1 Implicitní politika..........................................................................................................8
2.5.2 Stavový firewall............................................................................................................9
2.5.3 Zabránění detekce počítačů skrytých za NAT .............................................................9
2.5.4 Omezení provozu jen na protistrany z České republiky .............................................10
2.5.5 Port knocking..............................................................................................................10
2.5.6 Obrana proti spoofingu................................................................................................11
2.5.7 NAT ............................................................................................................................11
2.5.7.1 MAC NAT...........................................................................................................11
2.5.7.2 IPv4 NAT............................................................................................................12
2.5.8 přesměrování portů (DMZ).........................................................................................12
2.5.9 Značkování paketů......................................................................................................13
2.5.10 Vlastník paketu..........................................................................................................13
2.5.11 Zamezení provozu P2P sítí........................................................................................13
2.5.12 Obrana proti DOS .....................................................................................................14
2.5.12.1 Útok SYN flood ................................................................................................14
2.5.12.1 Obrana proti PING flood...................................................................................16
2.5.13 Obrana proti skenování.............................................................................................16
2.5.14 Reakce na detekovaný útok ......................................................................................18
3 Závěr...........................................................................................................................................19
4 Literatura.....................................................................................................................................20
5 Přílohy.........................................................................................................................................21
5.1 Základní pojmy...................................................................................................................21
1 Úvod
Netfilter je framework pro manipulaci s pakety obsažený v linuxovém jádře. Jeho
nejviditelnější součástí je nástroj iptables, jenž na většině linuxových stanic slouží k definici
pravidel pro firewall.
Cílem práce je seznámení se s principy vnitřního fungování Netfilteru, způsoby kterými lze
pakety zpracovávat a uvést příklady nasazení frameworku z oblasti zabezpečení síťového
provozu.
2 Netfilter1
2.1 Funkcionalita
Netfilter je framework pro manipulaci s pakety obsažený v linuxovém jádře. S příchodem
jader řady 2.4 nahradil Netfilter původní paketový filtr ipchains. Jeho hlavním přínosem oproti
předchůdcům je přenesení rozhodovací procedury z kernelu do userspace a schopnost udržovat si
v paměti stav existujícího spojení.
Díky druhé vlastnosti je schopen zrychlit proces rozhodování, zda procházející pakety
mohou být propuštěny dál nebo ne. Pakety z již povoleného spojení nemusí absolvovat celý
rozhodovací proces a může být o nich rozhodnuto na základě uloženého stavu spojení.
Kromě filtrování procházejících paketů umí Netfilter zajistit NAT (nad IPv4) a některé
další manipulace s paketem (např. TTL).
Velkou výhodou Netfilteru je jeho otevřenost skrze definované API. Z tohoto důvodu
existují desítky nástrojů nad ním postavených a samozřejmě je možné vytvářet nové vlastní.
Nástroje založené na frameworku Netfilter jsou obvykle používány k těmto účelům:
•
•
•
•
•
•
•
•
•
bezstavový firewall pro IPv4 a IPv6
stavový firewall pro IPv4 a IPv6
NAT nebo maškaráda pro sdílení jedné IPv4 adresy
transparentní proxy server pomocí NAT
pomocný prostředek pro QoS
manipulace s hlavičkou paketu (TOS/DSCP/ECN)
sniffer operující v kernelu
skrytí paketů před sniffery v userspace
backdoor v kernelu, který svůj provoz úspěšně skryje před ostatními nástroji
(Jde o z pohledu útočníka o bezpečnější variantu ztrójštění binárek iptables, kterým si
může útočník zajistit existenci skrytého pravidla umožňujícím jeho přístup bez ohledu
na pravidla nastavená správcem.[4] Backdoor přímo v kernelu zabrání viditelnosti paketu
všem nástrojům.)
Zejména poslední položky v seznamu ukazují, že Netfilter sám o sobě je pouze nástroj.
Mocný, protože umožňuje kontrolovat síťový provoz přímo z prostředí kernelu. Ale o to víc
nebezpečný v případech, kdy k němu získá přístup neoprávněná osoba.
2.2 Netfilter a kernel
Netfilter lze do linuxového kernelu volitelně zaškrtnout při kompilaci. Všechny běžné
distribuce ho mají ve svých předkompilovaných jádrech již zahrnut.
Netfilter je framework pro manipulaci s pakety na síťové a linkové vrstvě modelu ISO/OSI.
Obsahuje moduly zajišťující podporu protokolů IPv4, IPv6, ARP a ethernet, moduly přidané
obslužnými nástroji (např. iptables) a jiné rozšiřující moduly (např. nf_onntract, nf_nat).
Každý modul definuje body (hooks) ve zpracování paketu nebo rámce, na které se může
zaregistrovat i více obslužných rutin. Konkrétně IPv4 definuje pět takovýchto bodů. V každém
1 Kapitola zpracována za pomocí manuálových stránek iptables[1], xtables-addons[2] a dokumentace dostupné
na domovské stránce projektu Netfilter[3].
bodě může obslužná rutina paket prozkoumat, změnit, zakázat, povolit, vynutit jeho zapomenutí
či požádat o přesměrování do userspace k dalšímu zpracování.
Návratové kódy z obslužné rutiny:
•
•
•
•
•
NF_ACCEPT: pokračovat v normálním průchodu
NF_DROP: paket je stornován a je ukončen průchod
NF_STOLEN: převzetí paketu (byl zpracován příjemcem), ukončení dalšího průchodu
NF_QUEUE: zařazení paketu do fronty, ta často zpracována v userspace
NF_REPEAT: znovu předat ke zpracování tomuto bodu
Všechny registrované obslužné rutiny jsou volány při průchodu paketu kontrolním bodem,
přičemž součástí volání je identifikace obslužného bodu a strukturu popisující paket. Struktura
se skládá linkové (např. ethernet), síťové (např. IPv4) a transportní hlavičky (např. TCP, UDP).
[5]
2.2.1 Průchod paketů protokolu IPv4
Dnes nejpoužívanějším protokolem síťové vrstvy modelu ISO/OSI je IPv4, proto bude
implementace jeho zpracování ve frameworku Netfilter popsána podrobněji.
--->[1]--->[ROUTE]--->[3]--->[4]--->
|
^
|
|
|
[ROUTE]
v
|
[2]
[5]
|
^
|
|
v
|
A Packet Traversing the Netfilter System[3]
Na vstup přicházejí pakety, které splnily základní podmínky: sedí kontrolní součet, nebyly
zachyceny v promiskuitním módu a jsou skutečně určeny této stanici.
1. NF_IP_PRE_ROUTING: první bod, ve kterém je možné k paketům přistoupit pomocí
frameworku. Je zpracován ještě před rozhodováním, zda je paket určen k přesměrování
jinam nebo lokálnímu procesu
2. NF_IP_LOCAL_IN: pokud je paket určen pro lokální proces, je tento bod poslední,
ve kterém lze k paketu přistoupit. Poté je již předán lokálnímu procesu.
3. NF_IP_FORWARD: bod pro přístup k paketům určeným k přesměrování
4. NF_IP_POST_ROUTING: poslední bod před předáním paketu linkové vrstvě
5. NF_IP_LOCAL_OUT: bod pro zpracování paketů, jež vznikly na této stanici. Pakety jsou
k dispozici ještě před zpracováním pro routování.
2.3 Nástroje pro Netfilter
Od počátku vzniku projektu Netfilter je jeho součástí nástroj iptables. Ten je určen
pro nastavení filtrování, NAT a manipulace s pakety protokolu IPv4 na síťové vrstvě modelu
ISO/OSI. Protože nástroje mají ve svých obslužných rutinách k dispozici i hlavičky transportní
a linkové vrstvy, některá rozšíření nástroje iptables do těchto vrstev přesahují.
K nástroji iptables existují alternativy [např. výkonnější, ale mrtvý projekt nf-hipac
(http://www.hipac.org/)] a nástavby, stejně tak lze k frameworku přistupovat z vlastní aplikace
skrze veřejné API. Ale právě iptables je nejpoužívanějším nástrojem pro manipulaci s pakety
prostřednictvím Netfilteru, především kvůli své provázanosti s protokolem IPv4.
K dispozici je i verze pro protokol IPv6 s názvem ip6tables a obdobnou funkcionalitou,
samozřejmě bez voleb sloužících pro NAT.
Pro všechny nástroje jsou k dispozici různé rozšiřující moduly, které přidávají novou
funkcionalitu. Nejvíce rozšíření bylo vytvořeno pro nástroj iptables. Běžně požadovaná rozšíření
jsou dostupná skrze projekt Xtables- addons (http://xtables-addons.sourceforge.net/).
Rozšiřitelný je i samotný Netfilter. Jeho rozšíření registrují nové body (hooks), kterými
paket bude nucen procházet. Rozšíření pro nástroje často pro zajištění funkcionality současně
rozšiřují i Netfilter.
Jako rozšíření Netfilteru fungují moduly iptables, stejně tak i moduly pro manipulaci
s jinými protokoly: konkrétně arptables pro protokol ARP a ebtables pro filtrování
ethernetových rámců na linkové vrstvě.
Protože části kódu v těchto nástrojích jsou duplicitní a překrývající se (například rozšíření
MAC pro iptables umí pracovat s MAC adresou), je snaha všechny tyto nástroje nahradit jedním,
který by zastřešoval veškerou jejich funkcionalitu. Sjednocující nástroj je vyvíjen pod jménem
nftables, ale v současnosti není zatím dokončen.
2.4 iptables
iptables je tvořen moduly pro Netfilter a obslužným nástrojem. Pracuje na principu
tabulek a řetězců (chains) pravidel. Na každý kontrolní bod protokolu IPv4 ve frameworku
Netfilter jsou navázány (zaháčkovány) tabulky skrze řetězce, kterými musí paket projít[3]:
--->PRE------>[ROUTE]--->FWD---------->POST------>
Conntrack
|
Mangle
^
Mangle
Mangle
|
Filter
|
NAT (Src)
NAT (Dst)
|
|
Conntrack
(QDisc)
|
[ROUTE]
v
|
IN Filter
OUT Conntrack
| Conntrack
^ Mangle
| Mangle
| NAT (Dst)
v
| Filter
Nástroj iptables umožňuje manipulaci s vestavěnými řetězci v těchto tabulkách i vytváření
vlastních řetězců, vytváření a mazání pravidel v řetězcích a nastavení implicitní politiky
pro tabulky.
Pravidla specifikují co je třeba vykonat s pakety, které prochází daným řetězcem a těmto
pravidlům odpovídají. Výsledná akce je zapsána ve formě cíle pro odskok z pravidla.
Pokud není explicitně uvedena cílová tabulka (pomocí parametru -t nebo --table), je
použita tabulka filter.
Výslednou akcí může být uživatelem definovaný řetězec nebo jedna ze speciálních hodnot.
Ty jsou buď vestavěné nebo mohou být přidány některým z rozšiřujících modulů. Nejběžněji
používané hodnoty jsou:
•
•
ACCEPT: povolí průchod/přijetí paketu
DROP: popření paketu, paket je odstraněn a neproběhne žádná reakce na něj
•
•
QUEUE: pošle paket do userspace, kde může být zpracován skrze obslužný handler
(např. ip_queue)
RETURN: ukončí zpracování paketu v aktuálním řetězci, zpracování pokračuje
ve volajícím řetězci. Pokud žádný volající řetězec neexistuje (tedy aktuální řetězec je
jeden z vestavěných), výsledkem zpracování je dán implicitní politikou řetězce.
Implicitně Netfilter/iptables obsahují pro IPv4 tabulky raw, filter, nat a mangle, další
tabulky mohou být vytvořeny pomocí rozšíření. Nástroj iptables pro tyto tabulky definuje
řetězce, kterými musí paket projít:
•
•
•
•
raw: Tabulka umožňuje filtrovat pakety předtím, než jsou spouštěny náročnější operace.
Její pravidla jsou spouštěna před ostatními, což umožňuje například definovat výjimky
z provozu ošetřeného pomocí connection tracking vlastnosti.
◦ PREROUTING řetězec pro pakety dorazivší na síťové rozhraní
◦ OUTPUT pro lokálně vzniklé pakety
filter: Slouží k filtraci paketů, v této tabulce nikdy nedochází ke změnám. Tabulka je
napojena na tři různé řetězce:
◦ INPUT pro pakety určené lokálním procesům
◦ FORWARD pro routované pakety
◦ OUTPUT pro lokálně vytvořené pakety
nat: Umožňuje přepis adres a portů.
◦ OUTPUT pro lokálně vzniklé pakety předtím, než proběhne routování. Tento řetězec
je konzultován pouze pokud byl Netfilter do jádra kompilován s volbou
CONFIG_IP_NF_NAT_LOCAL.
◦ PREROUTING provádí přepis cílových adres a portů (např. za účelem transparentní
proxy). Řetězec je konzultován ještě před routováním.
◦ POSTROUTING: zde se provádí přepis zdrojových adres a portů (např. za účelem
maškarády). Řetězec je konzultován až po routování.
mangle: Tabulka umožňuje úpravu hlaviček paketu (např. TOS).
◦ PREROUTING: pro příchozí pakety před routováním
◦ OUTPUT: pro lokálně vzniklé pakety před routováním
◦ INPUT: pro pakety určené pro tuto stanici
◦ FORWARD: pro průchozí přeposílané pakety
◦ POSTROUTING: pro odcházející pakety po procesu routování
2.4.1 Slabiny iptables
Způsob zápisu pravidel pro nástroj iptables sebou přináší výkonnostní problémy.
Ty se projevují již při zavádění pravidel do systému, kdy se rozsáhlé konfigurace zahrnující
tisíce pravidel mohou inicializovat i několik minut (v závislosti na výkonu stroje).
Současně je iptables neefektivní při zpracování velkého množství rozsáhlých řetězců, kdy
nároky na systémové prostředky rostou lineárně s počtem pravidel.
2.4.2 Rozšíření pro iptables
Aby uživatelé nebyli nuceni opakovaně programovat pravidla se stejnou funkcionalitou,
případně nebyli limitováni dostupnými volbami iptables, je tento nástroj uzpůsoben
pro rozšiřování.
Rozšíření může zahrnovat obslužný modul pro kernel a samotné rozšíření aplikace
iptables. Modul pro kernel může registrovat nové porovnávací funkce, proti kterým mohou
pravidla testovat paket, a nové cíle pro odskok z pravidla. Mohou také vytvářet nové tabulky,
které budou vůči konečnému uživateli působit stejně jako ostatní vestavěné.
Rozšíření iptables (a Netfilteru) obecně byla dříve soustředěna v podprojektu patch-omatic, případně patch-o-matic-ng. Nevýhoda starého řešení spočívala ve formě, v jaké byla
rozšíření dostupná. Jednalo se o patche zdrojového kódu jádra a iptables. Z toho důvodu bylo
nutné překompilovat kernel a iptables pokaždé, kdy bylo vyžadována dosud neobsažená
funkcionalita.
Proto byl tento koncept nahrazen projektem xtables-addons, který tímto omezením netrpí.
Rozšíření jsou nyní k dispozici ve formě modulů. Aplikace iptables obsažená ve většině
linuxových distribucí bývá zkompilována tak, aby uměla pracovat se všemi moduly v distribuci
obsaženými. Pokud je potřeba přidat nový nepodporovaný modul, je někdy nutné překompilovat
iptables, ale nikdy ne samotný kernel.
Ke změně došlo v hlavní větvi linuxovém kernelu 2.6.17 (rok 2008)[6], proto je dodnes
běžně možné narazit na stroje používající starší verzi.
2.5 Příklady nasazení pro ethernet a IPv4
2.5.1 Implicitní politika
Pro každou tabulku lze definovat implicitní politika, která je vykonána, pokud žádné
obsažené pravidlo nevybere jinou akci.
Při tvorbě pravidel pro firewall je doporučeno řídit se zásadou: „Co není výslovně
povoleno, mělo by být zakázáno.“[4]. Takovému přístupu nejlépe vyhoví stanovení implicitní
politiky na zahazování paketů a následné explicitní povolování všeho, co je žádoucí. Ostatně
termínem technika explicitního povolení se tento přístup v některé literatuře označuje[8]2.
# implicitni politika pro tri hlavni retezce - technika explicitniho povoleni
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Nevýhodou tohoto přístupu je fakt, že některé funkce vyžadují výjimky v přístupu, tedy
díry ve firewallu[8]. Proto je vhodné dokumentovat jakoukoliv změnu a její důvod a pravidelně
hodnotit, zda důvody přetrvávají.
Opačný přístup je pak nazýván technikou explicitního zamítnutí. Při ní je povoleno vše, co
není výslovně zakázáno. Při zápisu implicitní politiky hlavních řetězců v iptables by se technika
projevila nastavením řetězců na ACCEPT.
Tyto politiky se promítají i hlouběji než do implicitní politiky řetězců a obvykle se
vzájemně kombinují. Například povolení veškerého příchozího provozu na TCP port 80
předchází zákaz konkrétního rozsahu IP adres.
2 Jiná literatura[7] používá pro techniku explicitní zákazu označení implicitní povolení a pro explicitní povolení
termín implicitní zákaz. To aby to nebylo tak jednoduché na pochopení...
2.5.2 Stavový firewall
Stavovostí se rozumí schopnost nahlížet nejen na jednotlivé pakety, ale na celé spojení
a pamatovat si jejich stav. V iptables je tohoto dosaženo kombinací modulů state a conntrack.
Rozšíření state přidává do nástroje iptables schopnost detekovat stav spojení, do kterého
paket náleží:
•
•
•
•
•
INVALID pro paket, který se nepodařilo identifikovat (např. došla paměť nebo jde
o ICMP error, který se ale nepovedlo přiřadit k existujícímu spojení)
ESTABILISHED pro paket, který patří do nějakého existujícího spojení
NEW pro paket navazující nové spojení
RELATED pro paket, který otevírá nové spojení, které ale má nějakou vazbu na
již existujícího spojení (např. FTP DATA, ICMP error)
UNTRACKED pro paket, který sledován (byl použit cíl NOTRACK v tabulce raw)
Následuje jednoduchá ukázka, kdy jsou zakázány všechny příchozí pakety vyjma těch, jež
patří do nějakého již existujícího spojení. To je typicky navázáno lokálním procesem
a v takovém případě je žádoucí, aby pakety obsahující odpověď protistrany dorazily ke svému
příjemci. Ukázka by mohla tvořit základ pravidel pro běžnou činnost na desktopovém počítači:
žádné služby poskytované ven a naopak povolit všechna odchozí spojení.
# ukazka stavoveho firewallu pro prichozi pakety urcene lokalnimu procesu
# povolit vsechna navazana spojeni
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# zakazat vsechna ostatni prichozi spojeni
iptables -I INPUT -i eth0 -j DROP
2.5.3 Zabránění detekce počítačů skrytých za NAT
Pokud router provádí NAT pro počítače v síti, lze tento zvenčí dedukovat na základě paketů
s odlišnou hodnotou TTL v hlavičce. TTL je hodnota, která dekrementuje při každém průchodu
přes nějaký router. Jakmile TTL poklesne na nulu, je paket zahozen. Důvodem existence je
prevence vzniku “nesmrtelných” nikdy nedoručených paketů, které by časem zahltily síť.
Nástroj iptables umožňuje manipulaci s hlavičkou paketu v tabulce mangle. Pro přímou
podporu manipulace s TTL je třeba použít rozšiřující modul TTL.
Úprava je provedena v rámci tabulky mangle pro všechny odchozí nebo přesměrovávané
pakety:
# sjednoceni TTL u odchozich paketu
iptables -v -t mangle -A OUTPUT -o eth0 -j TTL --ttl-set 64
iptables -v -t mangle -A FORWARD -o eth0 -j TTL --ttl-set 64
Další možnosti manipulace s TTL:
# ukazky moznosti manipulace s TTL
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 3
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
První příklad ukazuje, jak snížit hodnotu TTL, druhý naopak jak ji zvýšit. Při tomto druhu
manipulace je třeba si uvědomit, že síťový subsystém při routování hodnotu TTL nakonec ještě
dekrementuje.
Zvýšení hodnoty TTL o jedna umožňuje router skrýt před trasováním prováděným
například aplikací traceroute. Ta slouží k zmapování spojení do zvolené cílové adresy. Princip
jejího fungování je založen na posílání paketů se zvyšující se hodnotou TTL.
Traceroute první paket obvykle posílá s TTL rovnou jedna. Tato hodnota způsobí, že první
router na cestě paket zahodí a odešle o této akci informaci zpět pomocí protokolu ICMP. Tím
aplikace zjistí adresu prvního routeru na cestě. Totéž se opakuje pro další pakety, u kterých je
postupně hodnota TTL zvyšována o jedna. Pomocí odpovědí obdržených přes ICMP je
zmapována celá cesta.
Snížení hodnoty TTL může být motivováno snahou donutit uživatele používat služby, které
se nacházejí blíže naší síti.
2.5.4 Omezení provozu jen na protistrany z České republiky
Rozšíření geoip umožňuje omezit příchozí nebo odchozí provoz na konkrétní zemi.
Rozlišení státu probíhá podle IP adresy a příslušnosti ISP, který ji má ve svém rozsahu.
# omezeni prichoziho provozu jen na Ceskou republiku
iptables -A INPUT -m geoip --src-cc CZ -j ACCEPT
2.5.5 Port knocking
Rozšíření pknock se používá nejčastěji pro zabezpečení přístupu k ssh serveru. Princip
fungování spočívá v zákazu jakékoliv spojení na port, kde běží ssh. Pokud ale uživatel zaklepe
na nějaký jiný port, je jeho IP adrese dočasně povolen přístup na port ssh.
# ukazka pouziti pknock v TCP modu pro zpristupneni ssh serveru
iptables -P INPUT DROP
iptables -A INPUT -p tcp \
-m pknock --knockports 4002,4001,4004 --strict --name SSH \
--time 10 --autoclose 60 --dport 22 \
-j ACCEPT
Ukázkové pravidlo čeká na zaklepání formou obdržení SYN paketů na TCP porty 4002,
4001 a 4004. Pakety musí dorazit přesně v daném pořadí (--strict), v maximálním rozmezí deseti
sekund a nesmí mezi nimi přijít nic jiného, což je prevence proti hromadnému skenu.
Povolený přístup na ssh port je zde nastaven tak, aby byl po šedesáti sekundách opět
zakázán. V kombinaci s conntract lze povolit všechna již navázaná spojení tak, aby se toto
časové omezení nedotklo běžících včas navázaných spojení.
Při poklepání po protokolu TCP existuje nebezpečí, že bude sekvence kroků útočníkem
cestou odposlechnuta a později zrekonstruována. Proto rozšíření pknock nabízí i UDP mód, který
funguje na odlišném principu. Místo sekvence portů se přístup autentizuje pomocí dat
obsažených v paketu. Na zvolený port dorazí zpráva vytvořená pomocí tajného klíče
zašifrováním klíče, IP adresy klepajícího a aktuálního času (unix time v minutách). Po úspěšném
přihlášení může uživatel poslat novou zprávu, která jemu udělenou výjimku z pravidel zruší,
případně se ta po nějakém čase zruší sama.
Výhodou UDP módu je nemožnost útočníkem zrekonstruovat odemykací sekvenci.
Útočník sice může zachytit klepající paket, ale ten je časově omezen na jednu minutu a je platný
pouze pro konkrétní IP adresu. Pro úspěšný útok by tedy musel být schopen se vydávat za tuto
adresu (přijímat její síťový provoz) a současně během jediné minuty od odchycení úspěšně
napadnout ssh server. Pokud oprávněný uživatel po svém připojení pošle i uzamykací paket,
časové omezení útočníka se může zmenšit na milisekundy.
Nevýhodou UDP módu je nutnost časové synchronizace mezi klientem a serverem
plynoucí ze zaslání času v minutách v odemykacím paketu. Dalším omezením je nutnost
používat na klientovi veřejnou IP adresu, která je rovněž zahrnuta do odemykacího paketu. UDP
mód tedy není možné jednoduše provozovat za NATem.
# ukazka pouziti pknoc v UDP modu pro zpristupneni ftp serveru
# odemykaci klic je "foo", uzamykaci "bar"
iptables -A INPUT -p udp \
-m pknock --knockports 4000 --name FTP \
--opensecret foo --closesecret bar \
--autoclose 240 -j DROP
iptables -A INPUT -p tcp -m pknock --checkip --name FTP --dport 21 -j ACCEPT
2.5.6 Obrana proti spoofingu
Termín spoofing je označení používané pro situaci, kdy se některý stroj v síti vydává
za jiný. Nástroje pro Netfilter3 umí zkontrolovat, zda IP adresa paketu odpovídá MAC adrese,
ze které ethernet frame dorazil[10]:
#rešení pro ebtables
ebtables -A FORWARD -p IPv4 --ip-src 172.16.1.4 -s ! 00:11:22:33:44:55 \
-j DROP
#rešení pro iptables
iptables -A FORWARD -s 172.16.1.4 -m mac --mac-source ! 00:11:22:33:44:55 \
-j DROP
Taková kontrola dává pochopitelně smysl pouze tam, kde topologie sítě zaručuje jedině
přímé spojení zdrojového a cílového stroje na úrovni linkové vrstvy.
Současně není zárukou, že protistrana je skutečně tím, za koho se vydává. Protože útočník
může podvrhnout i MAC adresu.
2.5.7 NAT
Překlad síťových adres je nástroji Netfilteru podporován na síťové a linkové vrstvě modelu
ISO/OSI. Pro ethernet je používán nástroj ebtables, pro protokol IPv4 nástroj iptables.
2.5.7.1 MAC NAT
Nástroj ebtables lze použít pro vytvoření bridge na linkové vrstvě:
# bridge na linkove vrstve
ebtables -t nat -A PREROUTING -d 00:11:22:33:44:55 -i eth0 -j dnat \
--to-destination 54:44:33:22:11:00
V příkladu je v tabulce NAT v řetězci PREROUTING přepsána cílová MAC adresa rámce
na jinou. K přepisu dochází ještě před samotným routováním, které je tedy přepisem ovlivněno.
Přepis může způsobit i zahození paketu, pokud se nová cílová adresa nachází na síti, odkud
ethernetový rámec dorazil.[10]
3 Jako obrana proti IP spoofingu se také používá linuxová volba rp_filter, která umožní zahazovat pakety
dorazivší na jiné síťové zařízení, než jaké odpovídá jejich zdrojové adrese.[9]
2.5.7.2 IPv4 NAT
Aby bylo možné používat NAT, musí se pro linuxový síťový systém povolit:
# povoleni routovani v linuxu
echo 1 > /proc/sys/net/ipv4/ip_forward
Pro NAT protokolu IPv4 nabízí iptables dvě metody: maškarádu a SNAT (source NAT).
Maškaráda se používá, pokud router připojí LAN skrze jednu veřejnou adresu do vnější
sítě. K maškarádě je potřeba rozšíření Netfilteru ip_conntract.
Při průchodu prvního paketu spojení se do tabulky ip_conntrack zapíše informace
o navázaném spojení a povolí se průchod. Další spojení jsou povolována již na základě
existujícího spojení.
# ukazka maskarady
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Obdobného efektu lze dosáhnout i bez modulu masquerade přepisem zdrojové adresy
(SNAT). Pak je ale nutné v pravidle uvádět zdrojovou adresu, kterou si maškaráda nastavovala
automaticky sama. Tento způsob tedy činí konfiguraci složitější tam, kde nemá stanice
přidělenou pevnou IP adresu.
Hlavní výhodou SNAT proti maškarádě je fakt, že při reinicializaci síťového rozhraní
se nerozpadnou již navázaná spojení.[11]
# ukazka prepisu zdrojove adresy
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.1
Při NAT nastává často problém s protokolem ftp. Zde ftp server naslouchá na portu 21, ale
data po vyžádání putují z portu 20. Má-li maškaráda fungovat i pro protokol ftp, musí být
nataženy moduly ip_conntrack_ftp a ip_nat_ftp. S obdobnými problémy se lze setkat i u jiných
protokolů, často pak existuje i obdobné řešení (např. ip_conntract_irc).
2.5.8 přesměrování portů (DMZ)
Přesměrování portů je užitečné například tehdy, když má síť přidělenou jen jednu vnější
adresu a chce poskytovat ven nějaké služby. V takovém případě se obvykle použije firewall,
který zabraňuje nepovolenému přístupu do vnitřní sítě (LAN), zprostředkovává stanicím
ve vnitřní síti přístup na internet (SNAT/maškaráda nebo aplikační proxy) a přesměrovává
příchozí požadavky na porty nabízených služeb do tzv. demilitarizované zóny (DMZ).
# ukazka presmerovani portu
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j DNAT --to-destination 192.168.1.10:8080
# soucasne musi byt povoleno preposilani na cilovou stanici
iptables -A FORWARD -i eth0 -o eth1 -d 192.168.1.10 -p tcp --dport 8080 \
-j ACCEPT
Pro lokální přesměrování portů lze použít jednodušší zápis pomocí odskoku do speciálního cíle
REDIRECT:
# ukazka presmerovani na lokalni port
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \
-j REDIRECT --to-port 8080
2.5.9 Značkování paketů
Někdy nastane potřeba s paketem pracovat i poté, co dojde k modifikaci unikátního
kritéria, podle kterého byl rozpoznáván (např. zdrojové adresy). V takovém případě je možné
paketu přiřadit značku a později provádět jeho identifikaci pomocí ní.
iptables nabízí moduly mark a connmark. Zatímco první slouží k označení konkrétního
paketu, druhý za pomoci modulu conntract značku přiřadí celému spojení. Je-li cílem pracovat
s celým spojením, potom lze s jeho pomocí výrazně snížit náročnost průchodu paketu
na systémové prostředky. Svůj význam ale má i značkování jednotlivých paketů, které lze využít
například pro traffic-shaping.
# priklad oznackovani spojeni pomoci rozsireni CONNMARK
iptables -A PREROUTING -t mangle -i eth0 -p tcp --dport 25 \
-j CONNMARK --set-mark 25
# priklad detekce oznackovaneho spojeni
iptables -A POSTROUTING -t mangle -m mark --mark 25 -j ACCEPT
Specifické značkování provádí rozšíření ipmark, které přiděluje značku založenou
na zdrojové nebo cílové IP adrese. Toho lze využívat například pro QOS.
# ukazka oznacovani rozsirenim ipmark pomoci cilove IP adresy
iptables -t mangle -A POSTROUTING -o eth3 \
-j IPMARK --addr=dst --and-mask=0xffff --or-mask=0x10000
2.5.10 Vlastník paketu
Rozšíření owner umožňuje pakety označit podle vlastníka lokálního procesu, který jejich
provoz generuje. V rámci této odchozí komunikace se může hodit filtrovat pakety na základě
UID nebo GID procesu, který je generuje:
iptables -A OUTPUT -o eth0 \
-m owner --uid-owner podezrely-uzivatel \
-m limit --limit 1/s --limit-burst 10 \
-j LOG
Pravidlo zajistí logování paketů generovaných procesy uživatele podezrely-uzivatel
a směřující na síťové rozhraní eth0. Při logování je nutné pomocí modulu limit zajistit
ochranu proti přeplnění logů tak, aby se nelogoval každý jednotlivý paket[11].
Obdobně lze logovat spojení všech členů libovolné uživatelské skupiny:
iptables -A OUTPUT -o eth0 \
-m owner --gid-owner users \
-m limit --limit 1/s --limit-burst 10 \
-j LOG
2.5.11 Zamezení provozu P2P sítí4
IPP2P je rozšíření iptables, které se snaží o rozpoznání paketů patřících do spojení sdílející
data v různých P2P sítích. V pravidlech lze specifikovat konkrétní podporované P2P sítě,
případně jednou volbou filtrovat všechny.
# ukazka routeru zakazujiciho P2P sitovy provoz
iptables -A FORWARD -m ipp2p --ipp2p -j DROP
4 Kapitola zpracována podle [12]
Provoz pochopitelně nemusí být zcela zakázán, ale P2P přenosy mohou být jen
monitorovány nebo provozovány v omezeném přenosovém pásmu.
# ukazka oznaceni P2P provozu pro dalsi zpracovani
#
(napriklad logovani nebo traffic-shaping)
iptables -A PREROUTING -p tcp -m ipp2p --ipp2p -j MARK --set-mark 1
Protože rozšíření ipp2p pracuje vždy jen s jedním paketem, je vhodné rozpoznané spojení
označkovat a jeho pakety již neanalyzovat.
# ukazka nasazení ipp2p v kombinaci s connection tracking
# modul connmark obnoví pro paket značku spojení
iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark
# pokud nejaka znacka jiz existuje, spojeni je akceptovano
#
a dalsi pravidla v tomto retezci nebudou vykonana
iptables -t mangle -A PREROUTING -p tcp -m mark ! --mark 0 -j ACCEPT
# pokud je paket rozpoznan jako P2P, oznaci se
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --ipp2p \
-j MARK --set-mark 1
# oznaceni paketu se ulozi pro cele spojeni
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 1 \
-j CONNMARK --save-mark
2.5.12 Obrana proti DOS
Útoky, které počítači nebo síti zabraňují obvyklé využití síťových zdrojů, jsou
obvykle označovány jako Denial of Service (DOS). Tyto útoky obvykle slouží k
obtěžování, k blokování síťového provozu a obchodu na komerčních serverech
a k potlačení síťové existence hostitelů, za které se útočník chce vydávat.[4]
DOS útok obvykle spočívá v zaplavení napadeného počítače proudem paketů, jejichž
zpracování a reakce na ně stojí oběť značné systémové prostředky. Ty potom chybí pro provoz
běžných služeb případně regulérní síťový provoz. Základní ubranou proti DOS útokům vedeným
po síti je nastavení systému či provozovaných služeb, ale některá opatření lze realizovat
současně či výhradně na úrovni paketového filtru.
2.5.12.1 Útok SYN flood
Konkrétně v Linuxu je volba /proc/sys/net/ipv4/tcp_syncookies základní prevencí
proti DOS útoku známému pod označením SYN flood, tedy zahlcení napadeného stroje SYN
pakety.
Protokol IPv4 používá při navázání spojení tzv. three-way handshake, kdy klient pošle
serveru paket se žádostí o synchronizaci SYN, server na něj odpoví paketem SYN-ACK a klient
navázání spojení dokončení zasláním ACK paketu.
Pokud server používá pro evidenci částečně navázaných spojení omezenou frontu, stačí
aby útočník vynechal závěrečný ACK paket a dokáže tuto frontu zaplnit. Server pak není
schopen přijímat další žádosti o navázání spojení a je nucen je zahazovat.
Jako obrana proti tomuto chování vznikla technologie SYN-cookies, která umožňuje
serveru pomocí volby počátečního čísla TCP-sekvence zrekonstruovat SYN frontu, aniž by si ji
skutečně vytvářel a udržoval. Do zvoleného čísla jsou zakódovány všechny potřebné informace
k tomu, aby server ověřil platnost došlého SYN-ACK paketu a byl schopen dokončit proces
navázání spojení. Tato technologie má i své nevýhody, konkrétně dochází k zapomenutí
některých nastavení spojení ze SYN paketu (konkrétně velikost datového okna).[13]
Na úrovni iptables lze se SYN flood útokem bojovat pomocí modulů limit
a connectionlimit omezením počtu přijatých SYN paketů.
Modul limit lze využít pouze pro omezení podle pevně daných kritérií. Prakticky tedy
nelze omezit jen konkrétního útočníka, protože jeho zdrojovou adresu v době vytváření pravidel
obvykle neznáme.
#ukazka obrany pred SYN flood utokem pomocí modulu limit
#vytvorit pomocny retezec
iptables -N synfloodchain
#nastavit zvolené limity
#zde maximálně pět spojení, pokud je limit vyčerpán,
#
obnovuje se rychlostí 1/s
iptables -A synfloodchain -m limit --limit 1/s --limit-burst 5 -j RETURN
#co se nevejde do limitu, je zahozeno
iptables -A synfloodchain -j DROP
#nasměrovat všechny příchozí SYN pakety do pomocného chainu
iptables -A INPUT -p tcp --syn -j synfloodchain
Jinou ochranu před DOS nabízí modul connectionlimit. Ten pomocí síťové masky
umožňuje omezit paralelní spojení z konkrétní IP či celého IP rozsahu. Umožňuje tak obranu
proti DOS útokům přetěžujícím konkrétní běžící služby.
Například útok na webový server by mohl probíhat na úrovni HTTP protokolu a spočívat
v zasílání GET požadavků na obsah, pro jehož přípravu musí webový server vykonávat
výpočetně náročné operace. Při použití pravidel je třeba brát v úvahu regulérnost požadavků!
Konkrétně pro webový server může přicházet neobvyklé množství požadavků od proxy serveru
a na takovém chování není obvykle nic závadného.
Manuálová stránka iptables uvádí poměrně srozumitelné příklady použití, proto jsou zde
uvedeny bez úprav:
# ukazky omezeni poctu paralelnich spojeni
# allow 2 telnet connections per client host
iptables -A INPUT -p tcp --syn --dport 23 \
-m connlimit --connlimit-above 2 -j REJECT
# you can also match the other way around:
iptables -A INPUT -p tcp --syn --dport 23 \
-m connlimit ! --connlimit-above 2 -j ACCEPT
# limit the number of parallel HTTP requests
#
to 16 per class C sized network (24 bit netmask)
iptables -p tcp --syn --dport 80 \
-m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT
# limit the number of parallel HTTP requests
#
to 16 for the link local network
ip6tables -p tcp --syn --dport 80 -s fe80::/64 \
-m connlimit --connlimit-above 16 --connlimit-mask 64 -j REJECT
Za pomoci modulů recent a state můžeme omezit počet spojení pocházejících z konkrétní
adresy za určitou časovou jednotku. Na rozdíl od modulu connlimit tedy neomezuje jen paralelní
spojení, ale pracuje s uloženým seznamem.
#pro jakékoliv nové příchozí spojení (-m state --state NEW)
# na port 80 (--dport 80)
# je zdrojová adresa přidána na seznam (-m recent --set)
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
#zajistí, aby neprošlo více než deset nově navázaných spojení za minutu
iptables -A INPUT -p tcp --dport 80 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 10 -j DROP
2.5.12.1 Obrana proti PING flood
Útok typu PING flood je založen na zahlcení napadeného stroje echo pakety protokolu
ICMP. Pokud napadený stroj na tyto pakety odpovídá, může dojít k vyčerpání jeho přenosové
kapacity, a tím ke zpomalení síťového provozu.
Předpokladem úspěšného útoku je, aby útočník disponoval rychlejším připojením
k Internetu než napadený. Slabinou napadeného může být poddimenzování odchozí rychlosti
ve prospěch příchozích dat, které je běžné u mnoha poskytovatelů konektivity. Útočník může
útok vylepšit podvržením cizí IP adresy, takže napadený se snaží odpovídat někomu jinému.
# ukazka omezeni ping pozadavku
iptables -A INPUT \
-p icmp --icmp-type echo-request \
-m limit --limit 1/s --limit-burst 5 -j ACCEPT
2.5.13 Obrana proti skenování5
Rozšíření lscan detekuje skenování stanice na základě obsahu obdržených paketů.
Tento způsob je náročný na systémové prostředky a nejsložitější typy detekce mohou
i stonásobně snížit rychlost síťového provozu. Současně ale umožňuje detekovat i sken, který je
časově rozložen do desítek hodin a pro detekci založenou pouze na množství navazovaných
spojení je prakticky nezjistitelný.
Rozšíření lscan umí detekovat čtyři typy skenů:
•
--stealth vyhoví pakety, které nepatří do žádného známého TCP spojení (sem patří
skenování označované jako Stealth/FIN/XMAS nebo NULL).
•
--synscan vyhoví pokud spojení nedokončilo three-way handshake
•
--cnscan vyhoví pokud spojení sice bylo navázáno (proběhl three-way handshake),
ale okamžitě poté protistranou ukončeno.
•
--grscan vyhoví, pokud bylo spojení ukončeno ihned poté, co server odeslal první data
(např. identifikaci služby). Tuto volbu je třeba používat s rozvahou a pouze na protokoly,
kde data proudí obousměrně (např. ne na FTP DATA).
5 Kapitola zpracována podle [14]
Ilustrace 1: stavový graf detekce SYN skenování[14]
Některá rozšíření iptables slouží primárně pro obtěžování, zpomalení nebo zmatení
potenciálního útočníka. Jejich použití je kontroverzní, protože je založeno na často kritizovaném
přístupu Security through obscurity. Současně ztěžuje regulérní testování dostupnosti služeb
a parametrů sítě.
Rozšíření tarpit trápí protistranu udržováním spojení v perzistentním stavu, současně ale
zcela neprůchozím. U protokolu TCP je přijímací strana zodpovědná za zvětšování a zmenšování
velikosti datového okna, aby tak mohla přizpůsobit přenos kvalitě spojení. Tarpit naoko
akceptuje příchozí spojení (na SYN odpoví SYN-ACK), ale nastaví pro ně velikost okna na nulu.
Protistrana tedy nemůže začít posílat data, ale musí opakovaně žádat o pokračování (zvětšení
okna). Veškeré její pokusy spojení uzavřít jsou ignorovány (na FIN se nepošle odpověď FIN).
Takové chování udržuje spojení aktivní, jen je neprůchozí. Proces na protistraně jím může být
zablokován i na několik minut, než vyprší timeout.
# ukazka jednoducheho pouziti rozsireni tarpit
iptables -A INPUT -p tcp -m tcp --dport 80 -j TARPIT
Tarpit lze nasadit i pro přeposílání:
# ukazka pouziti tarpit tak, aby sliboval preposlani paketu
iptables -A FORWARD -p tcp -j TARPIT
iptables -A FORWARD -j DROP
Při použití rozšíření tarpit v kombinaci s běžně používaným rozšířením conntract je
vhodné mu dát na vědomí, že takové spojení není nutné sledovat. Tím se zásadně šetří systémové
prostředky.
# ukazka pouziti tarpit tak, aby
#
a soucasne setril systemove
iptables -t raw -A PREROUTING -p
iptables -A INPUT -p tcp --dport
predstiral beh IRC serveru
prostredky
tcp --dport 6667 -j NOTRACK
6667 -j TARPIT
Rozšíření delude na úvodní SYN paket odpovídá správně SYN-ACK, ale na všechny další
pakety posílá RST. Z pohledu skeneru, který nedokončuje three-way handshake, tak port působí
jako otevřený.
Kombinaci chování tarpit a delude umožňuje rozšíření chaos. Jeho hlavním cílem je
doslova vyvolat chaos v informacích, které port skener o systému získá. Na portech náhodně
mění způsob odezvy, takže výstup ze skenování je nepoužitelný.
Vedlejším pozitivním důsledkem nasazení chaos rozšíření může být změna chování
skeneru. Ten může nabýt dojmu, že překročil firewallem stanovené limity (například na počet
spojení) a ve snaze skrýt se může zvolnit tempo skenování.
# ukazka pouziti modulu chaos
# pri spatne navazanem spojeni je nekdy nasazen delude a nekdy ne
iptables -A INPUT -i eth0 -p tcp \
-m state --state INVALID,NEW \
-j CHAOS --delude
iptables -A INPUT -i eth0 -p tcp \
-m state --state INVALID,NEW \
-j DROP
Zajímavá je i ilustrace chování modulu chaos zapsaná za pomoci rozšíření statistic, které
umožňuje práci s náhodným číslem:
# simulace chovani modulu chaos
# nahodne je spojeni bud zamitnuto nebo zpracovano modulem delude
iptables -N chaos
iptables -A chaos -m statistic --mode random --probability 0.01 \
-j REJECT --reject-with icmp-host-unreachable
iptables -A chaos -p tcp -m statistic --mode random --probability 0.0101 \
-j DELUDE
iptables -A chaos -j DROP
2.5.14 Reakce na detekovaný útok
Modul recent pracuje se seznamem IP adres, do kterého lze přidávat záznamy, odebírat je,
aktualizovat u nich časové razítko a ověřovat jejich existenci.
Pokud například v nějakém pravidle vyhodnotíme chování protistrany jako nežádoucí,
můžeme si ji zařadit na seznam, a poté zahazovat všechny její pakety. Případně jí udělit „trestné
minuty”, tedy na určitou dobu přerušit komunikaci.
Příklad z domovských stránek projektu:
# ukazka zarazeni utocnikovi IP na blacklist
# zde na vnejsi rozhrani dorazily pakety urcené pro loopback,
#
za toto nezadouci chovani je zdrojova adresa
#
zarazena na seznam (-m recent --set) a nasledne spojeni zahozeno
iptables -A FORWARD -i eth0 -d 127.0.0.0/8 -m recent --set -j DROP
#soucasne existuje pravidlo, ktere overi zdrojovou adresu paketu na seznamu
#
a pokud ma zaznam z poslední minuty, jsou jeho pakety zahozeny
iptables -A FORWARD -m recent --rcheck --seconds 60 -j DROP
Sankce lze dokonce zpřísnit. Záměnnou --rcheck za --update v posledním pravidle
zajistíme, že jakýkoliv provoz od potrestané protistrany způsobí prodloužení doby trestu. Trest
tedy již nebude udělen přesně na jednu minutu, ale protistrana po přidání do seznamu musí držet
nepřetržitě „minutu ticha“, při které nesmí posílat vůbec žádné pakety. Jakýkoliv příchozí paket
před vypršením trestu bude znamenat vynulování odpočtu trestného času.
3 Závěr
Přestože uvedené ukázky zdaleka nepokrývají veškeré možnosti nasazení frameworku
Netfilter, jeho nástrojů a rozšíření, z popisu lze odvodit univerzálnost frameworku. Ten svým
zabudováním do samotného jádra operačního systému a rozkročením skrze linkovou, síťovou
a transportní vrstvu ISO/OSI poskytuje prakticky neomezené možnosti pro manipulaci a filtraci
síťového provozu.
Slabinou se jeví dostupné nástroje zpřístupňující běžně požadované služby uživatelům.
Nástroje poskytované samotným frameworkem se funkcemi částečně překrývají, což vede
k zesložitění správy pravidel.
4 Literatura
1 Man page of IPTABLES,
http://ipset.netfilter.org/iptables.man.html
2 Man page of Xtables-addons,
http://www.digipedia.pl/man/doc/view/xtables-addons.8/
3 Netfilter.org,
http://www.netfilter.org
4: HATCH, Brian; LEE, James; KURTZ, George. Linux hackerské útoky : bezpečnost Linuxu - tajemství a řešení.
Praha : Softpress, 2002. 576 s. ISBN 8086497178.
5 Some fun with Linux Netfilter Hooks, 2005,
http://whatisthekernel.blogspot.com/2005/01/some-fun-with-linux-netfilter-hooks.html
6 ENGELHARDT, Jan. An Introduction to Xtables-addons, 2008,
http://jengelh.medozas.de/documents/IntroXta.pdf
7 O'REILLY, ; VESELSKÝ, Jiří. Bezpečnost v Unixu a Internetu v praxi. Vyd. 1. Praha : Computer Press, 1998.
948 s. ISBN 8072260820.
8 SHAH, Steve. Administrace systému Linux : jak porozumět svému počítači : podrobný průvodce začínajícího
administrátora. 1. vyd. Praha : Grada, 2002. 533 s. ISBN 8071695866.
9 LECHNYR, David. Linux Gazette, 2002, Network Security with /proc/sys/net/ipv4,
http://linuxgazette.net/issue77/lechnyr.html
10 ebtables, http://ebtables.sourceforge.net
11 DOČEKAL, Michal. 2010, QCM,
http://linuxexpres.cz/praxe/sprava-linuxoveho-serveru-linuxovy-firewall-zaklady-iptables-3
12 Official ipp2p homepage,
http://www.ipp2p.org/
13 SYN cookies, Wikipedia,
http://cs.wikipedia.org/wiki/SYN_cookies
14 ENGELHARDT, Jan. Detecting and deceiving network scans, 2008,
http://jengelh.medozas.de/documents/Chaostables.pdf
5 Přílohy
5.1 Základní pojmy
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
API - rozhraní pro programování aplikací
backdoor - aplikace sloužící k nelegálnímu vstupu do systému
Connection Tracking - sledování spojení, schopnost stavového firewallu sledovat spojení
jako celek a ne jen po jednotlivých paketech
DMZ - demilitarizovaná zóna, podsíť v LAN určená pro poskytování služeb z vnější sítě
DSCP - Differentiated Services Code Point - náhrada TOS, klasifikace do tříd, využitelné
zejména pro QoS
ECN - Explicit Congestion Notification - slouží k notifikaci o zahlcení sítě bez nutnosti
zahazovat pakety. Musí ho podporovat obě strany.
ISO/OSI - síťový referenční model
NAT - Network Address Translation - Překlad síťových adres
P2P - architektura sítě, kde spolu komunikují rovnocenné uzly, všechny plní funkce
klient i serveru
QoS - Quality of Service - řízení datových toků tak, aby při zahlcení sítě jedním
účastníkem nevedlo ke snížení kvality síťových služeb ostatním
Security through obscurity (bezpečnost skrze utajení) - bezpečnostní přístup založený
na poskytování co nejmenšího množství o vnitřní implementace potenciálním útočníkům.
Vychází z předpokladu, že co není známo, je hůře napadnutelné. Přístup je alternativou
i doplňkem opačného Secure by design (bezpečnost díky návrhu).
sniffer - aplikace určená k odposlechu komunikace
three-way handshake - trojcestné navázání spojení v TCP (SYN, SYN-ACK, ACK)
TOS - type of service - v hlavičce IP paketu zakódovaná informace o službě, která
komunikuje (telnet, ftp data)
traffic-shaping - řízení rychlosti přenosu dat, obvykle slouží k dělení přenosové kapacity
mezi více uživatelů
TTL - Time to live - kolik routerů může paket projít, než bude zničen
unix time - čas počítaný v sekundách uplynutých od 1.1.1970
user space - procesy a paměť oddělené od jádra operačního systému

Podobné dokumenty

IG.kolo AJAX PIVODAM

IG.kolo AJAX PIVODAM vhazovani. Jeste v teze minute byl v obrovske sanci Zdena, ale jeho dorazka mirila nad branu hostu. V 16.minute zabrnkal na nase nervy Hroch s Dozou, kteri se vzadu nedomluvili a po teto minele mel...

Více

stavíme si vlastní cloud pro vývoj a testování

stavíme si vlastní cloud pro vývoj a testování Přes libvirt - vyžaduje placennou verzi kvůli API

Více

Návod k použití digitální telefonní ústředny M6501/02/04

Návod k použití digitální telefonní ústředny M6501/02/04 V dalším textu budeme uvádět postupy jak v názorné obrázkové formě, tak formou symbolů. Důležité je vědět, že význam tlačítka je dán nápisem na displeji nad ním a nikoli jeho umístěním. Je proto mo...

Více

„S TURem tu i zítra budem“: evaluace programu

„S TURem tu i zítra budem“: evaluace programu Například program Strážci Země (Earthkeepers)2 uplatňuje širokou škálu motivačních prostředků. Děti jsou nejprve „zaháčkovány“ dopisem, ve kterém je tajemný E.M. zve na návštěvu svého střediska. Ce...

Více

Počítačové sítě a Linux

Počítačové sítě a Linux Od routeru budeme vyžadovat následující činnosti: - ze stroje adminClient je povolen SSH přístup na router - z rozhraní eth1 jsou všechny požadavky na služby: HTTP, FTP a SSH přeposílány na intraSe...

Více

Novépřekvapujícízpůsoby,jakuspokojitvašepotřeby–od

Novépřekvapujícízpůsoby,jakuspokojitvašepotřeby–od server/internetový fax; rozhraní pro síťové funkcí: skenování po síti a do e-mailu, účtování; kancelářský finišer síťový server/internetový fax; rozhraní pro síťové účtování; kancelářský finišer

Více

Téma 11: Firewall v CentOS

Téma 11: Firewall v CentOS Firewall v Linuxu je tvořen projektem Netfilter, který pracuje na úrovni jádra a umožňuje filtrovat pakety na základě mnoha kritérií. Netfilter není pouze firewall, je to především paketový filtr, ...

Více

Aastra 7147a uživatelský návod

Aastra 7147a uživatelský návod Pomocí osobních čísel a funkcí profilů můžete být k zastižení na vašem obvyklém pracovním čísle, i když jste mimo kancelář. Podle situace lze nastavit 1–5 vyhledávacích profilů (v kanceláři, na ces...

Více