Tohle téma se pořád opakuje. Jak zablokovat skype? Jak zablokovat skajp? Jak proboha? No já bych se předně zeptal proč? Je to přece normální komunikační nástroj. Dneska už dokonce přímo od Microsoftu. Za chvilku uvidíte i důvod :-)
Já mám naopak větší problémy ho povolit, než zakázat. Už minule jsem tu psal o TMG SSL inspection a o tom, že přes to Skype neproleze. A to mě popravdě rozčiluje víc, než opačný problém.
Skype komunikační protokol
Nicméně jsem to už řešil tolikrát, že jsem se rozhodl to lépe prozkoumat. Vyplyne z toho metoda jak ho zakázat a také trošku vnitřností a jak ho případně i povolit. Já bych alespoň chtěl, aby firewalu pouštěl ven jen ověřené uživatele a já případně viděl jejich statistiky v logu apod. Nejprve se mrkněme o kterých verzích hovoříme, protože to se samozřejmě může měnit (TMG 7.0.9193.500 a Skype 5.8.32.154):
Takže pro začátek několik základních faktů zjištěných za pomoci rýzných zdrojů a nástrojů, mezi nimiž zastává výsadní postavení přítel a kamarád Network Monitor: Jedním ze zdrojů informací byl i tento Wikipedia článek, který se mě ovšem ve světle mých objevů zdá již poněkud zastaralý:
- Skype umí komunikovat přes TCP 443
- Tato TCP 443 komunikace není "normální" TLS/SSL. To je důvod, proč to nejede přes TMG SSL Inspection. TMG by si to rádo dešifrovalo, ale k tomu by bylo potřeba, aby se ten protokol choval jako skutečné TLS a nikoliv nějaký Skype paskvil. Takže s inspekcí smůla.
- Skype umí tuhle svoji komunikaci prohánět přes HTTP proxy. Můžete tedy skutečně použít TMG proxy na portu 8080.
- Proxy přístup může být ověřovaný, takže je skutečně ověřeno, že na TMG můžete mít jen ověřovaná pravidla. Anonymní uživatele prostě ven pouštět nemusíte. Detaily nastavení klienta jsou níže.
- Skype začíná komunikaci na několik svých vlastních serverů. Na rozdíl od onoho článku na wikipedii se jedná o celkem velké množství IP adres. Příklad adres je opět o něco níže v tabulce.
- Po úvodním hovoru se svými vlastními servery, se Skype připojuje ne neidentifikovatelný počet veřejných IP adres super-node, které zneužívá na přenos hlasu a četu.
Nejprve zprovoznění přístupu do internetu přes TMG
Následující obrázky by měly být zřejmě vcelku samopopisné. Nejprve nesmíte mít na TMG zapnutu SSL Inspection.
Na TMG můžete mít pouze ověřovaná pravidla. V následujícím obrázku je vidět, že ven, do internetu, pouštím jen Ping a ověřené HTTP/S. Když bude chtít Skype do internetu, tak jen pod doménovým uživatelem.
Proxy nastavení na TMG jsou vidět v následujících dvou obrázcích. Všiměte si, že mám povolenu Windows Integrated Authentication, takže se lidi mohou ověřovat NTLM, nebo Kerberosem. Publikuju také web proxy autodiscovery (WPAD) skript, abych nemusel to nastavení na klientovi dělat ručně.
Pokud si to takto rozjedete na TMG, nastavení na klientovi pak už nehraje moc roli. Vyberu tam proxy. Jak ji zadáte, jestli se najde automaticky, nebo jestli zadáte i nějaký login a heslo, není důležité. To nejjednodušší je nechat tam volbu Automatic Proxy Detection. Skype umí (na rozdíl od různých keců na různých konferencích) použít rovnou vaše přihlašovací jméno a heslo, které máte do Windows. Tedy samozřejmě jen pro ověření vůči proxy. Do Skype programu už pak budete potřebovat váš vlastní účet a heslo.
Všiměte si, že i když tam proxy zadáte ručně, login a heslo stejně nemusíte zadávat. Skype je prostě docela flexibilní.
Jen pro pořádek, zkoumal jsem, jestli se umí ověřovat vůči proxy Kerberosem. Neumí. Používá natvrdo NTLM, i když je na doménovém počítači a běží pod doménovým účtem.
A teď jeho zákaz, nebo omezení
Pokud si při spouštění Skype nachytáte nějaké pakety, můžete vidět něco jako je třeba v mém dalším obrázku:
Skype se po startu snaží připojit na svoje vlastní servery. Zřejmě kvůli tomu, aby tam zjistil seznam všech možných dalších komunikačních uzlů, které by mohl nadále využívat k provozu hlasového, obrazového a četového přenosu. Takže bez těchto IP adres to nepůjde. V následující tabulce uvidíte seznam "charakteristických" adres. To jsou ty, které Skype zkusil v průběhu mých testů. Problém je, že to nejsou všechny. On skype zkouší ještě "okoloní" adresy. To znamená, že má zřejmě na daných rozsazích několik serverů. Blbé je, že to je tedy hodně IP adres, které se všechny zřejmě nedají nějak precizně odchytit.
Jestli to chcete tedy blokovat, musíte zablokovat zřejmě celou C podsíť okolo mých charakteristických adres. S tímhle nastavením mi to funguje - tedy přesněji řečeno blokuje Skype. Mohlo by to ale blokovat i jiné služby, takže byste to případně museli trošku zmenšit za provozu.
IP Address |
Registrator |
Owner |
64.4.23.144 |
ARIN |
HOTMAIL, MS Hotmail (MSHOTM) |
65.55.223.32 |
ARIN |
MICROSOFT-1BLK, Microsoft Corp (MSFT) |
111.221.74.14 |
APNIC |
Microsoft |
111.221.77.145 |
APNIC |
Microsoft |
157.55.56.141 |
ARIN |
MSFT-GFS, Microsoft Corp (MSFT) |
157.55.130.151 |
ARIN |
MSFT-GFS, Microsoft Corp (MSFT) |
157.55.235.160 |
ARIN |
MSFT-GFS, Microsoft Corp (MSFT) |
157.56.52.38 |
ARIN |
MSFT-GFS, Microsoft Corp (MSFT) |
213.199.179.158 |
RIPE |
MSFT-IDC |
V tabulce je pěkně vidět, co je Skype za program. MS si ho už úplně přivlastnil. A já tvrdím že to je sakra dobře. Takovou kvalitu a podporu vývoje nikdo jiný na světě nemá!
Takže z předchozí tabulky si vyberte celé Cčkové rozsahy a zablokujte je. A Skype vám nepojede:
Výhradní povolení skype
Takže umíme Skype zablokovat. Umíme ho také rozchodit přes ověřovanou proxy. Uměli bychom pro něho udělat i striktní výjimku? Myslím tím, jestli jsme schopni ho explicitně povolit pomocí seznamu těch předchozích IP adres, aniž bychom uvolnili jiné komunikace?
Ne.
V předchozí tabulce jsou IP adresy Skype serverů. Jenže ty svoje servery Skype používá jen pro svoje servisní komunikaci. Zjistí si seznam dalších komunikačních uzlů a přes ty teprve komunikuje. Těch uzlů může být téměř někonečně. I vy sami můžete být uzlem, pokud máte veřejnou IP adresu a běží vám na ní Skype.
Takže tento seznam se dynamicky mění a je prakticky neomezený. Tohle už ale nepovolíte explicitně.
Takže závěr je, že zakázat to lze v pohodě. A povolit bez omezení při současném ověření na proxy ano.