Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

openvpn_server [2012/07/27 13:00]
Ubuntu vytvořeno
openvpn_server [2012/07/27 16:34] (aktuální)
Ubuntu
Řádek 1: Řádek 1:
 +====== OpenVPN server ======
 +
 |{{.:​iconCircle.png}} Návod navazuje na [[Linuxtero]]{{.:​IconHandPointing.png}}| |{{.:​iconCircle.png}} Návod navazuje na [[Linuxtero]]{{.:​IconHandPointing.png}}|
  
Řádek 13: Řádek 15:
  
  
-0. Instalace programů (server - klienti):+  * Instalace programů (server - klienti):
 <​code>​ <​code>​
 apt-get install openvpn openssl apt-get install openvpn openssl
 </​code>​ </​code>​
  
- +  * Pro generování certifikátů pro uživatele je potřeba vytvořit certifikační autoritu. Certifikační autorita (v tomto případě server) zajišťuje důvěryhodnost připojení uživatelů k serveru. V první řadě vytvoříme adresář pro certifikační autoritu a potřebné podadresáře:​
-0. Pro generování certifikátů pro uživatele je potřeba vytvořit certifikační autoritu. Certifikační autorita (v tomto případě server) zajišťuje důvěryhodnost připojení uživatelů k serveru. V první řadě vytvoříme adresář pro certifikační autoritu a potřebné podadresáře:​+
 <​code>​ <​code>​
 cd /etc/ssl/ cd /etc/ssl/
Řádek 26: Řádek 27:
  
  
-0. Nyní je třeba ještě vytvořit prázdný soubor index.txt a soubor serial s obsahem „01“:+  * Nyní je třeba ještě vytvořit prázdný soubor index.txt a soubor serial s obsahem „01“:
 <​code>​ <​code>​
 touch /​etc/​ssl/​demoCA/​index.txt touch /​etc/​ssl/​demoCA/​index.txt
Řádek 32: Řádek 33:
 </​code>​ </​code>​
  
- +  * Dále vygenerujeme certifikát certifikační autority a podepíšeme jej sám sebou:
- +
-0. Dále vygenerujeme certifikát certifikační autority a podepíšeme jej sám sebou:+
 <​code>​ <​code>​
 cd /​etc/​ssl/​demoCA cd /​etc/​ssl/​demoCA
Řádek 40: Řádek 39:
 </​code>​ </​code>​
  
- +  * Následně umístíme vygenerovaný klíč a certifikát do správných adresářů. Certifikát přesuneme do /​etc/​ssl/​demoCA a klíč do /​etc/​ssl/​demoCA/​private. Klíč by měl být právy ochráněn před neoprávněnou manipulací,​ změňíme práva na 400 (chmod 400 cakey.pem):
-0. Následně umístíme vygenerovaný klíč a certifikát do správných adresářů. Certifikát přesuneme do /​etc/​ssl/​demoCA a klíč do /​etc/​ssl/​demoCA/​private. Klíč by měl být právy ochráněn před neoprávněnou manipulací,​ změňíme práva na 400 (chmod 400 cakey.pem):+
 <​code>​ <​code>​
 mv cacert.pem certs/ && mv cakey.pem private/ mv cacert.pem certs/ && mv cakey.pem private/
Řádek 48: Řádek 46:
  
  
-0. Správnost cest je třeba ještě jednou zkontrolovat v konfiguračním souboru programu openssl nacházející se v „/​etc/​ssl/​openssl.cnf“ v sekci „[ CA_default ]“. Defaultní nastavení souboru je následující:​+  * Správnost cest je třeba ještě jednou zkontrolovat v konfiguračním souboru programu openssl nacházející se v „/​etc/​ssl/​openssl.cnf“ v sekci „[ CA_default ]“. Defaultní nastavení souboru je následující:​
 <​code>​ <​code>​
 [ CA_default ] [ CA_default ]
Řádek 119: Řádek 117:
 </​code>​ </​code>​
  
-0. Pokud je již všechno správně nastaveno, lze začít generovat certifikáty. Vygenerujeme ho tedy pro server.+  * Pokud je již všechno správně nastaveno, lze začít generovat certifikáty. Vygenerujeme ho tedy pro server.
  :!: Při vyplňování parametrů je nutné zadat stejné parametry uvedené v sekci [ policy_match ] v konfiguračním souboru „/​etc/​ssl/​openssl.cnf“.  :!: Při vyplňování parametrů je nutné zadat stejné parametry uvedené v sekci [ policy_match ] v konfiguračním souboru „/​etc/​ssl/​openssl.cnf“.
  :!: match = má se rovnat (pro countryName vyplnuji vzdy "​CZ"​)  :!: match = má se rovnat (pro countryName vyplnuji vzdy "​CZ"​)
Řádek 131: Řádek 129:
 </​code>​ </​code>​
  
-0. Z předchozího příkazu dostaneme dva soubory (žádost „request.pem“ a klíč „key.pem“). Následně potvrdíme certifikační autoritou žádost o vydání certifikátu:​+  * Z předchozího příkazu dostaneme dva soubory (žádost „request.pem“ a klíč „key.pem“). Následně potvrdíme certifikační autoritou žádost o vydání certifikátu:​
 <​code>​ <​code>​
 openssl ca -in request.pem -out cert.pem openssl ca -in request.pem -out cert.pem
