Tato dokumentace je jen pro Turris OS 3.x, který se už nenachází na nově prodávaných routerech. Novou dokumentaci najdete na https://docs.turris.cz/.
Tento návod nepopisuje, jak funguje obecné nastavení OpenVPN či jak vygenerovat certifikáty. To najdete na stránkách OpenVPN. Zde se nachází pouze detaily, jak OpenVPN zprovoznit na routeru Turris.
O VPN obecně si můžete přečíst v seriálu Správa linuxového serveru.
Tento návod popisuje, jak nastavit OpenVPN pokročilou cestou, tedy přes příkazovou řádku (buď přes SSH nebo sériovou linku).
Jednoduché nastavení OpenVPN pomocí několika kliknutí bude uvedeno v březnu 2017.
Možností, jak nastavit OpenVPN je několik, liší se různou mírou integrace do systému OpenWRT.
Nehledě na použitou metodu či jestli nastavujete server nebo klienta,
potřebujete na router nahrát certifikáty a klíče. Nejjednodušší je to pomocí
scp. Vytvořte složku /etc/openvpn
a umístěte soubory tam.
user@localmachine $ ssh root@192.168.1.1 root@192.168.1.1's password: root@turris:~# mkdir /etc/openvpn root@turris:~# exit Connection to 192.168.1.1 closed user@localmachine $ scp server.key server.crt ca.crt root@192.168.1.1:/etc/openvpn root@192.168.1.1's password:
Tento způsob zcela obchází podporu v OpenWRT a služba je puštěna ručně. Dává to větší volnost v tom, jaké parametry se předají, na druhou stranu o službě zbytek systému neví a OpenVPN neví o změnách na síťových rozhraních. Toto může působit problémy s firewallem či routovacími tabulkami.
Konfigurační soubor nahrajte do složky /etc/openvpn
stejným způsobem, jako
klíče. Ručně vyzkoušejte, že vše funguje jak má:
# cd /etc/openvpn # openvpn vpn.conf
Pokud příkaz zůstane běžet a nevypíše chyby, je pravděpodobně vše v pořádku.
Ukončete jej pomocí CTRL+C
a pusťte na pozadí.
openvpn vpn.conf >/dev/null 2>&1 &
Do souboru /etc/rc.local
přidejte příkaz pro spuštění openvpn. Tento soubor
je vyhodnocen při startu zařízení. Ujistěte se, že příkaz exit 0
je až na
konci.
# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. openvpn /etc/openvpn/vpn.conf >/dev/null 2>&1 & exit 0
Začátek postupu je stejný, jako v případě Bez podpory OpenWRT. Místo
ručního spuštění na pozadí a zapsání do /etc/rc.local
je přidán odkaz na
konfigurační soubor ze souboru /etc/config/openvpn
.
package openvpn config openvpn custom_config option enabled 1 option config /etc/openvpn/vpn.conf
Poté je potřeba OpenVPN zapnout a povolit jeho spouštění po startu.
$ /etc/init.d/openvpn start $ /etc/init.d/openvpn enable
V tomto případě je celá konfigurace uložená jako UCI konfigurace, konfigurační soubor se do routeru nenahrává. Stále jsou však potřeba klíče a certifikáty.
V konfiguračním souboru /etc/config/openvpn
vytvořte sekci a povolte ji
pomocí option enabled 1
. Poté každou položku v konfiguraci OpenVPN
přepište jako jeden záznam option
, následujícím způsobem:
Tyto konfigurace by tedy byly ekvivalentní.
package openvpn config openvpn lair option enabled 1 option client 1 option dev tun option proto udp option remote "1.2.3.4 82" option keepalive "10 1200" option nobind 1 option ca "/etc/openvpn/ca.crt" option cert "/etc/openvpn/client.crt" option key "/etc/openvpn/client.key" option ns_cert_type server option comp_lzo yes option verb 3
client dev tun proto udp remote 37.157.194.139 3333 keepalive 10 1200 nobind ca /etc/openvpn/ca.crt cert /etc/openvpn/client.crt key /etc/openvpn/client.key ns-cert-type server comp-lzo yes verb 3
Výchozí konfigurační soubor obsahuje komentované příklady.
Sekcí v UCI konfiguraci (ať již odkazují na OpenVPN konfigurační soubor nebo
jsou převedeny do syntaxe UCI) je možné mít libovolně mnoho. Služba spustí
oddělený openvpn proces pro každou, která je povolená pomocí option enabled
1
.
Může se hodit zařadit VPN síť do sekce LAN ve firewallu. K tomu potřebujete
rozhraní pojmenovat v /etc/config/network
a rozhraní přidat do příslušné
sekce v /etc/config/firewall
. Poté restartujte obě služby.
(/etc/init.d/network restart ; /etc/init.d/firewall restart
).
config interface 'vpn' option proto none option ifname 'tun0' option auto 1
config zone option name lan list network 'lan' list network 'vpn' option input ACCEPT option output ACCEPT option forward ACCEPT