Pořádek ante portas

1. 5. 2006

Sdílet

Přehled nejdůležitějších čísel a funkcí portů (CD) Bez portů b...


Přehled nejdůležitějších čísel a funkcí portů (CD)


Bez portů by nebyla možná komunikace pomocí protokolů Transmission Control Protocol (TCP) a User Datagram Protocol (UDP), jež jsou na internetu běžné. Porty umožňují, aby si více aplikačních procesů současně vyměňovalo pomocí internetového spojení data.
nalosti číselných označení portů a aplikací, které tyto porty využívají, patří již k vyššímu počítačovému vzdělání. Většinou se jím pyšní programátoři a administrátoři větších sítí, ale alespoň základní povědomí o těchto věcech se může hodit i správcům malých kancelářských sítí či domácím uživatelům, a to především při ruční konfiguraci firewallu či routeru. Filtr paketů rozhoduje u každého datového paketu podle stanovených pravidel, zda bude předán dále nebo ne. Přitom čte mimo jiné informace z hlavičky, například jaký je odesílající a cílový port. Na základě těchto pravidel může firewall provádět správné filtrování služeb. Procesy služeb vždy používají určité porty. Například pro zablokování služby FTP vybírá firewall všechny pakety, které mají v hlavičce uveden port 21. Důležité také je, z kterého počítače bylo spojení vytvořeno zda to byl klient v LAN nebo externí počítač.
V tomto článku se podíváme, jak porty fungují a jaké skupiny portů existují. Sestavili jsme rovněž přehled nejdůležitějších pravidel firewallu pro firemní síť, který pravidelně doplňujeme. V tabulce uvedené na stránkách http://www.tecchannel. de/tecdaten/show.php3?article=901 navíc naleznete informace o těch "hodných" i "zlých" programech a o tom, které porty používají.

Co jsou čísla portů?

Čísla portů patří k základním prvkům použití protokolů TCP a UDP. Když se data dostanou k cílovému počítači, je nutné je ještě předat správnému aplikačnímu procesu. Při přepravě informací vrstvami sítě je zapotřebí mechanismus, který teprve zajistí předání správnému protokolu.
Skládání dat z více zdrojů do jednoho datového toku se nazývá multiplexování. Přicházející data ze sítě tedy musí demultiplexovat Internet Protocol (IP). Proto IP označuje protokoly pro přenos dat čísly protokolu. Protokoly pro přenos dat zase používají čísla portů k identifikaci aplikací.
Číslo protokolu IP se nachází v jednom bytu ve třetím slově hlavičky datagramu. Tato hodnota určuje předávání danému protokolu v transportní vrstvě, například "6" znamená TCP nebo "17" UDP. Protokol pro přenos dat musí po přijetí předat data správnému aplikačnímu procesu. Aplikační procesy jsou identifikovány pomocí čísla portu, jež je 16 bitů dlouhé a určuje port, jemuž jsou data po přijetí na cílovém počítači předána. V prvním slově každé hlavičky TCP a UDP je proto obsaženo číslo zdrojového portu i číslo cílového portu.
Pokud má být tedy některá aplikace nalezena pod určitým číslem portu, sdělí to TCP/IP protocol stack.

Sockety

Kombinace IP adresy a čísla portu se označuje jako socket. Umožňuje jednoznačně identifikovat jednotlivý síťový proces v rámci celého internetu. Notace vypadá takto: IP adresa:port, např. 62.96.227.70:80. Dva sockety definují spojení, jeden pro výchozí a druhý pro cílový počítač.
TCP a UDP mohou přidělit stejná čísla portu. Teprve kombinace protokolu a čísla portu je jednoznačná. Proto není číslo portu 53 TCP totožné s číslem portu 53 UDP.

Skupiny portů

