Azure Programming

Vlastní VPN pro studenty

a 

6 min čtení

Lidé si stahují VPN aplikace za účelem ochrany před špehováním v online světě. Některým se ale nelíbí předat ochranu svých údajů poskytovateli, nad kterým nemají žádnou kontrolu. Proto si vytváří vlastní VPN službu, zde je návod, jak si takovou službu vytvořit pomocí cloudové služby Microsoft Azure.

Úvod o VPN

Lidé mají stále větší strach o své soukromí v online světě. Nepříjemné špehování zlomyslných stránek a nebezpečí otevřených WiFi sítí vede lidi, aby si stahovali VPN aplikace ze snahy se nějak ochránit. Někteří chtějí mít ale tuto službu pod svou kontrolou, a proto si vytvářejí vlastní virtuální privátní sítě na vlastní infrastruktuře. Většina studentů, ale nemá prostředky mít svůj vlastní server. Jde to ale i jinak pomocí technologií Cloudu. Zde je návod, jak si takovou službu může student sám vytvořit pomocí bezplatné služby Azure Virtual Machines.

Předpokladem pro tento článek je, že maté již vytvořený účet se studentskou subskripcí, pokud ne, návod najdete v článku Aktivace Azure for Students.

Auto deployment

Nově není třeba procházet celým návodem, ale stačí automaticky nasadit pomocí ARM templatu. Je to snadnější a rychlejší. Odkaz na template naleznete na GitHubu.

Pro přidání uživatelů VPN je třeba se přes Azure Cloud Shell připojit do virtuálního přístroje příkazem:

ssh azurevpn@$pubip

Poté spusťte příkaz:

./wireguard-install.sh

Do částí client’s name zadejte vlastní jméno pro zařízení, ostatní neměňte.

Až se na obrazovce objeví QR kód (v případě potřeby lze okno terminálu rozšířit) můžete přejít na část Připojení k mobilu nebo Připojení k počítači, u připojení k počítači použijte pro jméno uživatele azure VPN a veřejná IP adresa serveru $pubip.

Tvorba virtuálního počítače

Začneme tvorbou samotného virtuálního počítače, na kterém služba poběží.

Do vyhledávacího pole, zadáme bezplatné služby a vybereme první možnost.

Portál Azure, do vyhledávacího pole píšeme bezplatné služby.
Portál Azure, do vyhledávacího pole píšeme bezplatné služby.

V následujícím okně vybereme Linuxový virtuální počítač.

Portál Azure, vybíráme bezplatnou službu linuxový virtuální počítač
Portál Azure, vybíráme bezplatnou službu linuxový virtuální počítač

Bude třeba vytvořit novou skupinu prostředků, zadejte jméno nové skupiny a klikněte na OK.

Konfigurace nového virtuálního počítače na portálu azure - vytvoření nové skupiny prostředků
Konfigurace nového virtuálního počítače na portálu azure - vytvoření nové skupiny prostředků

Dále zadejte název virtuálního počítače.

Portál Azure. Konfigurace virtuálního počítače - zadání názvu virtuálního počítače.
Portál Azure. Konfigurace virtuálního počítače - zadání názvu virtuálního počítače.

Jako obraz vyberte Ubuntu Server 16.04-LTS – Gen 1

Konfigurace virtuálního počítače - výběr linuxové distribuce
Konfigurace virtuálního počítače - výběr linuxové distribuce

Zadejte uživatelské jméno a heslo, které použijete pro přihlášení do virtuálního počítače.

Portál Azure. Konfigurace virtuálního počítače - nastavení administrátorského účtu
Portál Azure. Konfigurace virtuálního počítače - nastavení administrátorského účtu

Ostatní možnosti nechte, jaké jsou, jen zkontrolujte, zda v poli Vyberte příchozí porty je vybrán port SSH.

Klikněte na tlačítko Zkontrolovat a Vytvořit, pak na vytvořit.

Portál Azure. Stránka s přehledem konfigurace VM
Portál Azure. Stránka s přehledem konfigurace VM

Po kliknutí na tlačítko Vytvořit budete přeneseni na stránku kde bude probíhat nasazení.

Stránka informuje o nasazení VM
Stránka informuje o nasazení VM

Nastavení IP adresy a připojení

Nastavení IP adresy

Po úspěšném nasazení se vám objeví tlačítko Přejít k prostředku. Klikněte na něj.

Stránka s nasazenou VM
Stránka s nasazenou VM

Přejdete na přehled vašeho virtuálního počítače. Vpravo klikněte na odkaz pod nadpisem Veřejná IP adresa.

Přehled VM
Přehled VM

