Jak správně nastavit firewall a systémové služby ve Windows XP

Minulá část článku byla věnována vyčištění počítače od virů, adware, spyware, instalaci Service Packu 2 a několika bezpečnostním doporučením. Tato část je věnována popisu systémových služeb Windows, fungování firewallu a jeho nastavení. Jak uvidíme dále, tyto věci úzce souvisejí. Článek půjde poměrně do technických detailů fungování Windows a internetu (sítí obecně).
Jak správně nastavit firewall a systémové služby ve Windows XP

Trocha teorie

Související odkazy

Slovník
ActiveX
DNS
firewall
ICMP
paket
port
proxy server
TCP
UDP
virus
worm

Databáze znalostí
Firewall hlásí blokaci
Kvalitní osobní firewall zdarma

Aby bylo možné vysvětlit jak nastavit firewall, je třeba znát fungování provozu na internetu. Všechna data posílaná přes internet jsou rozdělena na balíčky, tzv. pakety (angl. packet). Kdybychom udělali analogii s papírovým dokumentem, můžete si to představit jako rozstříhání dokumentu na očíslované řádky, které příjemce pak slepí a dostane původní dokument. Např. stránka, kterou zrovna prohlížíte, přešla přes internet rozdělena na jednotlivé pakety a až operační systém zařídil, aby se ze všech paketů poskládala a pak ji prohlížeč zobrazil.

Dělá se to tak proto, že občas se nějaký paket může ztratit po cestě, a je jednodušší poslat znovu jeden paket než celou stránku. Pro představu je možné stáhnout si 13minutové video (trochu přikrášlená, ale celkem povedená animace) znázorňující, jak pakety putují internetem (bohužel není v češtině, jenom v angličtině, němčině a ještě několika jazycích).

IP protokoly

Provoz na internetu je řízen jistými protokoly. Protokol je něco jako dohoda, jak mají pakety vypadat, jak se mají posílat a jak má na ně počítač reagovat. Každý počítač v internetu má svou jednoznačnou číselnou identifikaci, tzv. IP adresu (tohle je součást IP protokolu). Překlad jmen (např. www.zive.cz) na IP adresu zabezpečuje tzv. DNS server. Tento překlad jmen na adresy za vás provádí prohlížeč nebo jiný software, proto si toho většinou nevšimnete.

Uvnitř IP paketů jsou zabaleny TCP nebo UDP pakety. Tyhle dva protokoly (TCP a UDP) rozšiřují možnosti IP protokolu. Často se proto používá označení TCP/IP (označení UDP/IP se nějak nevžilo, píše se prostě UDP). TCP a UDP pakety ještě navíc obsahují tzv. port, což je číselné označení služby, kam se směrují.

Možných čísel portů je nad 65 000, jak pro TCP, tak i pro UDP. Např. TCP port 80 je http, používán většinou webových serverů, TCP port 25 je pro službu posílání mailů. Celou databázi čísel portů a k nim přiřazených služeb najdete na www.portsdb.org nebo http://ports.tantalo.net. V první databázi jsou služby popsány většinou zkratkami, takže když jim nerozumíte, zkuste Google. V druhé jsou někdy i přímo odkazy vedoucí k vysvětlení.

Jak to funguje

Když do prohlížeče napíšete www.zive.cz, nejprve (jak jsme již řekli) prohlížeč přeloží jméno na IP adresu a pošle TCP paket na port 80, směrován na tuhle IP adresu. Rozdíl mezi TCP a UDP protokolem spočívá v tom, že se při přenosu dat TCP protokolem sleduje, jestli se nějaký paket neztratil, při použití UDP nikoliv. Můžete se divit, proč vůbec používat UDP protokol. TCP má vyšší režii, protože musí ověřovat, zda pakety byly doručeny, u UDP tahle starost odpadá. Závisí totiž na typu aplikace a designérovi, který protokol použije.

