Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
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)\ |