Budete přeneseni na stránku nastavení Veřejné IP adresy vašeho virtuálního počítače. Veřejná IP adresa je adresa, která je přístupná z veřejného internetu. Pomocí ní se pak můžeme připojit k virtuálnímu počítači.

Portál Azure. Stránka konfigurace veřejné IP adresy
Portál Azure. Stránka konfigurace veřejné IP adresy

Ve volbě Přiřazení IP adresy, změníme možnost z Dynamická na Statická, to znamená, že i když nebude IP adresa nějakou dobu používaná, po novém přiřazení se nezmění.

Prostředí Portál Azure. Zvýraznění změny nastavení
Prostředí Portál Azure. Zvýraznění změny nastavení

Klikneme na Uložit a IP adresu zkopírujeme.

Připojení

Na počítači otevřeme Terminál. Pro starší verze Windows, otevřeme Příkazový řádek, postup bude ale pořád stejný.

Vyhledání Windows Terminal
Vyhledání Windows Terminal

Zadáme příkaz:

ssh <jméno uživatele>@<zkopírovaná veřejná IP adresa>

Terminálové okno s příkazem. Tvorba VPN
Terminálové okno s příkazem. Tvorba VPN

Při prvním připojením příkaz vypíše, že nelze ověřit autenticitu hosta, stačí zadat yes, při dalším připojení už dotazováni nebudeme.

Terminálové okno s potvrzením k  připojení
Terminálové okno s potvrzením k připojení

Následuje dotaz na heslo. Pozor, při psaní hesla se nezobrazují napsané znaky.

Instalace pomocí skriptu

Výborně, jsme už připojeni k počítači, teď je na čase nainstalovat samotnou službu.

Je to velmi jednoduché, protože většinu nastavení za nás udělá skript.

Zadejte tyto příkazy za sebou:

// Stáhne skript do počítače curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh // Nastaví skript jako spustitelný soubor chmod +x wireguard-install.sh // Spustí skript sudo ./wireguard-install.sh

Skript se nás na začátku zeptá na pár věcí. Jediná věc, kterou musíme změnit je ta první. A to veřejná IP adresa, tu přepíšeme na veřejnou adresu virtuálního počítače (ta pomocí které jsme se připojili do virtuálního počítače)

Nastavení pomocí skriptu, zadání veřejné IP adresy
Nastavení pomocí skriptu, zadání veřejné IP adresy
Nastavení pomocí skriptu, změněná veřejná IP adresa
Nastavení pomocí skriptu, změněná veřejná IP adresa

Ostatní možnosti není třeba měnit, stačí odentrovat. Jenom si někam zapište Port.

Dokončení zadávání informací, zvýrazněný ve výpisu  řádek s portem.
Dokončení zadávání informací, zvýrazněný ve výpisu řádek s portem.

Skript spustíme stiskem jakékoliv klávesy, ten začne stahovat vše potřebné a provede instalaci.

Čekání na spuštění skriptu uživatelem
Čekání na spuštění skriptu uživatelem

Instalace bude dokončená, když se nás skript začne ptát na nastavení prvního uživatele.

Dokončení instalace. Nastavení prvního uživatele.
Dokončení instalace. Nastavení prvního uživatele.

Zadáme tedy jméno prvního uživatele. Zbytek můžeme nechat být.

Vyplněné informace
Vyplněné informace

Na obrazovce se nám vygeneruje QR kód. Ten můžeme naskenovat pomocí mobilní aplikace. Protože nastavení ještě není hotové a VPN by nefungovala, necháme si to na později. Terminál s QR kódem nezavíráme, jinak bychom o QR kód přišli a museli bychom vytvořit uživatele znova.

Vygenerovaný QR kód
Vygenerovaný QR kód

Nastavení Firewallu

Vrátíme se do okna prohlížeče, a z nastavení IP adresy se vrátíme na nastavení virtuálního počítače.

V sekci sítě, klikneme na tlačítko: Přidat pravidlo portu pro příchozí spojení.

Portál Azure, nastavení VPN VM, sekce Sítě
Portál Azure, nastavení VPN VM, sekce Sítě

Do možnosti Rozsahy cílových portů, napíšeme Port, který jsme si zapsali z instalace služby.

Protokol nastavíme na UDP, a změníme název.

Portál Azure, okno přidání nového pravidla
Portál Azure, okno přidání nového pravidla

Klikneme Přidat a v Azure portálu máme hotovo.

Portál Azure, okno s přidaným pravidlem.
Portál Azure, okno s přidaným pravidlem.

Vrátíme se do terminálu a zadáme příkaz: sudo reboot

Tím se počítač restartuje. Můžeme se do něj znova připojit, není to ale třeba, jen kdybychom chtěli přidat dalšího uživatele by bylo třeba se znovu připojit.