Spolu s IP protokolem se používá jeho doplněk – ICMP protokol. Ten nepřenáší data, nýbrž oznamuje informace o stavu spojení. Např. když prohlížeč zahlásí “Spojení odmítnuto” (neboli anglicky “Connection refused”), znamená to, že dostal jako odpověď ICMP paket “port unreachable”. Další příklad použití ICMP protokolu je příkaz ping (standardně v každém Windows). Když napíšete “ping www.zive.cz”, program ping pošle ICMP paket “echo request” a cílový počítač má odpovědět s ICMP paketem “echo reply” (jinak řečeno, řekněte druhému počítači ping a on má odpovědět pong). ICMP protokol je používán na diagnostiku sítě, příkaz ping může pomoci odhalit, zda cílový počítač “žije”.

Jestli tohle vidíte prvně, asi by bylo lepší uvést příklad – co se stane, když napíšete do prohlížeče www.zive.cz:

  • prohlížeč se zeptá DNS serveru na portu 53, jaká je IP adresa počítače nazvaného www.zive.cz
  • DNS server odpoví 194.213.53.220
  • prohlížeč vytvoří spojení vysláním TCP paketu “žádám o spojení” na adresu 194.213.53.220, port 80
  • server 194.213.53.220 (zive.cz) odpoví zpět “přijal jsem žádost, potvrď”
  • prohlížeč odpoví “ok”
  • pak si prohlížeč řekne o konkrétní stránku, kterou chcete vidět (tj. adresu z address baru)
  • dále web server posílá data stránky rozdělené na pakety, prohlížeč přijetí každého paketu potvrdí odesláním potvrzovacího paketu serveru, aby šlo zjistit, kdyby se nějaký paket ztratil a bylo jej třeba poslat znovu
  • prohlížeč pakety slepí zpátky dohromady a zobrazí stránku

Když je na nějakém portu připravena aplikace přijmout spojení a zpracovat požadavek, říkáme, že port je otevřen neboli aplikace naslouchá na portu pro příchozí spojení. Jinak je port zavřen. Na web serveru, například na portu 80, naslouchá aplikace vracející požadované stránky.

Vyzkoušejte si, jaká spojení jsou na počítači

Je na to několik nástrojů: netstat, standardní součást Windows. Použití vypadá následovně:

Otevřete si Start -> Příslušenství -> Příkazový řádek. Zadejte netstat –abn (pokud máte nainstalovaný Service Pack 2), případně netstat –an.

Jediný rozdíl je, že netstat z SP2 je vylepšen o zobrazování procesu, který se připojuje k internetu (to je to “b” navíc v příkazu). Rozdíl mezi procesem a programem spočívá v tom, že program je spustitelný soubor na disku (typicky s příponou exe) a proces je program v paměti, který je již spuštěn. Popis možných parametrů programu netstat získáte příkazem:

netstat –h

Výpis bude pravděpodobně celkem dlouhý, speciálně jestliže zároveň prohlížíte nějaké stránky na webu, takže se nelekejte. Příklad části výpisu (zkráceno):

Aktivní připojení

Proto  Místní adresa          Cizí adresa            Stav            PID
TCP    0.0.0.0:135            0.0.0.0:0              NASLOUCHÁNÍ     968
c:\windows\system32\WS2_32.dll
C:\WINDOWS\system32\RPCRT4.dll
c:\windows\system32\rpcss.dll
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\system32\ADVAPI32.dll
[svchost.exe]

TCP    0.0.0.0:445            0.0.0.0:0              NASLOUCHÁNÍ     4
[Systém]

TCP    127.0.0.1:1031         0.0.0.0:0              NASLOUCHÁNÍ     2484
[alg.exe]

TCP    192.168.61.157:139     0.0.0.0:0              NASLOUCHÁNÍ     4
[Systém]

TCP    192.168.61.157:1619    194.213.53.220:80      NAVÁZÁNO        1688
[firefox.exe]

TCP    192.168.61.157:1399    205.188.5.239:5190     NAVÁZÁNO        1688
[sim.exe]

TCP    127.0.0.1:1028         127.0.0.1:1620         TIME_WAIT       0

UDP    0.0.0.0:4500           *:*                                    736
[lsass.exe]

