Jak zabezpečit telefon pomocí šifrovaného tunelu a OpenVPN

30. 3. 2016 | Jindřich Zechmeister

Zahajujeme minicyklus návodů na využití OpenVPN pro běžné uživatele. Dnešní článek vám pomůže zabezpečit datové připojení vašeho chytrého telefonu šifrováním. Vytvoříme si šifrovaný tunel k routeru nebo serveru a přesměrujeme přes něj veškerou komunikaci. Dnešní návod je obecně platný, protože úprava konfiguračních souborů není závislá na typu zařízení.

Proč použít šifrovaný tunel?

Rizikem datové komunikace vašeho telefonu je skutečnost, že se často připojujete mimo důvěryhodnou síť. Jistě jste už někdy zaznamenali bezpečnostní varování vyzývající k obezřetnosti na veřejných WiFi hotspotech. Důvodem je snadnost odposlechu takové komunikace. Stačí být s vašim telefonem v jedné síti a odposlech lze provést i bez speciálních nástrojů. Samozřejmě můžete myslet i na ochranu před profesionály, například z "třípísmenných" agentur jako NSA.

Jak funguje VPN

Princip VPN spočívá v tunelování komunikace mezi jedním počítačem a nějakým serverem. Je jedno, kudy data "fyzicky tečou", protože jsou mezi těmito dvěma body šifrovány. Z kavárny (nebo jiného veřejného místa) se tak můžete připojit šifrovaně na svůj server a surfovat z něj; komunikace je v tunelu šifrovaná a nikdo ji nedokáže změnit či odposlouchávat.

V tomto návodu je tunel realizován mezi vaším telefonem a routerem (serverem), na kterém běží OpenVPN a šifrování probíhá pomocí SSL/TLS. "Konec tunelu" můžete mít doma (v případě routeru) nebo v datovém centru, které by mělo být řádně zabezpečeno. 

Na závěr úvodu je nutné zmínit, že router musí podporovat OpenWRT. To není běžné, ale takové stroje existují, například router Turris od CZ.NIC a některé pokročilejší zařízení. Na routery jiných značek je možné si místo firmwaru z výroby OpenWRT nahrát (omezením bývá většinou jen paměť zařízení). Blízká budoucnost přinese i běžným zákazníkům pokročilý router Turris Omnia, na kterém můžete VPN rovněž využít. Pokud takový router nemáte, můžete využít linuxový virtuální server.

Prekvizity návodu jsou tedy router s podporou OpenWRT (server) a smartphone s nainstalovanou aplikací OpenVPN. Na platformě nezáleží, stačí mít aplikaci v telefonu.

Nastavení na routeru

Na routeru se VPN nastavuje pomocí konfiguračního souboru OpenVPN (umístění na routeru/serveru se může lišit podle použitého systému). Je to rychlejší a jednodušší, než nějaký grafický "klikací" průvodce nastavením. Připojte se na router přes SSH, nainstalujte balík OpenVPN, vygenerujte certifikáty a upravte konfigurační soubor.

Připojení na server

ssh root@192.168.1.1

Nainstalujte potřebné balíky:

opkg update
opkg install openvpn-openssl openvpn-easy-rsa

Generování certifikátů

Nejvíce času trvá u nastavení OpenVPN vygenerování certifikátů pro server a klienty (každý z nich by měl mít vlastní). 

Vygenerujte DH parametry a certifikáty. U certifikátů budete požádáni o uvedení jejich detailů, podobně jako když generujete CSR. Vygenerování DH parametrů trvá i u výkonného routeru několik minut; nepanikařte a terminál s SSH nevypínejte.

build-ca
build-dh
build-key-server server
build-key client

Certifikáty přesuňte

cd /etc/easy-rsa/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn

Pak je třeba uložit si certifikáty lokálně; můžete je stáhnout (například přes FileZillu) nebo zobrazit v terminálu (nano /etc/openvpn/ca.crt a další) a uložit přes Ctrl+C a V. Budete potřebovat certifikát CA, certifikát klienta a jeho privátní klíč.

Konfigurační soubor serveru

V případě zmíněného routeru Turris je konfigurace umístěná v souboru /etc/config/openvpn. Je poměrně rozsáhlý, proto hledejte konkrétní položky pro změnu. Obsah konfiguračního souboru doporučuji postupně upravovat a položky, které neznáte, doporučuji neměnit.

