VPN

Co je VPN

VPN neboli Virtual Private Network je služba, díky které je možné uskutečnit bezpečné a šifrované připojení mezi uživatelem a sítí, nebo mezi dvěma sítěmi. VPN používáme, jelikož si například chceme dopřát větší soukromí a anonymitu online. Případně můžeme obejít blokování nebo cenzuru, která se zakládá na zeměpisné poloze a vyskytuje se třeba u Netflixu. Zjednodušeně VPN rozšiřuje soukromou síť skrz veřejnou a díky tomuto je nám umožněno bezpečné přijímání a odesílání dat přes internet. VPN se často používá například v kavárně s veřejnou wifi. Protože používáme VPN na veřejné wifi, tak Internet Service Provider (ISP) nemá zas takový přehled o vašich aktivitách jako kdyby jste používal veřejnou wifi bez VPN. Dokonce některé wifi access pointy, které nejsou až tak chráněné jsou pro nás nebezpečné, protože je může použít útočník, aby získal vaše osobní údaje. Pomocí VPN můžeme změnit zeměpisnou polohu, skrýt historii prohlížeče, naší IP adresu, naše aktivity na internetu nebo jaká zařízení používáme. Jinak řečeno lidé ve stejné síti nebudou moci vidět, co děláte, když používáte VPN. Pro odesílání dat VPN používá tunneling protokoly jak na odesílající straně pro šifrování, tak i na přijímací pro dešifrování.

Jak VPN funguje

Na nejvíce basic úrovni VPN tunneling vytváří point-to-point připojení, ke kterému mají přístup jen oprávnění uživatelé. K vytvoření takového tunelu je použito tunneling protokol přes již existující sítě. Typ používaného tunneling protokolu může záviset i na tom jaký operační systém je používán. Na koncovém zařízení musí být vždy spuštěn VPN client ať už lokálně nebo na cloudu. Takovýto klient je spuštěn na pozadí a není pro uživatele nijak znatelný, pokud nám nezpůsobuje problémy s výkonem. Takto se pomocí VPN tunelu můžeme připojit k jiné síti, zašifrovat data a skrýt naši IP adresu. Díky tomuto jsme chráněni před útočníky, kteří doufají v to, že získají přístup k našim osobní informacím nebo aktivitám. Tunel nás tedy připojí k výchozím bodům na jiném místě, a tak se se nám jeví, že se nacházíme na úplně jiném místě. Jelikož VPN jsou rozmístěny různě po celém světě, tak to může vypadat, že se nacházíte v jakékoliv z těchto lokalit. Kill switch je často poslední možné zabezpečení. Kill switch se používá, když dojde k přerušení spojení VPN. V tuto chvíli kill switch za účelem zabránění odhalení IP adresy, automaticky odpojí zařízení od internetu. A teď na typy kill switchů. Mámě přesně dva typy. A to Active kill switch protocols a Passive kill switch protocols. Active kill switch protocols zamezí připojení na rizikové sítě, když jste připojení k VPN. A Passive kill switch protocols zabraňuje, aby se vaše zařízení připojilo k jiným non-VPN spojením, i když jste odpojen od VPN serveru.

VPN protokoly

VPN protokol je sada pravidel, které stanovují, jakým způsobem budou vaše data přenášená mezi VPN serverem a vaším zařízením. VPN provideři se tak spoléhají na protokoly, aby zajistili stabilní a bezpečné připojení. K zabezpečení dat můžeme použít několik různých protokolů jako IP security (IPsec), Secure Socket Layer (SSL), Transport Layer Security (TLS), Point-to-Point Tunneling Protocol (PPTP), Layer 2 Tunneling Protocol (L2TP).

IP security (IPsec)

Tato sada protokolů ověřuje a šifruje data a také zabezpečuje bezpečnou šifrovanou komunikaci mezi dvěma PC v síti.

Secure Socket Layer (SSL)

Tento protokol byl vyvinut pro bezpečné odesílání informací. Mnoho webů používá tento protokol u oblastí, které potřebují ochranu, například když se přihlašujete nebo když platíte online. Takže když se přihlašujete, tak jste chráněni pomocí SSL. Tento protokol se již nepoužívá.

Transport Layer Security (TLS)

Jako u SSL tento protokol je určen pro bezpečné odesílání informací na webu. Tento protokol je velmi používán například u mailů, nebo posílání zpráv. Bohužel je veřejně nejviditelnější, když se používá při HTTPS..TLS se skládá z TLS record a TLS handshake.

Point-to-Point Tunneling Protocol (PPTP)

Tento protokol, který používá již zastaralou metodu zavedení VPN. PPTP používá TCP a Generic Routing Encapsulation k zapouzdření paketů. Oproti moderním VPN používá zastaralou metodu, ty novější již používají různé formy UDP. Bohužel, protože je tento protokol zastaralý, tak má mnoho známých bezpečnostních problémů.