Celkem je k dispozici 65 535 různých portů TCP a UDP. Aby bylo možné udržet si přehled a přiřadit určitým aplikacím pevná čísla, byly rozděleny do tří skupin:
Dobře známé porty: u tohoto typu jde o rezervovaná a standardizovaná čísla portů od 1 do 1 023.
To zjednodušuje vytváření spojení, protože odesilatel i příjemce již vědí, že je nutné data pro určitý proces poslat na určitý port. Například všechny telnetové servery používají port 23. Standardní porty umožňují klientům připojení k serverům, aniž by byla nutná jakákoli konfigurace. Správu těchto portů převzala Internet Assigned Numbers Authority (IANA, http://www. iana.org). Seznam aktuálních zadaných čísel portů naleznete zde na adrese http://www.iana.org/ assignments/port-numbers.
Do roku 1992 se standardní porty nacházely v oblasti mezi 1 a 255. Porty mezi 256 a 1 023 se používaly pro specifické služby Unixu.
Registrované porty: tyto porty v oblasti mezi 1 024 a 49 151 jsou rezervovány pro služby, které obvykle probíhají na určitých portech, například jako port 3 128, který proxy servery alternativně používají pro hypertext transport protocol (HTTP).
Dynamicky přidělované porty: porty označované jako efemerální jsou vždy přidělovány dynamicky. Nacházejí se v oblasti mezi 49 152 a 65 535. Každý klient může tyto porty používat, pokud je kombinace protokolu pro přenos dat, IP adresy a čísla portu jednoznačná. Pokud některý proces potřebuje port, vyžádá si jej od hosta.

Který port bude použit?

Jak jsme již zmínili, pro instalaci firewallu jsou nutné znalosti o portech. Je nutné stanovit, které porty mohou u spojení sloužit jako vstupní a výstupní. Ovšem často není známo, které porty aplikace používá. Nebo bychom chtěli zjistit, který port byl programu na klientovi náhodně dynamicky přidělen.
Abychom to zjistili, můžeme např. použít prostředek Windows Netstat. Tento nástroj má však jen malý rozsah funkcí. Kupříkladu neukazuje, jaké spojení používá která aplikace. My doporučujeme použít sharewarový program Essential NetTools (http://www.tamos.com/products/nettools/) od společnosti Tamos Software, který ukazuje nejen otevřené porty a spojení na systému, ale navíc poskytne i textový popis adres a portů a příslušnou aplikaci včetně kompletní cesty.

Příklad připojení

Ukážeme si příklad, při němž stáhneme pomocí webového prohlížeče internetovou stránku www.pcworld.cz. Prohlížeč přitom vytvoří spojení s IP adresou 80.95.116.45. Na serveru bude použit port 80 TCP, což je standardní port webového serveru. Na klientovi probíhá spojení dynamicky přiděleným portem 1 243.
Klient, jenž vyvolá internetovou stránku, se nachází v lokální síti, kterou lze poznat podle IP adresy 192.168.2.101. Data proudí přes router a přes Network Address Translation (NAT) se ke slovu dostává masquerading.
Router: masquerading
Pokud dochází k přístupu na internet přes router s internetem, není přímá komunikace port-port pod TCP/IP možná.
Většinou se v lokálních sítích používají soukromé adresy IPv4, protože přidělování většího množství oficiálních adres IPv4 nyní začalo být obtížné. Celý internetový provoz probíhá přes router. S takovou adresou odesilatele se ovšem klienti nemohu přímo dostat do kontaktu s internetem. Pakety s odpovědí nenaleznou cestu zpět. Odkud zná server v internetu příslušné číslo portu klienta v LAN?
Zde se používá takzvaný masquerading. Jde o zvláštní druh překládání adresy, které se také říká Source Network Address Translation (SNAT). U paketů z interní oblasti, jež se mají dostat do oblasti externí, je zdrojová adresa nahrazena adresou routeru a původní zdrojový port nahrazen novým portem. Tato data jsou uložena v tabulce, aby pakety s odpovědí mohly být příslušným způsobem opět předány. Tak si internetová služba "nezapamatuje", že komunikuje s portem routeru a ne s klientem.

Router: směrování portů

Pomocí funkčního principu překladu síťové adresy Network Address Translation (NAT), jak se používá v řadě firemních sítí, nelze vytvořit zvnějšku přímá spojení s počítačem za routerem. Pojem přesměrování (port forwarding nebo port mapping) označuje techniku, při které čeká počítač na určitém portu na navázání spojení a datové pakety předává jinému počítači v LAN. To umožňuje provoz internetové služby na klientovi za routerem.
V tomto případě tedy nejde o přístup přímo na počítač v lokální síti, nýbrž na určitý port routeru. Ten předává přístup příslušnému portu cílového počítače. Pakety, které počítač posílá zpět, je nutné rovněž zpracovat. IP adresa a číslo portu počítače je nahrazeno IP adresou a portem na routeru. Port forwarding je tedy opakem masqueradingu. Stejně jako u něj jsou klienti pro internet neviditelní.
Pro lepší pochopení uvedeme příklad, jak by mohl probíhat port forwarding pro webserver: klient s adresou 192.168.80.99 v lokální síti je pomocí routeru s veřejnou adresou 194.246.96.76 spojen s internetem. Aby mohl mít přístup k webserveru na klientovi, konfiguruje se router tak, aby veškeré datové pakety pro port 4711 předával dále na port 80 na počítači 192.168.80.99. Pakety s odpovědí od 192.168.80.99:80 přepisuje router na 194.246.96.76:4711.

Porty otevřená brána

Porty TCP a UDP ovšem mohou představovat i bezpečnostní riziko. Mnoho červů a trojských koní přes ně přistupuje k lokálním systémům nebo vytváří spojení do internetu. Právě u systémů Windows je proto třeba doporučit použití firewallu.
V určitých kruzích se z náhodného zkoumání zadních vrátek IP adresy stal oblíbený sport je to způsob, jak si nepozorovaně zajistit přístup do počítače. Skenerem portů mohou útočníci velmi rychle zjistit, které porty na počítači jsou otevřené. Takovýto skener nedělá nic jiného, než že oťukává jednotlivě všechny porty a kontroluje, zda přijde odpověď. Pokud přijde, je tento port aktivní a možná jej lze zneužít. Z tohoto důvodu je použití firewallu nezbytné. V následující části vysvětlíme pravidla konfigurace firewallu. Pokud je uplatníte na svém počítači, budete chráněni před většinou internetových hrozeb.

Zřízení firewallu

V dalším textu prostřednictvím metajazyka vysvětlíme důležitá filtrační pravidla bezpečného firewallu, která je možné uplatnit na všechny běžné firewally. Zásadně je dobré všechny porty nejprve zablokovat a otevírat jen ty, které jsou skutečně zapotřebí. Filtrační pravidla vyplývají z většího počtu voleb, jež jsou uvedeny v tabulce dole:
? FORWARD/ACCEPT/REJECT/DROP -dir IN/OUT
-prot TCP/UDP -src HOST:PORT -dest
HOST:PORT ?
Pomocí IP adresy zdrojového počítače můžete zablokovat služby pro určité počítače ve své lokální síti. Navíc je třeba při konfiguraci počítat s tím, že některé služby neodpovídají pomocí již otevřeného datového spojení, ale vytvářejí spojení nové. Z tohoto důvodu by měl firewall umožňovat i spojení pro jednotlivé případy:
?IF FORWARD/ACCEPT/REJECT/DROP -dir IN/OUT
-prot TCP/UDP -src HOST:PORT -dest
HOST:PORT THEN FORWARD/ACCEPT/REJECT/DROP -dir IN/OUT -prot TCP/UDP -src HOST:
PORT -dest HOST:PORT?
Větší počet jednotlivých pravidel se označuje také jako bezpečnostní pravidla. Při každém dotazu z lokální sítě nebo z internetu jsou bezpečnostní pravidla zpracována shora až dolů. Zpracovávají a filtrují každý datový paket. V našem příkladu konfigurace je ve firmě napojeno na internet přes firewall více klientů. Proxyserver není použit.

Standardní služby I

Jako první krok doporučujeme konfigurovat standardní služby, které jsou u většiny internetových spojení zpravidla zapotřebí. K nim patří mimo jiné přístup k webovým stránkám a FTP server.
Domain Name Service: toto pravidlo umožňuje lokálnímu počítači vytvořit spojení s nameserverem poskytovatele. Obě pravidla jsou v každém případě zapotřebí:
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:53FORWARD-dir OUT
-prot UDP -src LOCAL_CLIENT:ANY -dest ANY:53 ?
File Transfer Protokol: FTP nabízí dva různé druhy spojení, které předpokládají různé filtrové vlastnosti portů. Především je třeba dávat přednost pasivnímu FTP, protože zde jsou všechna spojení navazována z klienta a není nutné povolovat spojení navazovaná zvnějšku. V aktivním režimu navazuje klient spojení s portem 21 daného serveru. Server potvrdí spojení a naváže spojení ze svého portu 20 s klientem. Pro úplnost vysvětlíme obě varianty. U aktivního FTP je třeba konfigurovat firewall tak, aby mohl spojení navázat jen server, navíc musí předtím tento klient navázat spojení na port 20.
Pasivní FTP:
? FORWARD -dir OUT -prot TCP -scr LOCAL_CLIENT:ANY ANY:21 ?
Aktivní FTP:
?IF FORWARD -dir OUT -prot TCP -scr LOCAL_CLIENT:ANY FTP_SERVER:21 THEN FORWARD
-dir IN -prot TCP -src FTP_SERVER:20 LOCAL_CLIENT:ANY?
Standardní služby II
SSH Remote Login Protocol: SSH umožňuje bezpečnou komunikaci a autentifikaci. Navíc je celá procedura login včetně zjištění hesla šifrována. Toto pravidlo vytváříme jen v případě potřeby.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:22?
Hypertext Transfer Protocol: HTTP je standardní protokol webového prohlížeče a umožňuje přístup k internetovým stránkám.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:80?
Pokud používáme ve firemní síti proxyserver, je potřeba pravidlo příslušným způsobem přizpůsobit.
Hypertext Transfer Protocol přes TLS/ /SSL: slouží k bezpečnému přenosu webových stránek mezi webovým serverem a prohlížečem. Komunikace je přitom kódována SSL. Protokol HTTPS využívá mnoho webových stránek, jako například on-line banking. Proto je třeba příslušné porty schválit.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:443?

Služby pro e-mail a zprávy

Aby byl kvůli odesílání a příjímání e-mailů možný přístup k externímu mailserveru, je nutné uvolnit příslušné porty.
Simple Mail Transfer Protocol: SMTP se zpravidla používá k odesílání zpráv. Pokud má být odesílání e-mailů možné jen přes určitý server, lze to stanovit zde. Například je možné odesílat zprávy jen pomocí firemního mailserveru.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY-dest ANY:25?
Post Office Protocol Version 3: toto pravidlo umožňuje stažení e-mailů z POP3 mailserverů. I zde existuje možnost omezit přístup opět na určité servery.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:110?
Network News Transfer Protocol: NNTP slouží k přenosu zpráv systému Usenet. Toto pravidlo zadáváme jen v případě potřeby.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:119?
Internet Message Access Protocol Version 4: jestliže má přístup k e-mailům probíhat pomocí IMAP4, je třeba rovněž vytvořit pravidlo.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:143?
Internet Message Access Protocol Version 4 over TLS/SSL: tento protokol slouží pro přenos dat mezi poštovním klientem a serverem IMAP4, šifrovaný SSL. Toto pravidlo zadáváme jen tehdy, pokud protokol používáme.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:993?
Post Office Protocol Version 3 over TLS/SSL: pokud používaný POP3 server podporuje bezpečný přenos dat pomocí SSL, je třeba vytvořit toto bezpečnostní pravidlo pro filtrování paketů.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:995?

Audio a video I

Zde ukážeme, která filtrovací pravidla pro pakety jsou nutná pro provoz firewallu s programy pro audio a video, jako jsou QuickTime Player nebo RealPlayer. Tato pravidla zadáváme jen pokud je to nezbytně nutné. Pokud tomu tak je, doporučujeme je uvolnit pouze pro určité klienty v LAN.
Real Player: program navazuje spojení s příslušným streamingovým serverem přes porty TCP 554, 7 070 a 7 071. Server vysílá stream z některého z portů UDP mezi 6 970 a 7 170. Protože však není dobré tyto porty uvolnit, doporučujeme uvolnit pro Real Player jen jeden UDP port a zapsat jej do softwaru. Alternativně je možno přijímat stream také pomocí TCP. Podle vyjádření společnosti Real Player je však kvalita horší.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY-dest ANY:554FORWARD-dir OUT
-prot TCP -src LOCAL_CLIENT:ANY -dest ANY:7070FORWARD-dir OUT-prot TCP -src
LOCAL_CLIENT:ANY-dest ANY:7071?
Port UDP by se měl nacházet mezi 6 970 a 6 997, protože to v současné době ještě nejsou registrovanými porty, např.:
?IF FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY REAL_SERVER:554 THEN
FORWARD -dir IN -prot UDP -src REAL_SERVER:6971 -dest LOCAL_CLIENT:ANY?
Firewall je třeba konfigurovat tak, aby mohl spojení navázat jen jeden server, přičemž předtím příslušný klient vytvořil spojení.

Audio a video II

Microsoft Media Player: Media server používá pro audio a video streamy (*.asf) proprietární serverový protokol, vyvinutý Microsoftem. Podporuje jej MS Media Server od verze 4.0 a MS Media Player. Aby vytvořil spojení, kontaktuje Media Player server na TCP portu 1 755. Server potom odesílá stream klientovi UDP portem 1755.
? FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY-dest ANY:1755IF FORWARD -dir
OUT -prot TCP -src LOCAL_CLIENT:ANY MEDIA_SERVER:1755 THEN FORWARD -dir IN -prot
UDP -src MEDIA_SERVER:1755 -dest LOCAL_CLIENT:ANY ?
Apple QuickTime: tento přehrávač používá k vytvoření spojení se serverem stejně jako Real Player TCP port 554. QuickTime odesílá streamingová data UDP porty 6 970 až 6 999. Ani zde nemůžeme doporučit uvolnění všech portů. QuickTime Stream je vhodné přijímat pomocí HTTP.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:554?

Komunikace a chat

Instant messengery zpravidla nemají ve firemní síti co dělat. Kdyby se v ní přesto používaly, vyžadují vlastní bezpečnostní pravidla.
ICQ: pro komunikaci klient-server s počítačem login.icq.com se používá TCP port 5 190. Jako další možnost lze pro tento server používat i TCP port 443 se šifrováním SSL. Ke komunikaci mezi klienty se používají libovolné TCP porty mezi 1 024 a 65 535. Zde je třeba uvolnit jen jeden port a nastavit jej ve volbách ICQ.
? FORWARD -dir OUT-prot TCP-src LOCAL_CLIENT:ANY -dest login.icq.com:5190?
Yahoo! Messenger: u tohoto messengeru probíhá celá komunikace pomocí TCP portu 5 050. Proto se používají tři servery: cs1.yahoo. com, cs2.yahoo.com a cs3.yahoo.com, je tedy nutné uvolnit porty pro tyto tři servery. Pokud nelze vytvořit spojení se serverem Yahoo! přes port 5 050, použije se port 80.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY cs1.yahoo.com:5050FORWARD
-dir OUT -prot TCP -src LOCAL_CLIENT:ANY cs2.yahoo.com:5050FORWARD -dir OUT
-prot TCP -src LOCAL_CLIENT:ANY cs3.yahoo.com:5050 ?
AOL Instant Messenger: chatovací programm AOL používá stejně jako ICQ TCP port 5 190.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:5190?
MSN Messenger: Instant Messenger od Microsoftu využívá ke komunikaci TCP port 1 863. Pro používání AOL Instant Messenger Integration je nutné navíc uvolnit TCP port 5 190:
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:1863?
AIM Integration:
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:5190?

Novinka: VoIP

U provozu VoIP je nutné rozlišovat mezi různými scénáři. Prvním scénářem je jediný telefon VoIP (softwarový či hardwarový) za NAT firewallem, který se přihlásí přes poskytovatele VoIP. Zde působí jako prostředník proxy. Přes protokol SIP se provádí přihlášení k poskytovateli VoIP i navázání hovoru. Proto je nutné navenek uvolnit příslušný port 5 060. SIP používá UDP i TCP.
?FORWARD -dir OUT -prot TCP -src VOIP_PHONE:ANY -dest ANY:5060FORWARD -dir OUT -prot UDP -src VOIP_PHONE:ANY -dest ANY:5060?
Příchozí žádosti o hovor přijímá rovněž port 5 060. Je tedy nutné předat je rovněž dále IP telefonu.
?FORWARD -dir IN -prot TCP -src ANY:ANY -dest VOIP_PHONE:5060FORWARD -dir IN
-prot UDP -src ANY:ANY -dest VOIP_PHONE:5060?
Tato uvolnění se ovšem týkají jen signalizace hovoru. Vlastní hlasová data přenáší RTP pomocí UDP. Všeobecně je možné u VoIP telefonu nastavit, přes které UDP porty má přicházet proud RTP. Tento port a další vyšší předáváte dále telefonu. Další port slouží k předávání zpráv RTPS, jimiž druhý účastník předává informace o kvalitě a hlásí případné chyby.
?FORWARD -dir IN -prot UDP -src ANY:ANY -dest VOIP_PHONE:RTP_PORTFORWARD -dir
IN -prot UDP -src ANY:ANY -dest VOIP_PHONE:RTP_PORT+1?
Internet Control Message Protocol (ICMP) slouží k výměně chybových a stavových hlášení, pokud se při přenosu IP vyskytnou chyby. Pokud není například dosažitelný host, vyšle router odesilateli chybové hlášení "Destination Unreachable". Vedle přenosu chybových hlášení slouží ICMP také pro kontrolu: takto používá ping pakety ICMP, aby zjistil dobu přenosu datagramů mezi dvěma hosty.

Útoky pomocí ICMP

Internet Control Message Protocol balancuje na hraně mezi bezpečností a výkonem. Kdo akceptuje malé snížení výkonu, může protokol zcela zablokovat. Internetové spojení by mělo ve většině případů přesto fungovat bez problému.
Nebezpečí spočívá ve zneužití ICMP k útokům, při nichž jsou vysílána falešná chybová hlášení. Toto umožňuje například útok jako je Denial of Service (DoS).
Takový útok může vést k výpadku několika služeb, v nejhorším případě ke zhroucení systému počítače. Pomocí služeb ICMP echo a echo reply může útočník získat i užitečné informace o struktuře sítě. Mezi ně patří počet počítačů a existující IP adresy. Tyto informace potom mohou hackeři používat k dalším cíleným útokům.

Hlášení ICMP I

Jak jsme již řekli, je dobré nejprve uzavřít všechny porty a otevřít jen ty, které jsou skutečně zapotřebí. U ICMP existuje mnoho hlášení, v praxi jich je ovšem zapotřebí jen několik. Tato hlášení se člení na typy ICMP. Další informace o jednotlivých typech naleznete na webových stránkách IANA (http://www.iana.org/assignments/icmp-parameters). Pravidla potřebná pro filtrování paketů jsou vysvětlena v dalším textu.

Chybová hlášení:

Typ 3 Destination Unreachable: toto hlášení je vysláno, pokud gateway nemůže nalézt danou síť a cílový počítač, nebo pokud cílový počítač nenajde protokol či port. Příchozí datové pakety tohoto typu je třeba povolit. Ušetří to čas, jinak musí klient čekat na time out.
?FORWARD -dir IN -prot ICMP_Typ_3 -src ANY:ANY -dest LOCAL_CLIENT:ANY?
Typ 11 Time Exceeded: odesilateli datového paketu sděluje, že datový paket nebyl přenesen, protože byl překročen čas. Důvodem může být "dopravní zácpa paketů" na daném routeru, nebo není IP protokol na cílovém počítači schopen složit fragmenty do úplného datového proudu. Taková příchozí hlášení je třeba povolit.
?FORWARD -dir IN -prot ICMP_Typ_11 -src ANY:ANY -dest LOCAL_CLIENT:ANY?

Hlášení ICMP II

Typ 12 Parameter Problem: hlášení sděluje odesilateli datagramu, proč nebyl datový paket přenesen.
?FORWARD -dir IN -prot ICMP_Typ_12 -src ANY:ANY -dest LOCAL_CLIENT:ANY?
Typ 4 Source Quench: hlášení o problému vyrovnávací paměti sděluje odesilateli datového paketu, proč nebyl datový paket přenesen.
?FORWARD -dir IN -prot ICMP_Typ_4 -src ANY:ANY -dest LOCAL_CLIENT:ANY?

Informační hlášení

Typ 8 Echo/Typ 0 Echo Reply: odesilateli echo requestu jsou od příjemce zaslána zpět všechna data, obsažená v datovém paketu. Tak lze zjistit, zda je určitá IP adresa dosažitelná nebo ne. Mnoho samozvaných hackerů skenuje internet pomocí echa a hledá počítače, které odpovědí echo reply. Na těchto počítačích potom hledají trojské koně. Proto je třeba povolit echo jen výchozím a echo reply jen příchozím.
?FORWARD -dir OUT -prot ICMP_Typ_8 -src ANY
-dest ANYFORWARD -dir IN -prot
ICMP_Typ_0 -src ANY -dest ANY?

Nástroje pro sdílení souborů I

Služby pro sdílení souborů, jako je Gnutella a eDonkey, se těší stále větší oblibě, ať už při výměně hudebních souborů nebo jiného materiálu. Leckterý šéf by tak chtěl tyto služby svým pracovníkům ve firemní síti poskytnout, přestože nemají příliš společného s vlastní prací. Bezpečnostní pravidla jsou proto následující.
Gnutella: peer to peer Gnutella je jedna z nejznámějších služeb pro výměnu souborů. Pro přístup ke službám sdílení souborů je nutné uvolnit pro výstup TCP porty 6 346 a 6 347.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:6346FORWARD -dir
OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:6347?
Další podrobnosti k použití Gnutelly za firewally naleznete na stránkách http://www.gnutellanews.com/information/firewalls.shtml.

Nástroje pro sdílení souborů II

eDonkey: standardně používá porty 4 661, 4 662 a 4 665. Ovšem k používání klienta je nutné otevřít jen pro výstup TCP port 4 662. TCP port 4 661 je zapotřebí pro provoz serveru, a tak není pro klienta relevantní. Funkce zpráv eDonkey používá UDP port 4 665.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:4662?
Výše uvedený příklad je tedy dostatečný. Jestliže chceme nechat běžet server a k tomu si ještě vyměňovat zprávy s jinými uživateli, je třeba vytvořit tato bezpečnostní pravidla:
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:4661FORWARD -dir IN
-prot UDP -src ANY:ANY -dest LOCAL_CLIENT:4662FORWARD-dir OUT -prot UDP-src
LOCAL_CLIENT:ANY -dest ANY:4665?
KaZaA a Morpheus: oba peer to peer nástroje používají pro výměnu dat s ostatními uživateli TCP port 1 214.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:1214?

On-line hry I

Hrát po internetu hry je stále oblíbenější formou zábavy. Nyní se budeme věnovat souhrnu nutných bezpečnostních pravidel firewallu pro nejpopulárnější on-line hry. Ovšem uvolnit je smíme jen tehdy, pokud šéf příležitostné hraní na pracovišti povoluje!
Battle.net: asi nejznámější portál umožňuje společné hraní StarCraft, WarCraft II, Diablo a Diablo II. K tomu je třeba uvolnit vstup i výstup portu 6 112 u TCP i UDP.
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:6112IF FORWARD -dir
OUT -prot TCP -src LOCAL_CLIENT:ANY GAME_SERVER:6112 THEN FORWARD -dir IN -prot
TCP -src GAME_SERVER:6112 -dest LOCAL_CLIENT:ANYFORWARD -dir OUT -prot UDP -src
LOCAL_CLIENT:ANY -dest ANY:6112IF FORWARD -dir OUT -prot UDP -src
LOCAL_CLIENT:ANY GAME_SERVER:6112 THEN FORWARD -dir IN -prot UDP -src
GAME_SERVER:6112 -dest LOCAL_CLIENT:ANY?

On-line hry II

Microsoft Zone.com: MSN umožňuje na stránkách Zone.com (http://www.zone.com) hraní strategií jako jsou Ages of Empires. Aby jej bylo možné používat, je nutné uvolnit příslušné porty pro Zone.com a pro herní rozhraní nastavit DirectX.
Zone.com:
?FORWARD -dir OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:6667FORWARD -dir
OUT -prot TCP -src LOCAL_CLIENT:ANY -dest ANY:28800-29100?
DirectX 8:
?FORWARD -dir OUT -prot UDP -src LOCAL_CLIENT:ANY -dest ANY:6073FORWARD -dir
OUT -prot UDP -src LOCAL_CLIENT:ANY -dest ANY:2302-2400IF FORWARD -dir OUT -prot
UDP -src LOCAL_CLIENT:ANY GAME_SERVER:2302-2400 THEN FORWARD -dir IN -prot UDP
-src GAME_SERVER:2302-2400 -dest LOCAL_CLIENT:ANY?

Síť Microsoft

Windows používají k plnění svých síťových funkcí řadu portů. Ve staré implementaci, která se používala po Windows Me/NT, to byly porty 137, 138 a 139. Od Windows 2000 se serverové zprávy odesílají portem 445. Přirozeně jsou verze Windows od 2000 také zpětně kompatibilní, takže vedle sebe mohou probíhat oba postupy.
Portem 137 probíhá takzvaná služba NetBIOS Name Service. Pomocí ní Windows podobně jako DNS vzájemně přiřazují jména počítačů a IP adresy. To může za určitých okolností vést k následujícímu efektu: jestliže uživatel surfuje na windowsovém webovém serveru, přijde z něj dotaz na počítač uživatele na port 137, protože Windows server používá funkci Winsock gethostbyaddr() pro volání jména vzdáleného počítače. Pod Windows je ovšem tato funkce zavedena tak, že se pokusí o rozpoznání jména NetBIOS a teprve v případě nezdaru dojde k rozpoznání DNS.
Takovému provozu je třeba všeobecně zabránit, a to vstupnímu i výstupnímu. Pokud by si dvě sítě Windows vyměňovaly data přes internet, je možné doporučit VPN.
?DROP -dir OUT -prot UDP -src LOCAL_CLIENT:ANY
-dest ANY:137DROP -dir IN -prot
UDP -src ANY:ANY -dest LOCAL_CLIENT:137DROP
-dir OUT -prot TCP -src
LOCAL_CLIENT:ANY -dest ANY:137DROP -dir IN
-prot TCP -src ANY:ANY -dest
LOCAL_CLIENT:137?

Siť Microsoft port 138

Pod portem 138 se skrývá NetBIOS Datagram Service. Touto službou odesílají Windows především informace o síti Windows, většinou broadcastem. Například služba Windows Computerbrowser používá zprávy NetBIOSu, aby vytvořila seznam aktuálních počítačů v síti Windows a zobrazila je v prostředí sítě.
Největším nebezpečím u služeb Datagram Services je, že hacker může přesvědčit Windows pomocí zfalšovaných paketů o tom, že patří k lokální síti, a může tedy obejít bezpečnostní rozlišování mez lokálními počítači a počítači v síti internet. I zde platí, že je třeba uzavřít tento port v obou směrech.
?DROP -dir OUT -prot UDP -src LOCAL_CLIENT:ANY
-dest ANY:138DROP -dir IN -prot
UDP -src ANY:ANY -dest LOCAL_CLIENT:138DROP
-dir OUT -prot TCP -src
LOCAL_CLIENT:ANY -dest ANY:138DROP -dir IN
-prot TCP -src ANY:ANY -dest
LOCAL_CLIENT:138?

Síť Microsoft port 139

Vlastní výměna dat u sítí Windows probíhá portem 139, pomocí NetBIOS Session Service. Pokud je tento port otevřený, může se hacker napojit na počítač a pokusit se hackovat uvolnění souborů a tiskáren. Většinou to probíhá jako brutální útok, při němž vyzkouší řadu běžných hesel.
Otevřený port 139 navíc způsobuje další problémy. Například zde číhá služba Messenger systému Windows na zprávy odeslané pomocí net send. Stále častěji se to zneužívá ke spamování. Přitom k uživateli nedorazí e-mail, ale otevře se okno Windows se spamem.
Proto je třeba rozhodně tento port v obou směrech uzavřít.
?DROP -dir OUT -prot UDP -src LOCAL_CLIENT:ANY
-dest ANY:139DROP -dir IN -prot
UDP -src ANY:ANY -dest LOCAL_CLIENT:139DROP
-dir OUT -prot TCP -src
LOCAL_CLIENT:ANY -dest ANY:139DROP -dir IN
-prot TCP -src ANY:ANY -dest
LOCAL_CLIENT:139?

Síť Microsoft port 135

I když uzavřete port 139, může se k vám spam přes messengera dostat. Příkaz net send používá nedokumentovanou vlastnost služby Microsoft RPC, jež za portem 135 číhá na příchozí dotazy RPC. Ten totiž mimo jiné nabízí spojení se službou messenger, takže se net send pokouší o tuto cestu jako o alternativu, když se nepodaří normální přístup pomocí portu 139. Dnes však již existují spamovací nástroje, které rovněž používají tuto metodu, aby rozeslaly spam.
Další služby, o které se rovněž stará epmap, jsou například servery DHCP, DNS a WINS Server systému Windows. Navíc se port 135 používá pro vzdálenou správu téměř všech služeb Windows. Proto i pro tento port platí jednoznačný příkaz: zablokujte ho!
?DROP -dir OUT -prot UDP -src LOCAL_CLIENT:ANY
-dest ANY:135DROP -dir IN -prot
UDP -src ANY:ANY -dest LOCAL_CLIENT:135DROP
-dir OUT -prot TCP -src
LOCAL_CLIENT:ANY -dest ANY:135DROP -dir IN
-prot TCP -src ANY:ANY -dest
LOCAL_CLIENT:135?

Síť Microsoft port 445

Ve Windows 2000 rozšířil Microsoft SMB protokol tak, že jej lze kompletně používat pomocí TCP/IP bez okliky "NetBIOS přes TCP/IP". K tomu se používá výhradně port 445 (microsoft-ds).
V prostředí jen s Windows 2000, XP a .NET serverem 2003 je možné tyto porty vypnout, když deaktivujete ve volbách síťové karty "NetBIOS přes TCP/IP". V důsledku toho je však možné vymazat jméno v LAN jen pomocí DNS a ne pomocí WINS nebo broadcasty NetBIOS. Potom tedy budete potřebovat DNS server v LAN, který spravuje také lokální počítače (třeba Windows 2000 jako DHCP a DNS server), nebo musíte na každém počítači vytvořit seznam hostů.
I pro port 445 platí: provoz SMB má být výhradně jen uvnitř LAN:
?DROP -dir OUT -prot UDP -src LOCAL_CLIENT:ANY
-dest ANY:445DROP -dir IN -prot
UDP -src ANY:ANY -dest LOCAL_CLIENT:445DROP
-dir OUT -prot TCP -src
LOCAL_CLIENT:ANY -dest ANY:445DROP -dir IN
-prot TCP -src ANY:ANY -dest
LOCAL_CLIENT:445?

Novinka: Microsoft Exchange

Exchange server Microsoftu pracuje s celou řadou portů. Vedle již popsaných portů pro e-mailové služby POP3, POP3S, SMTP, IMAP4 a IMAPS jsou zde ještě X.400 MTA, LDAP, Secure LDAP a epmap. Epmap slouží ke vzdálené správě Exchange serveru, a jak již bylo uvedeno, měl by být pro přístup zvnějšku zablokován.
Vzhledem k tomu, že mají být komunikační porty přístupné i zvnějšku, je nutné je na firewallu uvolnit pro Exchange server, alespoň pro SMTP, aby mohly MTA dodat své e-maily:
?FORWARD -dir IN -prot TCP -src ANY:ANY -dest EXCHANGE_SRV:25?
Pokud mají mít majitelé poštovních schránek přístup ke svým e-mailům i zvnějšku, je nutné porty POP a IMAP otevřít rovněž pro Exchange server:
?FORWARD -dir IN -prot TCP -src ANY:ANY -dest EXCHANGE_SRV:110FORWARD -dir IN
-prot TCP -src ANY:ANY -dest EXCHANGE_SRV:995FORWARD -dir IN -prot TCP -src
ANY:ANY -dest EXCHANGE_SRV:143FORWARD -dir IN -prot TCP -src ANY:ANY -dest
EXCHANGE_SRV:993?
Exchange server umožňuje pomocí LDAP a Secure LDAP hledání jmen, telefonních čísel a e-mailových adres. To by vlastně mělo být možné výhradně pro uživatele v LAN:
?DROP -dir IN -prot TCP -src ANY:ANY -dest ANY:389DROP -dir IN -prot TCP -src
ANY:ANY -dest ANY:636?
Na portu 102 čeká Exchange na dotazy mail transfer agentů, které jsou schopné pracovat s X.400. Podle potřeby jej můžete uvolnit.

Novinka: Microsoft SQL Server

Vzhledem k mnoha známým bezpečnostním mezerám v MS SQL serveru byste měli umožnit přístup jen systémům v LAN. Používají se porty 1 433 a 1 434, přičemž port 1 433 slouží pro vlastní komunikaci a port 1 434 pro monitoring.
?DROP -dir IN -prot TCP -src ANY:ANY -dest ANY:1433DROP -dir IN -prot UDP -src
ANY:ANY -dest ANY:1434?

Novinka: SUSE Meta PPP Daemon

Mnoho sítí nemá pevné spojení s internetem, ale přihlásí se v případě potřeby. Kontrolu nad tímto spojením má přitom podle druhu připojení (ISDN nebo DSL) ipppd nebo pppd. V podstatě stačí tyto programy správně spustit, abychom byli on-line.
K automatickému vytvoření spojení nebo k řízení daemonu z jiného počítače se v případě potřeby hodí SUSE Meta PPP Daemon (smpppd). Poskytuje pomocným programům jednotné rozhraní, jež funguje oběma směry.
Za prvé programuje nezbytné pppd nebo ipppd a řídí jeho chování při přihlášení. Za druhé poskytuje uživatelským programům různé providery a předává informace o aktuálním stavu spojení. Vzhledem k tomu, že smpppd je možné řídit i po síti (port 3 185), hodí se dobře pro řízení internetového připojení nebo pracovní stanice v soukromé subsíti.
Ovšem přístup k daemonu by měl zůstat omezen na lokální síť:
?DROP -dir IN -prot TCP -src ANY:ANY -dest ANY:3185?

Novinka: KDE System Guard

Zde jde o KDE Task Manager a Performance Monitor, který může sbírat data i ze vzdálených stanic. Komunikace probíhá portem 3 112. Vzhledem k tomu, že obecně není žádoucí, aby se na tato data mohl dotázat libovolný počítač z internetu, měl by být tento port na firewallu blokován.
?DROP -dir IN -prot TCP -src ANY:ANY -dest ANY:3112?

Přehled o portech

V tabulce najdete přehled všech důležitých portů. Ukáže vám, které porty používají které aplikace a jaký se přitom používá protokol: TCP nebo UDP. Navíc jsme vždy uvedli nejznámější a nejběžnější trojské koně a červy. Jednotlivé porty jsme pro vás také ohodnotili. Budete tak v budoucnosti přesně vědět, které porty máte při konfiguraci svého firewallu uvolnit a které zablokovat. 6 0207/BAM o

Pro metajazyk používáme následující symboly

VolbaPopis
FORWARD/ACCEPT/REJECT/DROPpředat dále/přijmout/blokovat/ignorovat datové pakety
-dir IN/OUTvstupní/výstupní
-prot TCP/UDP/ICMPpoužitý protokol: TCP, UDP nebo ICMP
-src HOST:PORTzdrojový počítač: port -dest HOST:PORTcílový počítač: port
Posouzení důležitosti portů
1Jsou zapotřebí prakticky v každém prostředí.
2Jsou většinou zapotřebí.
3Uvolnit podle potřeby.
4Jsou zapotřebí zřídka.
5Uvolnit jen tehdy, je-li to
bezpodmínečně nutné.
6Neuvolňovat za žádných
okolností.
Služba ProtokolPopisTřídaTroanoHraKomunikaceSdíleníMSStandardAppleZavřenoPosouzení
souborů
ftp-data20TCP/UDPFile Transfer (Default Data)dobře známýanoneneneneanonene2
ftp21TCP/UDPFile Transfer (Control)dobře známýanoneneneneanonene2
ssh22TCPSSH Remote Login Protocoldobře známýanoneneneneanoneano3
smtp25TCPSimple Mail Transfer Protocoldobře známýanoneneneneanonene1
domai53TCP/UDPDomain Name Serverdobře známýneneneneneanonene1
http80TCPHypertext Transfer Protocoldobře známýanoneneneneanonene1
iso-tsap102TCP/UDPX.400, ISO-TSAP Class 0dobře známýneneneneneanonene4
pop3110TCPPost Office Protocol Version 3dobře známýanoneneneneanonene1
nntp119TCPNetwork News Transfer Protocoldobře známýanoneneneneanonene3
loc-srv/epmap135TCP/UDPMS DCE RPC end-point mapperdobře známýneneneneanonenene5
netbios-ns137TCP/UDPNetbios Name Servicedobře známýanoneneneanonenene4
netbios-dgm138TCP/UDPNetbios Datagram Servicedobře známýanoneneneanonenene4
netbios-ss139TCP/UDPNetbios Session Servicedobře známýanoneneneanonenene4
imap4143TCPInternet Message Access Protocol Version 4dobře známýneneneneneanonene4
ldap389TCPLightweight Directory Access Protocoldobře známýneneneneanoanonene4
ssl443TCPHypertext Transfer Protocol over TLS/SSLdobře známýneneneneneanoneano1
microsoft-ds445TCP/UDPWindows 2000/XP SMBdobře známýneneneneanonenene4
rtsp554TCPReal Time Stream Control Protocoldobře známýnenenenenenenene5
sldap636TCPLightweight Directory Access Protocol over SSLdobře známýneneneneanoanoneano4
imaps993TCPInternet Message Access Protocol Version 4 over TLS/SSLdobře známýneneneneneanoneano4
pop3s995TCPPost Office Protocol Version 3 over TLS/SSLdobře známýneneneneneanoneano4
kazaa1 214TCPKaZaA/Morpheusregistrovanýnenene anonenenene5
ms-sql-s1 433TCP/UDPMicrosoft SQL Serverregistrovanýanoneneneanonenene5
ms-sql-m1 434UDPMicrosoft SQL Monitorregistrovanýanoneneneanonenene5
ms-streaming1 755TCP/UDPMicrosoft Media Playerregistrovanýneneneneanonenene 4
msnp1 863TCPMicrosoft MSN Messengerregistrovanýneneanoneanonenene5
2 302-2 400UDPMicrosoft DirectX 8registrovanýanoanoneneanonenene5
ksysguard3 112TCP/UDPKDE System Guardregistrovanýnenenenenenenene5
smpppd3 185TCP/UDPSuSE Meta PPPDregistrovanýanonenenenenenene6
icq4 000TCP/UDPICQ/Terabaseregistrovanýanoneanonenenenene5
unassigned4 661TCPeDonkeyregistrovanýneneneanonenenene5
unassigned4 662TCPeDonkeyregistrovanýneneneanonenenene5
unassigned4 665UDPeDonkeyregistrovanýneneneanonenenene5
mmc5 050TCPMultimedia Conference Control Toolregistrovanýneneanonenenenene5
sip5 060TCP/UDPSIPregistrovanýneneanone nenenene3
aol5 190TCPAOL Instant Messenger / Mirabilis ICQregistrovanýneneanonenenenene5
directplay86 073TCPMicrosoft DirectPlay 8registrovanýneanoneneanonenene5
dtspcd6 112TCP/UDPBattle.netregistrovanýneano nenenenenene5
gnutella-svc6 346TCPGnutellaregistrovanýneneneanonenenene5
gnutella-rtr6 347TCPGnutellaregistrovanýneneneanonenenene5
ircu6 667TCPMSN Zone.comregistrovanýanoanoneneanonenene5
arcp7 070TCPRealPlayer-Serverregistrovanýnene anonenenenene5
arcp7 071TCPRealPlayer-Serverregistrovanýnene anonenenenene5
9 110UDPMicrosoft SideWinder Game Voiceregistrovanýneanoanoneanonenene5
28 000-29 000TCPMSN Zone.comregistrovanýneanoneneanonenene 5