DiablovoDoupě LITE - texty a odkazy

Jak rozchodit hru po TCP/IP

pro verzi 1.10+

Autor: Matýsek

Převzato z fora DiablovoDoupě s laskavým svolením autora.

Ani nevím proč toto píši, ale důvodem bude „přelitá voda“ nad pomyslným kbelíkem výdrže při čtení „kdo založí, já nemohu, máš veřejnou ip atd.“.

Hraní Diabla po TCP je bežný datový přenos za pomoci paketů na určitém portu. Konkrétně Diablo využívá pro komunikaci mezi klientem (připojovatel) a „serverem“ (zakládajícím) port 4000. Při bezdrátovém připojení používá poskytovatel tzv. router (Vaše výchozí brána při připojení k internetu), který nese onu IP a na kterém je spuštěn firewall a také NAT. Proč tam ten Firewall vlastně je ?

Dnešní firewally totiž dokáží plnit i celou řadu dalších funkcí, a jejich koncepci je proto vhodné volit i s ohledem na to, které z těchto "dalších" funkcí mají být využívány a v jaké míře. Jde zejména o tyto funkce:

regulace přístupu vlastních uživatelů (uživatelů chráněné privátní sítě) do veřejného Internetu. Provozovatel firemní sítě může např. chtít zakázat svým zaměstnancům přístup k některým serverům (např. erotickým), nebo naopak povolit přístup jen k některým konkrétně určeným serverům, či tyto aktivity alespoň určitým způsobem regulovat (nebo i jen evidovat, tak aby mohl následně vyhodnotit chování uživatelů). Stejně tak může chtít regulovat využívání určitých služeb (např. ICQ apod.), či může chtít vázat příslušná omezení na konkrétní časové intervaly (například na stanovenou pracovní dobu) apod.

antivirová ochrana - provozovatel připojené sítě může požadovat, aby firewall chránil tuto síť před nakažením počítačovými viry, což se může týkat jak přicházející elektronické pošty, tak například i pošty odcházející (aby nedošlo k zavirování externích uzlů), i dalšího druhu provozu (například přenosu textových souborů s makroviry)

optimalizace připojení - některé druhy firewallů mohou napomáhat efektivnějšímu využití přípojky dané sítě k vnějším sítím, typicky k Internetu. Jde o to, že v rámci firewallu může fungovat tzv. cache server, který v sobě uchovává některé objekty často požadované uživateli chráněné privátní sítě (nejčastěji: WWW stránky). Z vnějšího prostředí je pak sám stahuje (a tím zatěžuje přípojku) jen při prvním požadavku na ně, zatímco při dalších požadavcích na stejný objekt poskytne jeho kopii, kterou si uchoval. Díky tomu pak uživatelé připojené sítě mohou vystačit s pomalejší a tudíž lacinější přípojkou (k Internetu), než jakou by ke stejnému způsobu práce potřebovali bez právě popsané funkce firewallu.

řešení problému s IP adresami - jedním z nepříjemných problémů dnešního Internetu je nedostatek číselných adres (IP adres). Každý uzel, který má být připojen k Internetu, musí mít přidělenu takovouto adresu, která je navíc unikátní (stejnou adresu nesmí mít žádný jiný počítač). Dnes jsou tyto adresy navíc závislé i na způsobu, jakým je připojení realizováno (jsou závislé na poskytovateli připojení). Se získáním potřebného počtu IP adres však mohou být v praxi spojeny určité problémy. Při použití firewallu (většiny druhů firewallů) však popsané pravidlo přestává platit - za firewallem mohou být použity takové IP adresy, které nejsou unikátní a ani nejsou závislé na konkrétním providerovi, který připojení zajišťuje.

veřejné zpřístupnění zdrojů - ačkoli se provozovatelé připojených sítí především snaží chránit své zdroje (včetně nejrůznějších informací) před neoprávněným přístupem zvenčí, přesto u některých konkrétních zdrojů (informací) mají zájem na jejich zpřístupnění i pro uživatele z vnějších sítí. Jde například o prezentaci firmy, její obchodní nabídky atd. - obecně o cokoli, co si provozovatel privátní sítě sám určí za veřejné. V rámci firewallu pak bývá takovéto zveřejnění realizováno - například formou WWW serveru či FTP serveru, který je přístupný jak "zevnitř" (z chráněné sítě), tak i "z vně".