Připojení VPN k mobilu

Připojení k mobilu je velmi jednoduché, stačí nainstalovat mobilní aplikaci:

Google Play Store, aplikace pro Android.
Google Play Store, aplikace pro Android.

V aplikaci klepnout na tlačítko přidat:

Úvodní obrazovka aplikace WireGuard
Úvodní obrazovka aplikace WireGuard

Poté pojmenovat připojení:

WireGuard, přidání nového připojení, zadávání jména
WireGuard, přidání nového připojení, zadávání jména

Zvolit možnost naskenovat QR kód. Z QR kódu aplikace přečte konfiguraci.

WireGuard, výběr způsobu přidání
WireGuard, výběr způsobu přidání
Skenování QR kódu pomocí aplikace WireGuard
Skenování QR kódu pomocí aplikace WireGuard

To je vše. Pomocí přepínače lze VPN zapínat a vypínat.

WireGuard, okno po přidání připojení.
WireGuard, okno po přidání připojení.

Připojení PC k VPN

Připojení počítače k VPN je trochu složitější. Ale taky to není nic hrozného. Přes terminál se připojíme k virtuálnímu počítači a znovu spustíme skript (příkaz: sudo ./wireguard-install.sh). Zadáme zase nové jméno, ostatní můžeme nechat. Vygeneruje se nám QR kód, který tentokrát nevyužijeme, ale potřebujeme řádek pod QR kódem, kde je napsaná cesta ke konfiguračnímu souboru.

Terminál, cesta k souboru pod vygenerovaným QR kódem.
Terminál, cesta k souboru pod vygenerovaným QR kódem.

Teď pomocí příkazu:

scp <jméno uživatele>@<veřejná ip adresa serveru>:<cesta ke konfiguračnímu souboru> „<kam chceme soubor stáhnout do našeho počítače>“

Terminál s příkazem pro stáhnutí konfiguračního souboru do počítače
Terminál s příkazem pro stáhnutí konfiguračního souboru do počítače

Zkontrolujeme, že soubor máme. Těžká část je za námi, teď už to bude jednoduchý.

Stažený konfigurační soubor na ploše
Stažený konfigurační soubor na ploše

Stáhneme si z webu Wireguard, aplikaci pro náš operační systém. https://www.wireguard.com/install/

Stránka se stažením pro Windows
Stránka se stažením pro Windows

Nainstalujeme a spustíme. V aplikaci klikneme na Importovat tunel(y) ze souboru.

Okno aplikace WireGuard pro Windows.
Okno aplikace WireGuard pro Windows.

V okně vybereme konfigurační soubor, který jsme stáhli.

Výběr konfiguračního souboru
Výběr konfiguračního souboru

Klikneme na Otevřít a máme hotovo, stačí kliknout na Aktivovat a jsme připojeni.

WireGuard, aktivace připojení
WireGuard, aktivace připojení

Jak to funguje

Wireguard je komunikační protokol. Stejně tak, jak používáme HTTP pro komunikaci s webovými stránkami, nebo FTP pro přenos souborů, tak Wireguard se používá pro vytvoření šifrovaného tunelu mezi poskytujícím serverem a klientským zařízením. Stručně to znamená, že se pomocí tohoto protokolu můžeme připojit z jakéhokoliv zařízení, které má přístup k internetu, do vlastní sítě.

VPN server, v našem případě běžící na Azure, funguje jako brána do této vnitřní sítě a zajišťuje zabezpečení, a hlavně šifrování komunikace. V praxi se to běžně používá ve firmách, např. když se chce zaměstnanec mimo kancelář připojit do vnitřní firemní sítě, připojí se pomocí VPN a získá tak přístup třeba k firemnímu uložišti, ke kterému má běžně přístup jen z kancelářského PC.

My používáme tuto funkci trochu jinak, stále využíváme prvků zabezpečení a šifrování, ale místo připojení k prostředkům na vnitřní síti, všechna data, která by putovala z našeho zařízení na internet, nejdříve projdou šifrovaným tunelem na náš server, odkud jsou dál poslána na internet. Takže kdyby například někdo zachytával nešifrovaná data na veřejné wi-fi, tak by od nás nic nedostal, protože by byla zašifrovaná. Dešifrují se až když dorazí na server, kde už ale hacker nemůže nic zachytit.

Shrnutí tvorby vlastní VPN

A máme hotovo. Nyní máme vlastní VPN službu, ke které můžeme připojit kolik zařízení chceme a naše údaje o používání jsou v našich rukou. Na veřejných sítích se můžeme cítit bezpečněji a nemusíme se bát, že naše údaje někdo zneužívá.