Konfigurační soubor otevřete příkazem nano /etc/config/openvpn. Pak upravte jednotlivé položky.

Konfiguraci uložte. Aktivní se stane po povolení a restartu služby v dalších krocích.

Úprava firewallu a rozhraní sítě

V případě použití routeru s OpenVPN je také potřeba upravit konfiguraci firewallu a povolit port 1194. Opět vše dělejte přímo v konfiguračních souborech.

Otevřete konfiguraci firewallu nano /etc/config/firewall a do zóny lan přidejte řádek list network ‘vpn’ .

config zone option name 'lan'
list network 'lan'
list network 'vpn'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'

Na konec konfigurace přidejte pravidlo otevírající port 1194 pro službu.

config rule
option name 'OpenVPN'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'

V souboru nastavení sítě přidejte rozhraní vpn.

nano /etc/config/network
config interface 'vpn'
option ifname 'tun0'
option proto 'static'
option ipaddr '10.8.0.1'
option netmask '255.255.255.0'

Nyní můžete všechny služby restartovat a OpenVPN bude aktivní.

/etc/init.d/network restart
/etc/init.d/firewall restart
/etc/init.d/openvpn enable
/etc/init.d/openvpn start

Nastavení na mobilním telefonu

Pro použití šifrovaného tunelu na vašem mobilu slouží aplikace OpenVPN. Tu si najdete a stáhněte. VPN tunel se nenastavuje v aplikaci, ale je potřeba do telefonu dostat konfigurační soubor s příponou .opvn a ten v aplikaci otevřít. Máte-li iPhone, stačí soubor .opvn přetáhnout do telefonu v iTunes. Ještě jednodušší je poslat si .opvn soubor e-mailem a v telefonu tento soubor otevřít pomocí aplikace OpenVPN. Aplikace vám pak nabídne jeho uložení, viz screenshot.

Můj soubor s nastavením pro iPhone si můžete stáhnout zde; IP adresu routeru je pochopitelně nutné nahradit veřejnou IP routeru (kterou máte například od UPC) a použít certifikáty vygenerované na serveru. Certifikáty vygenerované na serveru si uložte lokálně (můžete použít například SSH) a vložte je na označená místa v .opvn souboru.

Soubor .opvn dostaňte do telefonu (mailem, nebo přes již zmíněné iTunes). Aplikace OpenVPN si konfigurační soubor načte a umožní vám přepínačem tunel zapnout. Po úspěšném spojení uvidíte objem "tekoucích" dat. Aplikace OpenVPN zobrazuje jen jeden profil nastavení; pokud jich potřebujete více, naimportujte je do OpenVPN a pak přepíjejte přes nastavení systému (u iPhonu samostatné menu VPN). Takto můžeme mít v telefonu víc nastavení.

Spojení v aplikaci OpenVPN v iPhonu a stejné (sdílené) nastavení VPN v systému iOS 9. V iOS můžete přepínat mezi více profily, které se následně objeví v OpenVPN. Tam je vidět pouze jeden profil VPN.

Kontrola spojení

Máte-li tunel aktivní, musíte se po jeho připojení nacházet v DHCP rozsahu vašeho routeru, stejně jako byste surfovali doma. Nacházíte se "za ním" a musíte mít stejnou veřejnou IP adresu, jako ostatní počítače v domácnosti. Veřejnou IP adresu si zkontrolujte například na webu whatismyip.cz. Po vypnutí VPN se adresa změní na jinou. Pokud se IP adresa nemění, tak je potřeba upravit nastavení OpenVPN, protože nedochází k přesměrování všech síťových spojení. Aktivní spojení samozřejmě ukáže i váš telefon - v případě iPhonu malou ikonou VPN ve stavovém řádku. O průběhu spojení se můžete přesvědčit i v samotné aplikaci OpenVPN.



Gratuluji, nyní máte nastaven šifrovaný tunel k domácímu routeru a surfujete bezpečně jako doma. Webové stránky i e-maily jsou přenášeny šifrovaně na router a z něj dále do internetu; stejně, jako byste seděli doma ve svém oblíbeném křesle.

Více informací:

  1. OpenVPN Wiki, OpenVPN Setup Guide for Beginners.
  2. Fórum Turris.
  3. Návod Nastavení OpenVPN na Turris routeru

V dalších dílech seriálu se podíváme na použití OpenVPN ve Windows a na Macu s OSX.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz