- Azure IaaS (1) – první VM z grafického portálu
- Azure IaaS (2) – první VM z PowerShell
- Azure IaaS (3) – první VM z Azure CLI
- Azure IaaS (4) – první VM z ARM šablony
- Azure IaaS (5) – Network security group
- Azure IaaS (6) – vlastní image
- Azure IaaS (7) – automatizace stavu VM při vytvoření
- Azure IaaS (8) – Availability Set aneb jak je to s SLA
Vytvořit VM už umíme a to hned několika způsoby. Podívejme se teď na to, jak můžeme stavovým způsobem filtrovat provoz. Jak může vypadat firewall v Azure IaaS?
Network security group vs. starší koncepty
V Azure filtrování začalo konceptem ACL, který měl mnohé limity. Později se objevil koncept NSG (Network security group), který nešlo s ACL kombinovat. V klasické verzi IaaS se přiřazoval na VM nebo subnet. Historii přeskočíme a budeme se soustředit na IaaS v2, tedy ARM a nový portál.
Network security group dnes můžete aplikovat buď na virtuální síťovou kartu nějaké VM nebo na celý subnet. NSG zahrnuje jak pravidla pro příchozí provoz, tak ten odchozí – to si ukážeme.
Prozkoumejme výchozí NSG
Vytvořte si úvodní VM s pomocí portálového průvodce tak, jak jsme popsali hned v prvním dílu seriálu. Tento postup vám vytvoří výchozí NSG, na které se teď podíváme.
Prozkoumejte výchozí hodnoty:
Máme tu jedno příchozí pravidlo dovolující SSH přístup, díky němuž se do naší VM můžeme tímto protokolem dostat (portálový průvodce v případě Windows VM otevře pro změnu RDP). Některá pravidla jsou ale skrytá – podívejme se na všechny.
Kromě příchozí SSH tam máme další tři skryté položky. Ta první dovoluje provoz přicházející ze stejné virtuální sítě, takže pokud neřeknete jinak, všechny VM ve stejné síti spolu mohou nerušeně komunikovat. Druhé skryté pravidlo povoluje přístup z load balanceru. To bude důležité v příštích kapitolách, kde se o balancování provozu budeme bavit. Smyslem je, že nechceme přenastavovat všechny balancované VM vždy po jednom. Poslední pravidlo říká, že všechno ostatní je zakázáno. Má velmi vysoké číslo priority, tedy je zpracováváno až na konci, takže mu můžete předřadit libovolné další povolující řádky.
Jak vypadají pravidla pro odchozí provoz?
Naše VM může do Internetu a tak do dalších VM ve stejné virtuální síti, ostatní je zakázáno. Ve výchozím stavu tedy můžete například stahovat balíčky z Internetu.
Mějme na paměti, že se jedná o stavový firewall, takže směr komunikace je brán v úvahu (pro síťaře je tedy rozhodující kdo posílá TCP SYN a jak se TCP spojení sestaví). Tzn. VM může stahovat cokoli z Internetu, protože tuto komunikaci začíná VM. Internet ale nemůže začít komunikovat s VM (samozřejmě s výjimkou toho, co v inbound povolíte – jako je SSH).
Vyzkoušíme default pravidla
Pojďme si tato pravidla vyzkoušet. Připojte se do VM přes SSH protokol (jak najít její veřejnou IP nebo DNS jméno už víte z minula). Povedlo se? Pokud ano, aplikovalo se Inbound pravidlo na SSH.
Teď se z VM pokuste připojit na Internet. Uděláme to tak, že si stáhneme jednoduchou webovou aplikaci (to se nám bude za chvilku hodit).
tomas@cloudsvetvm:~$ git clone https://github.com/tkubica12/web.git Cloning into 'web'... remote: Counting objects: 19, done. remote: Compressing objects: 100% (10/10), done. remote: Total 19 (delta 2), reused 19 (delta 2), pack-reused 0 Unpacking objects: 100% (19/19), done. Checking connectivity... done. tomas@cloudsvetvm:~$ ls web/ pathrc pkg README.md src web web.go web_v2 web_v2.go
Jak vidíte, aplikaci se nám stáhnout podařilo. To že jsme připojeni přes SSH znamená, že Inbound funguje a to, že můžeme stahovat ukazuje, že Outbound pravidlo do Internetu také chodí. Výborně!
Přidáme web server
Webová aplikace, kterou jste si stáhli, je jednoduchá binárka a běží na portu 3000. Otevřete SSH session a aplikace spusťte.
tomas@cloudsvetvm:~$ web/web [martini] listening on :3000 (development)
Otevřete druhou SSH session a zkuste se přes loopback připojit.
tomas@cloudsvetvm:~$ curl 127.0.0.1:3000 <h1>My MAC address is 00:0d:3a:25:cd:38</h1>
Funguje! Zkusme teď do webového prohlížeče zadat veřejnou adresu (nebo DNS jméno) a port (tedy http://ip:3000). Jede?
Musíme nejprve přidat Inbound pravidlo na port 3000. Zkusme to.
Zkusíme to teď.
Podobným způsobem můžete aplikovat NSG na subnet.
Dnes jsme si pohráli s nastavením firewallu. Můžete použít mikrosegmentaci (firewall na každý NIC) nebo klasické přiřazení k subnetu. Na další pokročilejší věci ze síťařiny přijde v seriálu ještě řeč později.
Chcete pomoci s návrhem on-premise řešení IaaS postaveným na Azure Pack/Stack, OpenStack nebo VMware? Potřebujete poradit s migrací aplikací a nasazením v Azure cloudu? HPE má certifikované Microsoft architekty a konzultanty a můžete také využít plně konvergovaných systémů pro vaše on-premise potřeby.