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, tak zde je jiný článek z našeho blogu s návodem, jak na to.
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.
V následujícím okně vybereme Linuxový virtuální počítač.
Bude třeba vytvořit novou skupinu prostředků, zadejte jméno nové skupiny a klikněte na OK.
Dále zadejte název virtuálního počítače.
Jako obraz vyberte Ubuntu Server 16.04-LTS – Gen 1
Zadejte uživatelské jméno a heslo, které použijete pro přihlášení do virtuálního počítače.
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.
Po kliknutí na tlačítko Vytvořit budete přeneseni na stránku kde bude probíhat nasazení.
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.
Přejdete na přehled vašeho virtuálního počítače. Vpravo klikněte na odkaz pod nadpisem Veřejná IP adresa.
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.
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í.
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ý.
Zadáme příkaz:
ssh <jméno uživatele>@<zkopírovaná veřejná IP adresa>
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.
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)
Ostatní možnosti není třeba měnit, stačí odentrovat. Jenom si někam zapište Port.
Skript spustíme stiskem jakékoliv klávesy, ten začne stahovat vše potřebné a provede instalaci.
Instalace bude dokončená, když se nás skript začne ptát na nastavení prvního uživatele.
Zadáme tedy jméno prvního uživatele. Zbytek můžeme nechat být.
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.
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í.
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.
Klikneme Přidat a v Azure portálu máme hotovo.
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:
V aplikaci klepnout na tlačítko přidat:
Poté pojmenovat připojení:
Zvolit možnost naskenovat QR kód. Z QR kódu aplikace přečte konfiguraci.
To je vše. Pomocí přepínače lze VPN zapínat a vypínat.
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.
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>“
Zkontrolujeme, že soubor máme. Těžká část je za námi, teď už to bude jednoduchý.
Stáhneme si z webu Wireguard, aplikaci pro náš operační systém. https://www.wireguard.com/install/
Nainstalujeme a spustíme. V aplikaci klikneme na Importovat tunel(y) ze souboru.
V okně vybereme konfigurační soubor, který jsme stáhli.
Klikneme na Otevřít a máme hotovo, stačí kliknout na Aktivovat a jsme připojeni.
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á.