Nyní si popíšeme, co tyhle informace znamenají. Všimněte si, že každá položka má nejprve protokol, pak je místní adresa (tj. odkud se připojujeme) a poté je vzdálená adresa (tj. kam se připojujeme), typ spojení, číslo procesu, řádek pod tím jméno (jména) procesu. Jednotlivé položky jsou odděleny prázdným řádkem. Určitě jste si všimli, že při lokální adrese je také uveden port. Když počítač vysílá požadavek, musí mu u sebe přiřadit i nějaký port, aby server věděl, kam mu jej poslat zpátky.

V uvedeném výpisu jsou dvě spojení označena NAVÁZÁNO: Mozilla Firefox (proces firefox.exe) se připojuje na 194.213.53.220, port 80, což je IP adresa www.zive.cz, webový port. Pak je tam proces sim.exe, což je ICQ klient (simple instant messenger), který se připojuje k ICQ serveru port 5190.

Dále si všimněte spojení ve stavu NASLOUCHÁNÍ. To jsou právě otevřené porty. Zdá se vám zvláštní, že máte nějaké otevřené porty, a nevíte o tom, že byste měli spuštěný nějaký server? Všimněte si položky naslouchající na portech 135, 139 a 445. To je právě služba sdílení souborů a tiskáren v microsoftích sítích. Z tohoto pohledu je váš počítač také serverem pro službu sdílení.

Místní adresa 0.0.0.0 znamená, že váš počítač přijímá spojení zvenčí na těchto portech. Vzdálená adresa bude u naslouchajících portů vždy 0.0.0.0. Další naslouchající port je 1031 u procesu alg.exe. U něho je jako místní adresa uvedena 127.0.0.1. Ta má speciální význam – nazývá se loopback neboli localhost – a znamená, že na ni se může připojit jenom váš počítač a nikdo jiný, taková služba je nepřístupná komukoli z vnější sítě, a tedy nepředstavuje riziko napadení zvenčí.

Názvy jako svchost.exe a alg.exe nedávají příliš mnoho informací, ale jsou to důležité systémové procesy, které si později popíšeme. Jestli vás zajímá nějaký konkrétní název procesu, můžete si jeho popis vyhledat na http://www.liutilities.com/products/wintaskspro/processlibrary/. Jsou tam uvedeny všechny systémové procesy s popisy.

Zvláštním stavem ve výpisu je spojení ve stavu TIME_WAIT. To znamená, že dané spojení již neexistuje a čeká se na jeho zavření, případně na zbloudilé a opožděné pakety. Pokud byste se podívali příkazem netstat na aktivní spojení za nějaký čas, tohle tam už nebude. Ještě však existuje několik stavů, které ve výpisu nevidíme. Z nich vzpomenu například SYN_SENT. Tenhle stav znamená, že požadavek byl již vyslán, ale zatím nedošla odpověď od serveru. Další stavy a jejich popis můžete najít třeba tady http://www.uwsg.iu.edu/usail/man/solaris/netstat.1.html.

Poslední proces na výpisu je lsass.exe. Poslouchá na UDP portu 4500. Při UDP nikdy neuvidíte stav, protože protokol UDP je bezstavový. Jak jsme si řekli, nekontroluje ztracené pakety. Proto není třeba při UDP navazování spojení a potvrzování (jak jsme to viděli v příkladu, kdy prohlížeč navazuje TCP spojení s webovým serverem). Všechny uvedené UDP jsou naslouchající porty. Jen poznamenám, že lsass.exe je také důležitý systémový proces a chyba v něm v minulosti způsobila šíření viru/wormu Sasser (název odvozen od lsass, viz informace o viru).

Jestliže nevíte, co nějaký port znamená, můžete se podívat do zmíněné databáze portů. Ale pozor: dívejte se vždy na číslo portu uvedené na straně přijímající připojení, tj. u Firefoxu uživatel spojení vyvolá, ale přijímá ho web server na portu 80 (toto číslo je důležité). U procesu svchost.exe je důležité číslo portu na místní straně, tj. 135, protože v tomto případě aplikace svchost.exe přijímá spojení na vašem počítači.

Přeložení názvu (např. www.zive.cz) na IP adresu, nebo naopak IP adresu na název, docílíte příkazem nslookup z příkazové řádky:

C:\>nslookup www.zive.cz

Odpověď:

Server: ns1.comp.cz
Address: 195.113.xx.xx

Neautorizovan odpoved:
Nazev: www.zive.cz
Address: 194.213.53.220

Opačně:

C:\>nslookup 194.213.53.220

Server: ns1.comp.cz
Address: 195.113.xx.xx

Nazev: www4.cpress.cz
Address: 194.213.53.220

Jistě vidíte, že zpětně se nám adresa přeložila na jiné jméno. To ale nevadí, protože více jmen se může překládat na tutéž IP adresu (např. www4.cpress.cz, www.zive.cz a zive.cz se přeloží na stejnou adresu), i jedno jméno se může přeložit na více adres, zejména v případě velkých firem jako google.com.

Trochu více nadhledu

Doporučuji ještě dva programy (jsou ke stažení zdarma): Vision, Fport. Stáhnout si je můžete zde: http://foundstone.com/resources/freetools.htm. Jsou to diagnostické programy, Fport ukazuje otevřené porty i s kompletní cestou k souboru (na rozdíl od netstat), ale neukazuje, jestli je port otevřen jen pro localhost (místní počítač), nebo pro vnější síť. Spouští se z příkazové řádky -podobně jako netstat, jenom bez parametrů.

Klepněte pro větší obrázek

Vision je trochu lepší, navíc má grafické rozhraní a dokáže to, co Fport, ale i o mnoho víc. Bohužel nevím, zda je to způsobeno SP2 nebo mým firewallem, ale Vision nezobrazuje právě naslouchající porty (tuto chybu nahradí právě netstat nebo Fport). Má ale mnoho dalších výhod: podrobnější přehled o aplikacích, procesech a systémových službách nežli vestavěný správce úloh (task manager). Ukazuje kompletní cestu k exe souboru procesu a ještě číslo procesu (PID), které jsme viděli při výpisu netstatu.

Systémové služby

Windows poskytuje mnoho systémových služeb, některé jsou nutné ke správnému chodu systému, jiné jsou volitelné. Jejich nastavení se dá najít přes Ovládací panely -> Nástroje pro správu -> Služby (screenshot services.png).

Klepněte pro větší obrázek

Nastavení služeb

Teď si prohlédněte některé služby, např. Klient DNS – klikněte pravým a zvolte vlastnosti. Všimněte si položky “Cesta ke spustitelnému souboru”. Vidíte tam náš starý známý svchost.exe. Když si námatkově prohlédnete další služby, zjistíte, že svchost.exe jich poskytuje mnoho. To bude třeba vědět při nastavování firewallu.

Některé služby doporučuji rovnou zakázat, konkrétně: Hostitel zařízení UpnP a Služba rozpoznávání pomocí protokolu SSDP.

Klepněte pro větší obrázek

Vlastnosti služby

Tyto dvě služby poskytují automatické rozpoznávání Universal Plug and Play zařízení na síti (to je něco jiného nežli Plug and Play). Více podrobností zde, většina počítačů je ale vůbec nepotřebuje. Navíc už byly terčem útoků (viz článek), ale momentálně jsou již zaplátované. Pro bezpečnost obecně platí: jestli nějakou službu nepoužíváte, je nejlepší ji vypnout, protože představuje bezpečnostní riziko.

Jak vidíte, těchto služeb je hodně. Jako dobrý zdroj rozhodnutí, které služby zapnout a které vypnout, poslouží tato stránka. Tam najdete několik konfigurací a ke každé přesně napsáno, kterou službu vypnout a kterou zapnout. Navíc stránka obsahuje popis každé služby - co dělá, na co se používá, kdy by se měla vypnout a kdy zapnout.

Firewall a jeho nastavení

Konečně jsme se dostali k nastavení firewallu. První a nejdůležitější věc je, že firewall zabudovaný do Windows XP od Service Pack 2 nestačí. Tenhle “firewall” je firewallem nanejvýš tak z půlky. Nebrání odchozím spojením a je možno jej obejít (viz náš článek 1, článek 2, ZDNet, Securiteam). Potřebujete skutečný firewall!

A co to vlastně firewall je? Dnes se nazývá firewallem mnoho věcí, takže v tom není tak úplně jasno. Základem firewallu je tzv. paketový filter, který rozhoduje, jaké pakety pustí z vnější sítě dovnitř, respektive ven, a to na základě určitých pravidel. Ta si musí vytvořit uživatel sám dle vlastní potřeby. Často se ale nyní dodávají různé bezpečnostní balíky, které navíc k firewallu obsahují možnost filtrování potenciálně nebezpečných součástí, jako např. ActiveX, vše závisí od výrobce a od produktu.

Abychom mohli začít výklad, bylo by dobré si nějaký firewall nainstalovat. Na výběr jsou opět “osobní firewally” (ke stažení zdarma) a komerční produkty. Typicky komerční produkty poskytují větší funkcionalitu, více možností, více dovedností. Protože rozličné produkty jsou tak různé, budu se snažit vysvětlit základní funkci firewallu – filtrování paketů, to mají společné.

Firewally dostupné zdarma

U firewallu jsou nejdůležitější pravidla. Některé firewally se dodávají již se sadou doporučených pravidel, vytvořených dodavatelem pro známé programy. Pak nabídnou uživateli automatickou konfiguraci, nebo ruční konfiguraci. Můžete se pokusit spolehnout na automatickou konfiguraci, nicméně bezpečnější (ačkoliv pracnější) je nastavit si pravidla ručně. Předpřipravená pravidla zjednodušují nastavení firewallu, ale nevím, jestli nejsou jen součástí placených verzí.

Dva druhy pravidel

Existují dva druhy pravidel: specifická (pro každý program zvlášť) a obecná (platná pro všechny programy). Každý příchozí/odchozí paket je nejprve testován na obecná pravidla (jestli je povolen, nebo zakázán), až pak na specifická pravidla pro program, který ho poslal.

Pravidla vypadají následovně (příklad screenshot z Kerio – kerio-rules.gif) a každé pravidlo je složeno z těchto podmínek:

  • typ: obecný nebo konkrétní program
  • směr připojení: z počítače ven nebo z vnější sítě dovnitř
  • cílový/zdrojový port a protokol
  • adresa (adresy) vzdálených počítačů
  • akce (povolit, blokovat, sledovat)

Klepněte pro větší obrázek

Pravidla z Kerio Personal Firewallu

Příklad jednoho specifického pravidla pro Mozilla Firefox (pro každý program jich může být víc):

  • specificky pro program firefox.exe
  • směr: ven
  • protokol: TCP
  • cílový port: 21, 80, 443, 8000, 8080
  • adresa vzdálených počítačů: kamkoliv
  • akce: povolit

Toto pravidlo říká: jestli Mozilla Firefox pošle ven paket na jeden z portů 21 (ftp), 80 (http), 443 (šifrované https), 8000, 8080 (to jsou proxy porty, ale někdy na nich běží webové servery) a na libovolný počítač, tak to povol.

Příklad jednoho obecného pravidla:

  • typ: obecné
  • směr: dovnitř
  • protokol: TCP a UDP
  • cílový port: 135 - 139, 445
  • adresa vzdálených počítačů: odkudkoliv
  • akce: blokovat

Tohle pravidlo blokuje připojení na TCP a UDP porty 135 až 139, 445, což je právě sdílení ve Windows sítích. Jestli jste připojeni přímo k internetu a s nikým nepotřebujete nic sdílet (tj. s lidmi v podnikové síti), je lepší sdílení zakázat. Nezapomeňte, že máte databázi portů, když nevíte, co jednotlivé porty znamenají.

Strategie vytváření pravidel

