Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
server:openvpn [2014/10/28 20:12] – vytvořeno psjb | 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)-> | ||
- | |||
- | {{: | ||
- | |||
- | ===== 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//) | ||
- | ===== 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 ip a s dev venet0:0 scope global) |