vzdálený přístup oprávněných uživatelů - provozovatelé firemních sítí (intranetů) velmi často vyžadují, aby uživatelé měli přístup ke zdrojům a službám těchto chráněných sítí i v případě, kdy se nachází mimo dosah této sítě (jsou například v terénu, u zákazníka apod.). V takovémto případě jsou oprávnění uživatelé v pozici vzdálených uživatelů, a součástí řešení firewallu bývá i umožnění jejich vzdáleného přístupu.

zabezpečená komunikace - veřejný Internet představuje nezabezpečený přenosový kanál, v tom smyslu že data která jsou přes něj přenášena nejsou žádným způsobem šifrována či jinak zabezpečena proti neoprávněnému "odposlechu". Potřebné zabezpečení je ale možné realizovat na vyšších úrovních (na úrovni transportní či aplikační vrstvy), a fakticky tak data šifrovat (kódovat) ještě před tím, než jsou předána k přenosu do veřejného Internetu. Takovéto řešení ale vyžaduje, aby "na druhé straně" byl někdo, kdo zakódovaná data vrací zpět do jejich původní podoby. V praxi mohou vše zajišťovat koncové uzly, které spolu komunikují. Stejně tak ale může potřebné šifrování (kódování) za účelem zabezpečení přenášených dat realizovat dvojice firewallů připojených k Internetu, která mezi sebou vytváří zabezpečený tunel. Díky němu pak mohou být propojeny například dvě chráněné privátní sítě skrze veřejný Internet, bez toho že by si jejich vnitřní uzly musely uvědomovat existenci zabezpečujících mechanismů a jakkoli se jí přizpůsobovat (bezpečný tunel mezi firewally je pro ně koncové uzly neviditelný) . Pomocí takovýchto tunelů mezi jednotlivými firewally lze dokonce realizovat celé privátní sítě (VPN, Virtual Private Network) vedoucí skrze veřejný Internet. Sdílení přístupu k Internetu - především u velmi malých sítí, tvořených jen několika málo počítači, je jedním z požadavků na jejich fungování to, aby vůbec umožňovaly přístup k Internetu všem uzlům připojené sítě. V zásadě jde o nahrazení funkce klasického směrovače, který je pro tuto roli jinak nezbytný.

Pokud jde o primární funkci firewallů, tedy o ochranu před neoprávněným přístupem zvenčí, je základní princip jejich fungování odvozen od principu který byl dlouhá století používán k ochraně středověkých hradů a pevností: kolem nich se zřídil vodní příkop, tak aby jej nemohl nikdo překonat, a do samotného hradu se vytvořil jediný vstup skrz hlavní bránu (která byla spojena s okolním světem pomocí padacího mostu přes vodní příkop). Kdokoli pak chtěl do hradu vstoupit (či z něj vyjít), měl jen jedinou možnou cestu - musel projít branou, ve které stál hlídač a každého kontroloval (resp. posuzoval jeho oprávněnost ke vstupu, resp. k výstupu). Dnešní firewally fungují obdobně: "stojí" někde na rozhraní mezi připojovanou sítí a veřejným Internetem, a veškerý přenos dat mezi vnějším světem a chráněnou privátní sítí "svádí" do jednoho bodu kterým všechna přenášená data prochází (analogie brány s padacím mostem). V tomto bodě pak kontrolují oprávněnost přenosu dat, resp. rozhodují o tom, zda jej nechají pokračovat dál či jej zastaví (analogie hlídače který kontroluje každého kdo prochází bránu).