Jsou dvě možnosti jak vytvářet pravidla. Jedna z nich je: na začátku si nějaká napsat, ale to je spíš pro zkušenější uživatele. Druhá možnost říká, nechte vše tak a firewall vás bude vyzývat, co máte dělat v případě odchozího/příchozího spojení. Na začátku to bude poměrně často, tohle je fáze učení, kdy mu “vysvětlíte”, jak má zacházet s různými spojeními. Je to celkem náročná část, hlavně když užíváte firewall prvně. Pak už se bude řídit naučenými pravidly.

Pravidla si můžete vytvářet více striktní, nebo volnější. Například pro prohlížeč internetu můžete povolit spojení kamkoliv (to je dost volné pravidlo), nebo zavést striktnější pravidlo – povolit odchozí pakety jenom na porty 21, 80, 443, 8000, 8080. Na začátku, než si zvyknete, je lepší vytvářet volnější pravidla. Časem získáte lepší zkušenosti a poté si můžete pravidla přesněji upravit.

Logika zní: spustíte program, třeba prohlížeč. Firewall zařve, že se prohlížeč pokouší o spojení s internetem. Víte, že jste prohlížeč spustili sami, tedy je to oprávněné. Kdyby jste viděli nějaký podivný proces připojovat se kamsi sám od sebe, je to na pováženou. Pozor, uvidíte určite svchost.exe a alg.exe, i když jste je nikdy vědomě nespouštěli. To jsou zmiňované systémové procesy, které zaručují mnoho služeb. Když těmto procesům zakážete spojení, nepůjde vám z internetu zhola nic. Zase na druhé straně, neměli byste jim vše povolit. Opět nejlepší je podívat se do databáze portů - co se děje, kam se snaží připojit.

Některé další rady

Kromě svchost.exe a alg.exe je ještě spousta systémových procesů s podivnými, nic neříkajícími jmény. Jestli uvidíte výstrahu, že nějaký proces se zvláštním názvem se snaží o připojení, nejlépe uděláte, když se podíváte do již zmiňované Wintask process library co je to zač. Když proces toho jména ani tam nenajdete, ještě je tu Google.

Existuje však i jeden trik, který viry a malware používají na vyhnutí se firewallu: pokouší se spustit důvěryhodný program (typicky prohlížeč), aby něco stáhly/odeslaly. V mnohých firewallech najdete možnost nazvanou “Sledovat spuštění programů – varovat, když jeden program spouští jiný, a kontrolovat obě pravidla pro přístup k síti”, nebo podobně pojmenovanou položku. To tenhle problém vyřeší.

Některé firewally mají i tzv. administrátorský port. To je port, kde se dá ze vzdáleného počítače připojit a ovládat firewall u vás. Opět je to chráněno heslem - když to nepotřebujete, určitě to zakažte. Nastavení firewallu dá celkem práci, ale stojí to za to. Jediná nevýhoda je, že potřebujete poměrně dost zkušeností, ale ty časem přijdou.

Témata článku: Windows, Windows XP, Porta, Ping Pong, Podivný program, Ping, Proxy Server, Automatický překlad, Možné riziko, Adresa počítače, Systémový proces, Pingu, Port, Firewall, Důležitý soubor, Adresa, Vnější síť, Spojení, PID, Důležitá součást, Systémový program

Určitě si přečtěte

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

** Fluent Design je vzhled, do kterého postupně Microsoft převleče celý systém ** Staví na průhlednosti a velkých plochách ** Do Windows 10 se z části dostane už zítra při vydání podzimní aktualizace

16.  10.  2017 | Stanislav Janů | 146

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

** Po půl roce je tu další aktualizace Windows ** A opět přináší hlavně hromadu drobných kosmetických vylepšení ** Podívali jsme se na ty nejzajímavější

Včera | Jakub Čížek | 93


Aktuální číslo časopisu Computer

Nový seriál o programování elektroniky

Otestovali jsme 17 bezdrátových sluchátek

Jak na nákup vánočních dárků ze zahraničí

4 tankové tiskárny v přímém souboji