OpenVPN: šifrovaný VPN tunel
Myslím si, že lidem, kteří se poohlíží po nasazením OpenVPN (nebo jakékoliv jiné VPN) není potřeba popisovat její účel a využití. Podíváme se tedy rovnou na její zprovoznění.
Instalace
Nainstalujeme si potřebné balíčky/sw. Je zde rozdělení pro konfiguraci serveru a klienta. Pro server bude popsána pouze distribuce Debian.
Server
Na serveru s Debianem nainstalujeme kromě openvpn balíčku i ty, které se starají o kompresi spojení, pro eliminaci vytížení linky
apt-get install openvpn liblzo1 liblzo2-2
Klient
Klientský sw existuje pro obě následující platformy
- GNU/Linux
Na Linuxovém klientovi (např. s Ubuntu) nainstalujeme
apt-get install openvpn
V případě, že se budete chtít připojit Network managerem (např. v Ubuntu), nainstalujeme si ještě
sudo apt-get install network-manager-openvpn
čímž se nám zpřístupní nastavení OpenVPN v Gnome „klikátku“.
- MS Windows
Zde doporučuji použít OpenVPN s GUI.
Konfigurace
Nakonfigurujeme si server a klienta takto:
Server
Podle návodu OpenSSL vygenerujeme klíče, pokud je ještě nemáme
Vytvoříme konfigurační soubor
touch /etc/openvpn/vpn.conf
s tímto obsahem, pro doménu example.net
# server mode server # management management 10.0.10.1 7505 # tls jako server tls-server # CRL (certifikate revocation list) verification # ( readeable for ALL !!! ) crl-verify /etc/ssl/crl.pem persist-key persist-tun # vytvori zarizeni dev tap0 # protokol (mozno i tcp-server) proto udp # port na kterem nasloucha (definovano v shorewall tunnels) port 1194 # adresa serveru (rozhrani tap0) ifconfig 10.0.11.1 255.255.255.0 # prideli ip rozhrani tap0 # adresy pro klienty ifconfig-pool 10.0.11.50 10.0.11.60 255.255.255.0 # DHCP server pro VPN klienty # specialni konfigurace pro konkretni klienty client-config-dir ccd # "staticke" IP adresy pro klienty ifconfig-pool-persist /etc/openvpn/openvpn.ip_pool.txt # soucasne prihlaseni vice klientu se stejnym certifikatem #duplicate-cn # maximalni pocet klientu, kteri se mohou pripojit #max-clients 3 # pripojeni klienti na VPN se uvidi client-to-client # posle na klienta routy na zpristupneni LAN (10.0.10.0/24) za VPN serverem push "route 10.0.10.0 255.255.255.0 10.0.11.1" # nastavi klientovy DNS server push "dhcp-option DNS 10.0.10.1" push "dhcp-option WINS 10.0.10.1" push "dhcp-option DOMAIN example.loc" # nastavi klientovi vychozi branu #push "redirect-gateway def1" # udrzuje spojeni nazivu, 10s (ping) a 30s (ping-restart) keepalive 10 30 # certifikat certifikacni autority ca /etc/ssl/certs/ca.crt # certifikat serveru cert /etc/ssl/certs/server.crt # klic serveru key /etc/ssl/private/server.key # parametry pro Diffie-Hellman protokol dh /etc/ssl/private/dh2048.pem # logy serveru log-append /var/log/openvpn # status serveru #status /var/run/openvpn/vpn.status 10 status /etc/openvpn/vpn.status 10 # na Win nefunguje, muze byt zakomentovane user nobody group nogroup # komprese prenesenych dat comp-lzo # ukecanost serveru verb 3
Klient
OpenVPN je multiplatformní, tudíž si ukážeme, jak nastavit systém Linux i Windows
- GNU/Linux
Zde si vytvoříme konfigurační soubor v /etc/openvpn/ s příponou *.conf
- MS Windows
Konfigurační soubor vytvoříme v C:\Program Files\OpenVPN\config\ s příponou *.ovpn.
Konfigurační soubor
Na Linuxu i Windows je stejná (pouze některé parametry nejsou na Windows akceptovány)
remote example.net port 113 tls-client dev tap pull ns-cert-type server mute 10 ca ca_fp.crt cert prijmeni_jmeno.crt key prijmeni_jmeno.key comp-lzo verb 3 user nobody group nogroup
Finální start OpenVPN
/etc/init.d/openvpn start
Zdroje Informací
http://www.monta-therm.cz/phprs/rservice.php?akce=tisk&cisloclanku=2005011301
http://www.abclinuxu.cz/blog/bl4z4/2007/6/7/182859
Super, diky moc za navod. VPN se mi podarilo podle nej rozchodit. Jeste jednou diky.
@Petr Jsem rád, že je článek užitečný.