Firewally fungující na úrovni síťové a transportní vrstvy se obvykle označují jako paketové filtry. Důvodem je skutečnost, že na úrovni vrstvy síťové jsou data přenášena po blocích označovaných jako pakety (packets), a firewall pracující na této úrovni zkoumá právě tyto pakety. Rozhoduje se zejména podle toho, co obsahují hlavičky paketů - tedy v sítích na bázi protokolů TCP/IP zkoumá tzv. IP adresy odesilatele a příjemce, a podle nich se rozhoduje zda je propustí dál, směrem k jejich příjemci, nebo zda je nepropustí a zahodí (tj. "odfiltruje", odsud také označení "paketový filtr"). Již na základě takovéhoto zkoumání IP adres (obecně: zkoumání adres síťové vrstvy) dokáže paketový filtr povolit či zakázat veškerý tok dat od určitého vnějšího uzlu (na základě adresy odesilatele) či k některému uzlu v připojené síti (na základě adresy příjemce). Analogicky to samozřejmě platí i pro opačný směr přenosu.

Na paketové filtry však mohou být kladeny i podstatně "jemnější" požadavky než jen pouhé omezení přístup od konkrétních uzlů, resp. ke konkrétním uzlům. Pokud je od nich požadováno aby se určitým selektivním způsobem chovaly k různým druhům služeb - například propouštěly elektronickou poštu k uzlu který v chráněné síti plní roli poštovního serveru (a naopak k němu nepropouštěly žádný jiný druh provozu), pak tyto filtry musí brát v úvahu i údaje o přenášených datech odpovídající transportní vrstvě ISO/OSI. Jde konkrétně o tzv. čísla portů, podle kterých jsou identifikovány konkrétní entity v rámci odesílajících či přijímajících uzlů, a s nimi i druh provozu resp. přenášených dat, o jaké se jedná (například datové pakety, zajišťující přenos elektronické pošty, jsou zasílány na port č. 25 na cílovém uzlu, kde je přijímá programová entita (proces, resp. démon) realizující funkci poštovního serveru).

Schopnosti firewallů charakteru paketových filtrů jsou principiálně omezeny tím, co je možné vydedukovat ze síťových IP adres a čísel portů. Takovéto firewally nemají schopnost analyzovat přenášená data tak detailně, aby mohly vyhodnocovat data odpovídající aplikační vrstvě - nerozumí například formátu přenášených zpráv, a tudíž ani jejich obsahu či použitým poštovním adresám, i když podle čísla portu poznají že jde o elektronickou poštu. Podobně je tomu s přenášenými soubory, WWW stránkami apod.

Kvůli tomuto handicapu nedokáží paketové firewally z principu rozpoznat některé možné útoky, "rozpoznatelné" až na aplikační úrovni podrobnou analýzou vycházející ze znalosti příslušné služby (tudíž tyto firewally nedokáží implementovat některé možné požadavky na zabezpečení připojené sítě). Proto vedle paketových filtrů existuje další druh firewallů, označovaných jako tzv. aplikační brány (někdy též: aplikačních firewallů). Jak již jejich název napovídá, pracují tyto firewally na úrovni aplikační vrstvy, neboli své rozhodování realizují na základě informací dostupných na úrovni aplikační vrstvy.

Princip aplikační brány je velmi jednoduchý a opět má analogii s hlídačem u brány středověkého hradu, který kontroluje veškerý provoz - tentokráte je ale hlídačů více a každý z nich je podrobněji "vzdělán v určitém oboru", resp. specializován na určitou službu.

Například veškerá elektronická pošta procházející mezi vnějším světem a chráněnou privátní sítí musí procházet přes "hlídače" (fakticky: aplikační bránu) obeznámeného s formátem zpráv elektronické pošty i celkovou koncepcí a architekturou elektronické pošty. Takovýto hlídač (aplikační brána) pak dokáže poměrně detailně a odpovědně posoudit, zda má být konkrétní zpráva předána zpráva dál či nikoli, případně i odhalit případ, kdy je nějaký útok maskován jako přenos elektronické pošty apod.

Obecně tedy firewally na principu aplikačních bran dokáží splnit podstatně přesnější a detailnější požadavky na ochranu připojené privátní sítě před nežádoucím přístupem zvenčí, resp. umožňují mnohem přesněji specifikovat a následně rozlišovat, co je nežádoucí přístup a co nikoli.

Aplikační brána, neboli firewall fungující na úrovni aplikační vrstvy (přesněji: rozhodující se podle údajů příslušných aplikační vrstvě), může mít opět dva poněkud odlišné způsoby fungování.

