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.
Michal Pěnka: osobní stránky
Komentáře
Poslat nový komentář