Layer 2 Tunneling Protocol (L2TP)

Tento protokol je používán pro provoz VPN. L2TP je velmi podobný Data Link vrstvě v OSI modelu. Aby byla možná komunikace L2TP používá UDP, jelikož zde není potřeba žádné zabezpečení dat, a proto se často s L2TP používá šifrovací protokol IPsec.

Výhody a nevýhody používání VPN

Mezi výhody používání VPN patří možnost si skrýt IP adresu uživatel, skrýt historii prohlížeče, bezpečné připojení se šifrovanými daty, změna zeměpisné lokace. Mezi problémy můžeme zařadit, že VPN nemusí podporovat všechna zařízení, nechrání před každou hrozbou a může zpomalit rychlost internetu. Často je doporučováno přidání SDP do infrastruktury pro ochranu VPN. Takto se může snížit potencionální útoky. Díky SDP mají organizace možnost použití zero-trust model pro přístup k lokální a cloudovým síťovým prostředím.

Typy VPN

Když jde o nasazení VPN, tak zde máme několik možností. A to Remote access VPN, Site-to-Site VPN, Mobile VPN, Hardware VPN, VPN appliance a Dynamic multipoint virtual private network (DMVPN).

Remote access VPN

Uživatelé se vzdáleným přístupem se připojují na gateway VPN, který vyžaduje ověření identity před tím než povolí přístup k interním síťovým zdrojům. Tento typ protokolu se často spoléhá na ochranu připojení pomocí protokolů IPsec nebo SSL.

Site-to-Site VPN

Site-to-Site VPN používá gateway zařízení k připojení celé sítě v jedné lokaci k síti, která se nachází zcela na jiném místě. Proto koncová zařízení, která jsou ve vzdálené lokalitě nepotřebují VPN klienta, protože o připojení se stará gateway. Většina Site-to-Site VPN používají pro připojení IPsec. Také je časté, že se používá MPLS neboli Multiprotocol Label Switching pro přenos site-to-site.

Multiprotocol Label Switching (MPLS)

MPLS je směrovací metoda, která posílá data z jednoho bodu do druhého na základě short path označení místo dlouhých síťových adres, díky tomuto se vyhneme složitému vyhledávání ve směrovací tabulce neboli v routing table a tímto urychlujeme přenos. Tyto označení identifikují virtuální spoje mezi vzdálenými body, nikoliv koncovými.Dokonce MPLS může zapouzdřit pakety různých síťových protokolů.

Mobile VPN

V mobile VPN se server nachází na okraji sítě a umožňuje bezpečný tunnel-access, který je přístupný ověřeným zařízením. Mobile VPN nejsou nijak vázány na fyzické IP adresy, místo toho vázán na logical-IP adresu, která zůstává mobilnímu zařízení. Aby byla Mobile VPN efektivní, tak musí poskytovat uživatelům nepřetržité služby a přepínat mezi access technologiemi a více veřejnými a soukromými sítěmi.

Hardware VPN

Hardware VPN má mnoho výhod oproti software-based VPN. Například kromě vyššího zabezpečení mohou hardware VPN vyrovnávat zátěže při velkém zatížení. Hardware VPN je dražší než softwarová, ale i když je dražší, tak jsou vhodnější pro větší podniky.

Dynamic multipoint virtual private network (DMVPN)

DMVPN vyměňuje data mezi jednotlivými místy, aniž by musela server VPN nebo router. DMVPN vytváří síťovou službu VPN, která běží na VPN routerech. Každý vzdálený bod má nakonfigurovaný router tak, aby se připojil k zařízení a poskytl přístup k dostupným zdrojům.

PPVPN services

PPVPN sítě VPN, které využívají především firmy zaměstnancům bezpečný vzdálený přístup do firemní sítě.PPVPN se také často používají k bezpečnému propojení fyzicky oddělených sítí a lokalit mezi sebou pomocí internetu.

OSI Layer 2 service

Virtual private LAN service (VPLS)

VPLS je služba, která podporuje připojení více webů v jedné doméně pomocí MPLS. VPLS poskytuje ethernetové rozhraní, čímž umožňuje flexibilní poskytování služeb, protože bandwidth není vázán na fyzické rozhraní.

OSI Layer 3 PPVPN

BGP/MPLS PPVPN

BGP/MPLS je služba, která pokrývá síť pouze jednoho provozovatele. Neboli je základní síť MPLS, která nepokrývá více domén. Tato služba přenáší pakety pomocí protokolu BGP. Zapouzdřuje a přenáší pakety VPN přes MPLS, které slouží jako tunely veřejné sítě.

Virtual router PPVPN

Tato služba narozdíl od BGP/MPLS nevyžaduje úpravy směrovacích protokolů jako je BGP. Tím, že je uživateli poskytnuta nezávislá směrovací doména, tak je odpovědný za příslušnou oblast. V MPLS tunelech jsou různé PPVPN sítě rozlišeny pomocí označení.