První z nich odpovídá principu paketového filtru a jedinou odlišností skutečně je to, že rozhodování se odehrává s využitím informací příslušných aplikační vrstvě. V praxi to znamená, že takovýto uzel se podobně jako paketový filtr navenek chová jako směrovač (zajišťuje směrování na úrovni síťové vrstvy), a pouze interně při svém rozhodování "zasahuje" až úroveň aplikační vrstvy.

V praxi bývají takovéto druhy firewallů označovány také jako tzv. obsahové filtry (content filters). Představme si někoho, kdo už úspěšně prošel přes hlídače na vstupní bráně. Jakmile se již nachází uvnitř, může přímo a bez dalších kontrol komunikovat se všemi ostatními, kteří již jsou také uvnitř hradu, využívat všechny zdejší zdroje atd. Je ale "fyzická přítomnost" uvnitř hradu opravdu tak nutná a relevantní? Co kdyby z hradu vedla tajná podzemní chodba někam jinam, do nějaké jiné lokality vhodně oddělené od okolního světa? Nedala by se pak "chráněná zóna" tvořená vnitřkem hradu protáhnout až do oné vzdálené lokality? Samozřejmě za podmínky že do tajné chodby se nikdo zvenčí nedostane? Co takhle představa několika hradů, jejichž hlídači rozhodují podle stejných pravidel a kritérií? Pokud by byly tyto hrady propojeny dostatečně bezpečnými chodbami, které nepustí dovnitř nikoho nepovolaného, mohl by celek tvořit jednu soustavu, sice distribuovanou do více lokalit ale homogenní co do svého zabezpečení před vnějším světem. Uvnitř takovéto soustavy pak bude možné komunikovat již bez dalších omezení a kontrol, odděleně od vnějšího světa.

Přesně toto je princip tzv. virtuálních privátních sítí (sítí VPN). Mohou například propojovat pobočky firmy a vytvářet věrnou iluzi skutečně privátní sítě (tajných podzemních chodeb, do kterých se nikdo zvenčí nedostane). Řešeny mohou být na úrovni síťové vrstvy (typicky na úrovni protokolu IP), a přenášet jakýkoli druh provozu nad protokolem IP. Nebo mohou fungovat na aplikační úrovni a být uzpůsobeny jen jednomu druhu provozu - například jen vzdálenému přístupu k aplikacím, provozovaným na centrálním firemním serveru. Různorodá může být i jejich topologie a možnost komunikace v rámci VPN - například jen stylem "do hvězdy", kde každý vzdálený prvek komunikuje pouze s centrem. Různorodé může být i celkové určení - například pro zajištění bezpečného vzdáleného přístupu oprávněných uživatelů k centrálním aplikacím stačí zmiňovaná komunikace "do hvězdy". Naproti tomu pro přímé propojení poboček, nikoli pouze přes centrum, by komunikace "jen do hvězdy" již nestačila, a musí být nahrazena komunikací ve stylu "každý s každým".

Lišit se může i "zakončení" sítí VPN na jednotlivých vzdálených bodech. Typické řešení je takové, že zde musí být provozován vhodný VPN klient, zajišťující vše potřebné (zejména místního hlídače, v analogii se středověkým hradem). Dnes však již existují i řešení bez samostatných VPN klientů (tzv. clientless VPN), díky tomu že jejich roli přebírají se svými schopnostmi standardní aplikace.

To je asi vše pokud jde o princip pochopení, proč „to nejde“.

Víte, že máte firewall a také víte na kterém portu ono Diablo funguje, což Vám kromě jazyka bohatě vystačí.

Sdělte správci Vašeho Routeru/Firewallu požadavek na přesměrování všech příchozích paketů na portu 4000 TCP (TCP/IP je společné označení pro komunikační protokoly používané v Internetu (např. IP, ICMP, TCP, UDP atd.). Všechny tyto protokoly jsou založené na paketech (tzv. paketově orientované). spojení na IP adresu Vašeho počítače a uvidíte jak Vám ona hra krásně půjde zakládat.