Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| navody:server:openvpn [2019/01/05 01:33] – enable za edit meitner | navody: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.png? | ||
| - | |||
| - | ===== Potřebné balíky ===== | ||
| - | |||
| - | Jelikož jsou vpsfree templaty distribucí minimalistické nainstalujeme kromě openvpn i některé další balíky : | ||
| - | |||
| - | < | ||
| - | |||
| - | (je možné, že pro správnou instalaci je nejdříve nutné spustit //apt-get update//) | ||
| - | |||
| - | ===== nastavení systemd ve VPSadminOS ===== | ||
| - | Pokud používáte např. Debian 9, Fedoru, openSUSE, či jinou distribuci se systemd, musíte nejprve aktivovat patřičnou službu - pro konfiguraci v /// | ||
| - | |||
| - | < | ||
| - | |||
| - | A následovně ještě oeditujte příslušnou službu: | ||
| - | < | ||
| - | [Service] | ||
| - | LimitNPROC=infinity</ | ||
| - | |||
| - | Poté již můžete službu nastartovat: | ||
| - | < | ||
| - | |||
| - | ===== Vygenerování certifikátů ===== | ||
| - | |||
| - | Pro použití jednoduchého CA použijeme EasyRSA, které je " | ||
| - | |||
| - | < | ||
| - | root@torm: | ||
| - | |||
| - | Nyní upravíme soubor (/ | ||
| - | |||
| - | export KEY_COUNTRY=" | ||
| - | export KEY_PROVINCE=" | ||
| - | export KEY_CITY=" | ||
| - | export KEY_ORG=" | ||
| - | export KEY_EMAIL=" | ||
| - | |||
| - | Tyto hodnoty načteme : | ||
| - | |||
| - | < | ||
| - | |||
| - | Vytvoříme složku pro certifikáty : | ||
| - | |||
| - | < | ||
| - | |||
| - | Vygenerujeme DH certifikát: | ||
| - | |||
| - | < | ||
| - | Generating DH parameters, 1024 bit long safe prime, generator 2 | ||
| - | This is going to take a long time | ||
| - | ................................+......................................+...+..........................++*++*++*</ | ||
| - | |||
| - | Vygenerujeme CA ceritifikát : | ||
| - | |||
| - | < | ||
| - | |||
| - | [Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze " | ||
| - | |||
| - | Vygenerujeme certifikát pro server (v mém příkladu server jménem " | ||
| - | |||
| - | < | ||
| - | |||
| - | [Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze " | ||
| - | |||
| - | Vygenerujeme uživatelský certifikát : | ||
| - | |||
| - | < | ||
| - | |||
| - | [Zde neuvádím plný výstup, pokud jste správně upravily soubor vars, lze hodnoty ponechat na výchozním nastavení - pouze " | ||
| - | |||
| - | |||
| - | ===== Nastavení OpenVPN serveru ===== | ||
| - | |||
| - | <file text / | ||
| - | mode server | ||
| - | tls-server | ||
| - | port 1194 | ||
| - | proto tcp-server | ||
| - | dev tap1 | ||
| - | client-config-dir ccd | ||
| - | |||
| - | ca / | ||
| - | cert / | ||
| - | key / | ||
| - | dh / | ||
| - | |||
| - | 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 / | ||
| - | log-append / | ||
| - | status-version 3 | ||
| - | verb 4 | ||
| - | mute 20 | ||
| - | </ | ||
| - | |||
| - | Tento příklad využívá TCP protokolu, certifikátů, | ||
| - | Používáme klientský IP rozsah 10.50.10.1-10.50.10.20, | ||
| - | 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 / | ||
| - | |||
| - | Nyní můžeme spustit OpenVPN server : | ||
| - | |||
| - | < | ||
| - | * Starting virtual private network daemon(s)... | ||
| - | * | ||
| - | [ OK ] | ||
| - | </ | ||
| - | |||
| - | ===== Nastavení OpenVPN klienta : ===== | ||
| - | |||
| - | Klientovi předáme tyto soubory (ze složky / | ||
| - | * 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 / | ||
| - | </ | ||
| - | |||
| - | 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 - / | ||
| - | ... | ||
| - | 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 " | ||
| - | push " | ||
| - | |||
| - | keepalive 10 120 | ||
| - | comp-lzo | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | ==== Nastavení VPS ==== | ||
| - | |||
| - | < | ||
| - | root@torm: | ||
| - | |||
| - | Zde nahradíte x.x.x.x za adresu vaší VPS (kterou vyčtete mj. z '' | ||
| - | |||
| - | ===== Alternativni VPN server pres Docker ===== | ||
| - | |||
| - | Alternativou je rozchodit si Docker a poustet VPN jako predpripraveny image pro Docker. Navod ke zprovozneni na | ||
| - | | ||