WireGuard

Teď si tady ukážeme jak nainstalovat WireGuard na Ubuntu 18.04 a nastavit ho tak, aby se choval jako server.

Instalace WireGuard

user:~$ sudo apt update
user:~$ sudo apt install wireguard

Toto byste měli vidět jestli jste uspěli s instalací.

wireguard:

Running module version sanity check.

- Original module

- No original module exists within this kernel

- Installation

- Installing to /lib/modules/4.15.0-166-generic/updates/dkms/


depmod...


DKMS: install completed.

Setting up wireguard (1.0.20200513-1~18.04.2) ...

Processing triggers for libc-bin (2.27-3ubuntu1.2)

Konfigurace WireGuard

Aby jsme mohli vygenerovat public a private klíče budeme potřebovat jeden z těchto dvou příkazů wg nebo wg-quick. Zde použijeme příkaz s wg.

user:~$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Tyto soubory jsou uložené v /etc/wireguard a můžete si je zobrazit pomocí cat.

user:~$ sudo cat /etc/wireguard/privatekey
[sudo] password for user:
—------privatekey—-------
user:~$ sudo cat /etc/wireguard/publickey
—------publickey—-------

Tak teď, když už máme vygenerované naše klíče, tak budeme potřebovat nakonfigurovat tunnel zařízení, které bude směrovat VPN provoz. Toto zařízení může nastavit pomocí příkazů ip a wg. Nebo ho můžeme nakonfigurovat pomocí vytvoření konfiguračního soubor. My použijem způsob přes vytvoření konfiguračního souboru. Takže vytvoříme soubor wg0.conf v /etc/wireguard.

user:~$ sudo nano /etc/wireguard/wg0.conf

Do tohoto souboru přidáme obsah, který není zvýrazněn.

GNU nano 2.9.3
 /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE§

Soubor zavřeme a uložíme pomocí ctrl+x -> Y -> Enter.

Naše rozhraní můžeme pojmenovat jakýmkoliv způsobem, ale je doporučeno wg0.conf. Adresu 10.0.0.1/24 jsem použil, jelikož je v rozmezí, které je vyhrazené pro privátní sítě. Toto rozmezí je -> 10.0.0.0/8, 172.16.0.0/12 nebo 192.168.0.0/16. Můžete použít jakoukoliv adresu z tohoto rozhraní to je již zcela na vás.Ještě nezapomeňte si vyměnit SERVER_PRIVATE_KEY ve vašem souboru za ten co jste si vygenerovali. Zde máte příkaz, kterým si ho může vypsat.

user:~$ sudo cat /etc/wireguard/privatekey
[sudo] password for user:
—------privatekey—-------

Tak teď si vysvětlíme co znamenají SaveConfig, ListenPort, PostUp, PostDown.

SaveConfig - když je nastaven na true, tak se aktuální stav rozhraní uloží do konfiguračního souboru při vypnutí. Když je nastaveno na false, tak se nic neděje.

ListenPort - Port na kterém bude přijímat příchozí připojení.

PostUp - příkaz, který je proveden před tím než je nahozeno rozhraní. Například tento příkaz, který používáme nám dovolí, aby provoz opustil server, a tak umožnit přístup k internetu.

PostDown - příkaz, který se spustí před tím než je schozeno rozhraní. Pravidla iptables jsou odstraněna, když je rozhraní vypnuté.

Také by bylo dobré použít chmod 600. Jelikož wg0.conf a privatekey by neměly být viditelné pro normální uživatelé. Proto použijte tento příkaz pro ochranu těchto souborů.

user:~$ sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Teď si pomocí příkazu wg-quick up zprovozníme rozhraní pomocí atributů, které máme v konfigurační souboru.

user:~$ sudo wg-quick up wg0

Poté co provedli příkaz, tak by se vám mělo zobrazit něco podobné tomuto.

[sudo] password for user:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Po tomto si můžete zobrazit stav rozhraní a konfigurace pomocí příkazu wg show.

user:~$ sudo wg show wg0
interface: wg0
public key: JzCpm9oXlUiK4awto22Xdot1kpvYwiXCoUIYiqiHWTM=
private key: (hidden)
listening port: 51820

Dokonce si můžete zkontrolovat stav rozhraní pomocí příkazu ip a show.

user:~$ ip a show wg0
7: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever

A pokud chcete při spuštění vyvolat WireGuard rozhraní, tak vám stačí tento příkaz.

user:~$ sudo systemctl enable wg-quick@wg0
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /lib/systemd/system/[email protected].

A nakonec pro shození rozhraní použijeme příkaz wg-quick down.

edin:~$ sudo wg-quick down wg0
[#] wg showconf wg0
[#] ip link delete dev wg0
[#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

results matching ""

    No results matching ""