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í:
- Vytvoříme certifikační autoritu (CA), se kterou budeme podepisovat a revokovat (zneplatňovat) certifikáty klientů
- Vytvoříme klíče a požadavky na jejich podepsání pro klienty
- Podepíšeme klíče CA a tím je uvedeme v platnost
- Distribuujeme klíče a certifikáty uživatelům
- 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
Dobrý den, Možná drze si
Dobrý den,
Možná drze si dovolím Vás otravovat
Mám problém s připojením tímto způsobem, na notebooku s XP to chodí perfektně, ale nedaří se zprovoznit na Win 7 Ultimate 64.
Problém je ten, že když:
- spustím "C:\Program Files (x86)\OpenVPN\bin\openvpn-gui-1.0.3.exe" normálně, ikona dole na liště mi nabídne volbu „connect“, opticky se spojí, ale není průchozí, nepropingnu se.
- Když podle návodů spustím program jako správce, tak už nenabídne mi volbu „connect“ , pouze Proxy setting, About a Setting.
Už jsme to leckde snažili zjistit, ale netuším, kde je problém. Nevíte v čem je zakopaný pes?
Předem díky
Jaromír Buček
opravneni
dobrý den,
nedávno jsem taky rozchazel ovpn na win 7, pes je zakopany v opravneni, musi se spoustet jako spravce, jinak si nemuze pridat routy do route table. pak by melo vsechno behat bez problemu.
Problém s Windows 7
Kdysi jsem na Windows 7 OpenVPN klienta instaloval, ale nepamatuji si, že bych měl takovéto problémy...
Bohužel asi bez testování nedokáži poradit, zkusil bych ale někoho na mailing-listu. Taky myslím, že stále funguje #openvpn na irc.freenode.net, tam budou asi lidé, kteří GUI pod Windows (7) používají denně.
Pokud se podaří problém vyřešit, moc bych ocenil, kdybyste napsal řešení do komentáře pro ostatní. Díky!
openvpn
cau,
a slo by urobit povedzme ze mam
1x debian A + open vpn server
- eth0 internet
- tun0 vpn
1x debian B + open vpn (ako klient na ten server A) + LAN siet na eth1
- eth0 internet
- eth1 lan 192.168.10.0/24
- tun0 vpn
a este jeden
1x debian C + open vpn (ako klient na ten server A) + LAN siet na eth1
- eth0 internet
- eth1 lan 192.168.11.0/24
- tun0 vpn
a chcel by som aby sa tie lokalne siete medzi sebou videli,
teda ked zadam na PC 192.168.10.10 ping: ping 192.168.11.25 tak mi to bude f pohode pingovat...
slo by to? alebo sa mozu videt len server A server B a server C medzi sebou ale to co uz je na eth1 ma smolu?
Routovací tabulka
Domnívám se, že je třeba nastavit routovací tabulku na obdou serverech (B a C).
Tozn. např. na B nastavit pravidlo "pokud je ze sítě 192.168.10.0/24 požadavek na 192.168.11.0/24, jdi přes počítač $ip_adresa_tun0_na_C"
Podmínkou je samozřejmě přiřazovat klientům B a C statické adresy, aby výše popsané pravidlo fungovalo stále.
Dále je nutné povolit na všech routerech (A, B, C) ip_forwarding.
Poslat nový komentář