Instalace OpenVPN - server

Svůj život bez OpenVPN si dnes už nedokáži představit. Proto sepisuji krátký návod, který může být vodítkem pro každého, který si chce OpenVPN server nainstalovat a využívat tak jeho možností a vlastností jako já. Následující zkušenosti jsem nabyl z dnes již legendární knihy OpenVPN - Building and Integrating Virtual Private Networks z nakladatelství Packt Publishing. Tuto knihu určitě doporučuji zakoupit a prostudovat, pokud chcete konfiguraci vyladit a návody na Internetu k tomu nestačí.

Předpoklady

  • Počítač, optimálně s nainstalovaným OS GNU/Linux (například Ubuntu)
  • Veřejnou IP adresu, nebo...
  • ...v případě počítače za NATem přesměrování portů na tento počítač (implicitně 1194)
  • Administrátorský přístup k počítači

Instalace

Máme linuxový stroj, který má možnost odpovídat na portu 1194. Nyní nainstalujeme program OpenVPN, v Ubuntu je to balík openvpn, takže buď pomocí synapticu nebo v příkazové řádce:

sudo apt-get install openvpn openssl

Generování certifikátů

Komunikace přes VPN má samozřejmě smysl hlavně když je šifrovaná, takže budeme potřebovat vygenerovat certifikáty. Bude stačit několik příkazů a requestů. Postup je následující:

  1. Vytvoříme certifikační autoritu (CA), se kterou budeme podepisovat a revokovat (zneplatňovat) certifikáty klientů
  2. Vytvoříme klíče a požadavky na jejich podepsání pro klienty
  3. Podepíšeme klíče CA a tím je uvedeme v platnost
  4. Distribuujeme klíče a certifikáty uživatelům
  5. Upravujeme konfiguraci OpenVPN serveru aby spolupracovala s podepsanými klientskými klíči a certifikáty

Tvorba CA

sudo su
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
vi ./vars

Nyní je důležité zkontrolovat a nastavit následující parametry:

  • export KEY_DIR="$EASY_RSA/keys" # sem se budou generovat klíče a certifikáty
  • export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` # vede na konfiguraci OpenSSL
  • export KEY_SIZE=1024 # nastavte na 2048 v případě že jste paranoidní
  • export KEY_COUNTRY="CZ" # země
  • export KEY_PROVINCE="PR" # provincie, v našem případě asi kraj
  • export KEY_CITY="Prague" # město
  • export KEY_ORG="Organizace" # název organizace
  • xport KEY_EMAIL="support@organizace.tld" # e-mail uvedený ve všech následujících klíčech

Po nastavení vašich hodnot a uložení souboru je nutné tyto vlastnosti aplikovat a pak můžeme začít s tvorbou:

source ./vars
./build-dh
./build-ca

Tvorba Diffie Helmann šifry chvíli trvá, zvláště pokud zvolíte velikost klíče vyšší než 1024. Vytvoření CA je rychlejší, pokud jste nastavili a aplikovali parametry v souboru vars, pak by mělo stačit potvrdit několikrát klávesou enter.

Tvorba serverového a klientských klíčů

./build-key-server VPN-Server

Opět několikrát potvrdíme klávesou enter, pak máme možnost nastavit heslo, které přeskočíme (toto heslo by muselo být zadáno každou službou a klientem), stejně jako další extra volby. Na závěr automaticky podepíšeme klávesou Y. A podobně jdeme i na vytvoření klientských klíčů a certifikátů.

./build-key VPN-Client

Tento krok musíte provést tolikrát, kolik klientských certifikátů (uživatelů) potřebujete.

Distribuce klíčů a certifikátů

Nyní nám v adresáři ./keys vzniklo mnoho souborů, které jsou potřeba a kde?

Soubor Umístění a účel
VPN-Server.crt Podepsaný certifikát VPN serveru, musí být na serveru
VPN-Server.key Osobní RSA klíč VPN serveru, musí být na serveru
VPN-Server.csr Požadavek na podepsání, může být smazán
VPN-Client.crt Podepsaný certifikát VPN klienta, musí být u klienta
VPN-Client.key Osobní RSA klíč VPN klienta, musí být u klienta
VPN-Client.csr Požadavek na podepsání, může být smazán
ca.crt CA certifikát, musí být jak u klientů tak i na serveru
ca.key klíč k CA, musí být uchován na nějakém velmi tajném místě
dh1024.pem Diffie-Helmann klíč, musí být pouze na serveru

Konfigurace OpenVPN serveru

Nyní vytvoříme soubor /etc/openvpn/nasevpn.conf, který může vypadat například takto:

mode server
tls-server
dev tap0
port 1194
proto udp
ifconfig 192.168.2.1 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "route-gateway 192.168.2.1"
ifconfig-pool 192.168.2.10 192.168.2.50 255.255.255.0
duplicate-cn
client-to-client
keepalive 10 120
ca ca.crt
cert VPN-Server.crt
key VPN-Server.key
dh dh1024.pem
comp-lzo
log /var/log/vpn.log

Je zřejmé, že ve stejném adresáři, ve kterém se nachází tento konfigurační soubor, musí být i klíč ca.crt, VPN-Server.crt, VPN-Server.key a dh1024.pem. Důležité je pohlídat si správné nastavení cest (routes). Vytváří se nám další síť. V našem příkladě máme síť 192.168.1.0/24 a vytváříme síť pro klienty VPN, která bude v rozsahu 192.168.2.0/24, klienti budou dostávat IP adresu od 192.168.2.10 až 50, server bude mít 192.168.2.1. Pokud máte počítač za routerem s NAT, je třeba nastavit cesty i na tomto routeru.

Ověření

Příště ukáži, jak se k OpenVPN serveru připojit jako klient pomocí modulu pro network-manager, který se stal součástí GNOME, nebo pomocí konfiguračního souboru, který bude třeba například pro klienty Windows, ale i GNU/Linux.

Komentáře

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Řádky a odstavce se zalomí automaticky.

Více informací o možnostech formátování

Back to top