Řádek 166: Řádek 164:
 </​code>​ </​code>​
  
-0. Zkopírujeme soubory na patřičná místa na serveru+  * Zkopírujeme soubory na patřičná místa na serveru
 <​code>​ <​code>​
 mv cert.pem /​etc/​openvpn/​cert.pem mv cert.pem /​etc/​openvpn/​cert.pem
Řádek 173: Řádek 171:
  
  
-0. Nyní vytvoříme certifikát pro uživatele, a potvrdíme certifikační autoritou:+  * Nyní vytvoříme certifikát pro uživatele, a potvrdíme certifikační autoritou:
 <​code>​ <​code>​
 mkdir client && cd client mkdir client && cd client
Řádek 181: Řádek 179:
  
  
-0. Po úspěšném provedení předchozího příkazu dostáváme certifikát potvrzený certifikační autoritou. Tímto způsobem vytvoříme certifikát pro server a klienty. Bezpečnou cestou přeneseme klíč , certifikát a certifikát certifikační autority do počítačů. Dále je třeba vytvořit soubor s Diffie-Hellmann algoritmem (více o DH na: http://​www.algoritmy.net/​article/​84/​Diffie-Hellman)+  * Po úspěšném provedení předchozího příkazu dostáváme certifikát potvrzený certifikační autoritou. Tímto způsobem vytvoříme certifikát pro server a klienty. Bezpečnou cestou přeneseme klíč , certifikát a certifikát certifikační autority do počítačů. Dále je třeba vytvořit soubor s Diffie-Hellmann algoritmem (více o DH na: http://​www.algoritmy.net/​article/​84/​Diffie-Hellman)
 <​code>​ <​code>​
 openssl dhparam -out /​etc/​ssl/​demoCA/​dh1024.pem 1024 openssl dhparam -out /​etc/​ssl/​demoCA/​dh1024.pem 1024
Řádek 187: Řádek 185:
  
  
-0. V serveru vytvoříme konfigurační soubor pro připojení virtuální sítě. Konfigurační soubor vytvoříme v  „/​etc/​openvpn/​vpn_server.conf“. Soubor bude obsahovat následující kód:+  * V serveru vytvoříme konfigurační soubor pro připojení virtuální sítě. Konfigurační soubor vytvoříme v  „/​etc/​openvpn/​vpn_server.conf“. Soubor bude obsahovat následující kód:
 <​code>​ <​code>​
 mode server mode server
Řádek 216: Řádek 214:
  
  
-0. V počítači klienta vytvoříme konfigurační soubor pro připojení virtuální sítě. Editujeme soubor „/​etc/​openvpn/​vpn_client.conf“ a doplníme správné údaje pro připojení:​+  * V počítači klienta vytvoříme konfigurační soubor pro připojení virtuální sítě. Editujeme soubor „/​etc/​openvpn/​vpn_client.conf“ a doplníme správné údaje pro připojení:​
 <​code>​ <​code>​
 remote 1.2.3.4 ### IP adresa serveru remote 1.2.3.4 ### IP adresa serveru
Řádek 233: Řádek 231:
  
  
-0. Nyní máme konfiguraci hotovou a lze ji vyzkoušet. Nejdříve spustíme vpn server „/​etc/​init.d/​openvpn start“. A dále použijeme nastavení pro otevření spojení:+  * Nyní máme konfiguraci hotovou a lze ji vyzkoušet. Nejdříve spustíme vpn server „/​etc/​init.d/​openvpn start“. A dále použijeme nastavení pro otevření spojení:
 <​code>​ <​code>​
 cd /​etc/​openvpn cd /​etc/​openvpn
Řádek 271: Řádek 269:
  
  
-0. Na serveru a clientu se lze přesvědčit že jsou vytvořeny zařízení. Příkaz: ifconfig, zařízení tap0. A měl by fungovat ping.+  * Na serveru a clientu se lze přesvědčit že jsou vytvořeny zařízení. Příkaz: ifconfig, zařízení tap0. A měl by fungovat ping.
  
  
 ===== Skript ===== ===== Skript =====
  
-0. Soubory na serveru:+  * Soubory na serveru:
       * vpn_server.conf ### Upravíme parametry připojení v konfiguračním souboru pro server       * vpn_server.conf ### Upravíme parametry připojení v konfiguračním souboru pro server
       * bash server_install.sh ### Pokud máme tyto dva soubory ve stejném adresáři, instalujeme openvpn na server. Výsledkem má být běžící openvpn server v terminálu.       * bash server_install.sh ### Pokud máme tyto dva soubory ve stejném adresáři, instalujeme openvpn na server. Výsledkem má být běžící openvpn server v terminálu.
Řádek 282: Řádek 280:
  
  
-0. Soubory na klientovi:+  * Soubory na klientovi:
       * vpn_client.conf ### Upravíme klientovo konfigurák\ ​       * vpn_client.conf ### Upravíme klientovo konfigurák\ ​
       * client_X.tar ### balík získáme ze serveru (bezpečnou cestou)\ ​       * client_X.tar ### balík získáme ze serveru (bezpečnou cestou)\ ​
  • Poslední úprava: 2012/07/27 16:34
  • autor: Ubuntu