Uživatelské nástroje

Nástroje pro tento web


navody:server:openvpn

Rozdíly

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

Odkaz na výstup diff

Následující verze
Předchozí verze
server:openvpn [2014/10/28 20:12] – vytvořeno psjbnavody:server:openvpn [2023/07/31 15:14] (aktuální) – smazano, goto wireguard Aither
Řádek 1: Řádek 1:
-====== OpenVPN Server ====== 
-Tento mini návod si dává za úkol popsat instalaci OpenVPN server na vpsfree za použití autentizace RSA klíči (vygenerovanými easy-rsa scripty) při použití distribuce Ubuntu 10.04 nebo Debian 6. 
  
-V tomto článku používám testovací název serveru **torm**, doménu **example.com** a uživatele **arteal** - tyto hodnoty si ve své instalaci prosím upravte. 
- 
-Tento článek nepoužívá k zabezpečení klíčů žádné heslo, pokud se necítíte, že vaše certifikáty budou ve vašem počítači dostatečně v bezpečí, můžete si je zabezpečit heslem a openvpn se vás při připojování na toto heslo zeptá. 
- 
-===== Nastavení ve vpsadminu ===== 
-V nastavení naší VPS zapneme potřebné vlastnosti (TUN/TAP driver) : 
- 
-VPS->(ID VPS)->Enable Features->Enable All->Go >> 
- 
-{{:konfigurace_a_zabezpeceni:enable_features.png?200|}} 
- 
-===== Potřebné balíky ===== 
- 
-Jelikož jsou vpsfree templaty distribucí minimalistické nainstalujeme kromě openvpn i některé další balíky :  
- 
-<code>root@torm:~# apt-get install rsyslog dialog apt-utils openvpn</code> 
- 
-(je možné, že pro správnou instalaci je nejdříve nutné spustit //apt-get update//) 
-===== Vygenerování certifikátů ===== 
- 
-Pro použití jednoduchého CA použijeme EasyRSA, které je "přiložené" k OpenVPN :  
- 
-<code>root@torm:~# cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/ 
-root@torm:~# cd /etc/openvpn/easy-rsa/2.0/ 
- 
-Nyní upravíme soubor (/etc/openvpn/easy-rsa/2.0/)vars, ve kterém je dobré upravit miniálně posledních 5 řádků: 
- 
-export KEY_COUNTRY="CZ" 
-export KEY_PROVINCE="CZ" 
-export KEY_CITY="Brno" 
-export KEY_ORG="ExampleCompany" 
-export KEY_EMAIL="admin@example.com"</code> 
- 
-Tyto hodnoty načteme : 
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# source ./vars</code> 
- 
-Vytvoříme složku pro certifikáty : 
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# ./clean-all</code> 
- 
-Vygenerujeme DH certifikát: 
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# ./build-dh  
-Generating DH parameters, 1024 bit long safe prime, generator 2 
-This is going to take a long time 
-................................+......................................+...+..........................++*++*++*</code> 
- 
-Vygenerujeme CA ceritifikát : 
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# ./build-ca</code> 
- 
-[Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze "odentrovat"] 
- 
-Vygenerujeme certifikát pro server (v mém příkladu server jménem "torm") : 
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# ./build-key-server torm</code> 
- 
-[Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze "odentrovat", pouze potvrdit, že chceme daný certifikát podepsat. Dále nepočítám, že certifikát chceme šifrovat heslem] 
- 
-Vygenerujeme uživatelský certifikát :  
- 
-<code>root@torm:/etc/openvpn/easy-rsa/2.0# ./build-key arteal</code> 
- 
-[Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze "odentrovat", pouze potvrdit, že chceme daný certifikát podepsat. Dále nepočítám, že certifikát chceme šifrovat heslem] 
- 
- 
-===== Nastavení OpenVPN serveru ===== 
- 
-<file text /etc/openvpn/torm.conf > 
-mode server 
-tls-server 
-port 1194 
-proto tcp-server 
-dev tap1 
-client-config-dir ccd 
- 
-ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt 
-cert /etc/openvpn/easy-rsa/2.0/keys/torm.crt 
-key /etc/openvpn/easy-rsa/2.0/keys/torm.key 
-dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem 
- 
-ifconfig 10.50.10.254 255.255.255.0 
-ifconfig-pool 10.50.10.1 10.50.10.20 255.255.255.0 
-ifconfig-pool-persist ipp.txt 
- 
-client-to-client 
-#route 10.20.15.0 255.255.255.0 10.50.10.254 
-#push "route 10.20.15.0 255.255.255.0 10.50.10.254 3" 
- 
-keepalive 10 120 
-comp-lzo 
-user nobody 
-group nogroup 
-persist-key 
-persist-tun 
-status /tmp/openvpn.status 1 
-log-append /var/log/openvpn.log 
-status-version 3 
-verb 4 
-mute 20 
-</file> 
- 
-Tento příklad využívá TCP protokolu, certifikátů, které jsme si vygenerovali. 
-Používáme klientský IP rozsah 10.50.10.1-10.50.10.20, IP jsou persistentně ukládány do souboru /etc/opevpn/ipp.txt, ale zároveň lze využít ccd(Client Config Dir). VPN dovoluje komunikaci mezi klienty, dále vidíme zakomentovanou route do sítě 10.20.15.0/24, přes náš VPN server. 
-Server udržuje spojení odesílání TCP packetu každých 10 sekund a pokusí se restartovat spojení, pokud nedostane ping po 120 sekund. Využíváme LZO komprese, spouštíme pod neprivilegovaným uživatelem z bezpečnostních důvodů, při restartu nezahazujeme klíče ani síťové rozhraní. 
-Aktuální stav připojených klientů najdeme v souboru /tmp/openvpn.status a log v souboru log-append /var/log/openvpn.log 
- 
-Nyní můžeme spustit OpenVPN server : 
- 
-<code>root@torm:/etc/openvpn# /etc/init.d/openvpn start 
-* Starting virtual private network daemon(s)...                                                                                              
-*   Autostarting VPN 'torm' 
-                                                                                              [ OK ]  
-</code> 
- 
-===== Nastavení OpenVPN klienta : ===== 
- 
-Klientovi předáme tyto soubory (ze složky /etc/openvpn/easy-rsa/2.0/keys) : 
-  * ca.crt 
-  * arteal.crt 
-  * arteal.key 
- 
- 
-<file text torm.conf> 
-client 
-remote torm.example.com 1194 
-ca ca.crt 
-cert arteal.crt 
-key arteal.key 
-comp-lzo yes 
-dev tap5 
-proto tcp 
-nobind 
-auth-nocache 
-script-security 2 
-persist-key 
-persist-tun 
-pull 
-log-append /var/log/openvpn.log 
-</file> 
- 
-Na MS Windows se tento soubor musí jmenovat torm.ovpn a direktiva log-append nebude fungovat, je lepší ji tedy zakomentovat. 
- 
-===== Routování veškerého trafficu přes OpenVPN ===== 
- 
-Jelikož jsem slyšel, že jsou požadavky na používání OpenVPN jako gateway, tedy na směrování veškerého přenosu přes VPN, rozhodl jsem se tento článek rošířit o část, která právě toto řeší. 
- 
-==== Úprava nastavení ==== 
-<file - /etc/openvpn/torm.conf> 
-... 
-client-to-client 
-#route 10.20.15.0 255.255.255.0 10.50.10.254 
-#push "route 10.20.15.0 255.255.255.0 10.50.10.254 3" 
-push "route-gateway 10.50.10.254" 
-push "redirect-gateway def1" 
-  
-keepalive 10 120 
-comp-lzo 
-... 
-</file> 
- 
-==== Nastavení VPS ==== 
- 
-<code>root@torm:~#apt-get install iptables 
-root@torm:~#iptables -t nat -A POSTROUTING  -o venet0 -j SNAT --to x.x.x.x</code> 
- 
-Zde nahradíte x.x.x.x za adresu vaší VPS (kterou vyčtete mj. z ip a s dev venet0:0 scope global) 
navody/server/openvpn.1414527139.txt.gz · Poslední úprava: 2014/10/28 20:12 autor: psjb