OpenVPN

OpenVPN používa na šifrovanie VPN komunikácie medzi stanicami infraštruktúru verejného kľúča - Public Key Infrastructure (PKI). Jednoduchý spôsob ako sa dá nastaviť VPN pomocou OpenVPN je nastavenie klientského pripojenia cez premostené sieťové rozhranie na VPN serveri. V tomto návode budeme predpokladať, že jedna VPN stanica, v našom prípade server, má nastavené premostené rozhranie. Viac informácii o nastavovaní premostenia sa dozviete v časti Premostenie.

Inštalácia

Systém openvpn nainštalujeme zadaním:

sudo apt-get install openvpn

Certifikáty servera

Teraz, keď je už balík openvpn nainštalovaný, je potrebné vytvoriť certifikáty pre VPN server.

Najskôr skopírujeme easy-rsa do priečinka /etc/openvpn. Tým zaistíme, že sa nám nestratia žiadne zmeny v skripte, keď pri aktualizácii stiahneme novšiu verziu balíka. Potrebné je tiež pre priečinok easy-rsa nastaviť správne oprávnenia, aby v  ňom používatelia mohli vytvárať súbory. V príkazovom riadku zadáme:

sudo mkdir /etc/openvpn/easy-rsa/
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
sudo chown -R $USER
/etc/openvpn/easy-rsa/

Potom otvoríme súbor /etc/openvpn/easy-rsa/vars a nastavíme nasledujúce hodnoty:

export KEY_COUNTRY="SK"
export KEY_PROVINCE=""
export KEY_CITY="Bratislava"
export KEY_ORG="Mrkva a syn s.r.o."
export KEY_EMAIL="stefan@nieco.sk"

Nasledujúcimi príkazmi vytvoríme certifikáty:

cd /etc/openvpn/easy-rsa/easy-rsa
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
sudo cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

Certifikáty klienta

VPN klient tiež potrebuje certifikáty aby sa vedel autentifikovať na serveri. Certifikát vytvoríme zadaním nasledujúcich príkazov:

cd /etc/openvpn/easy-rsa/
source vars
./pkitool nazov_stanice
[Note]

Nahraďte nazov_stanice názvom stanice, ktorá sa bude pripájať do VPN.

Nasledujúce súbory prekopírujte na klientskú stanicu:

  • /etc/openvpn/easy-rsa/nazov_stanice.ovpn

  • /etc/openvpn/easy-rsa/ca.crt

  • /etc/openvpn/easy-rsa/nazov_stanice.crt

  • /etc/openvpn/easy-rsa/nazov_stanice.key

  • /etc/openvpn/easy-rsa/ta.key

[Note]

Nezabudnite zmeniť názvy súborov na názov stanice miesto hostname.

Na kopírovanie súborov s certifikátmi a kľúčmi je najvhodnejšie použiť bezpečnú metódu. Na tento účel je vhodný nástroj scp, ale môžete tiež súbory prekopírovať na prenosné médium a z neho potom na klienta.

Konfigurácia

Konfigurácia servera

Teraz nakonfigurujeme openvpn server pomocou konfiguračného súboru /etc/openvpn/server.conf, ktorý skopíruje z ukážkového súboru. V príkazovom riadku zadáme:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Súbor /etc/openvpn/server.conf otvoríme, a zmeníme nasledujúce nastavenia:

local 172.18.100.101
dev tap0
server-bridge 172.18.100.101 255.255.255.0 172.18.100.105 172.18.100.200
push "route 172.18.100.1 255.255.255.0"
push "dhcp-option DNS 172.18.100.20"
push "dhcp-option DOMAIN nieco.sk"
tls-auth ta.key 0 # This file is secret
user nobody
group nogroup
  • local: je IP adresa premosteného rozhrania.

  • server-bridge: je potrebné ak konfigurácia používa premostenie. Adresy 172.18.100.101 255.255.255.0 definujú premostené rozhranie a jeho sieťovú masku. Rozsah IP adries 172.18.100.105 172.18.100.200 je rozsah IP adries, ktoré môžu byť pridelené klientom.

  • push: sú pokyny na pridanie sieťových nastavení pre klienta.

  • user a group: definujú, pod ktorým používateľom a skupinou sa spustí démon openvpn.

[Note]

Všetky IP adresy a názov domény zmeňte podľa potrieb vašej siete.

Potom vytvoríme dva pomocné skripty, ktoré pridajú rozhranie tap do premostenia. Vytvoríme /etc/openvpn/up.sh:

#!/bin/sh

BR=$1
DEV=$2
MTU=$3
/sbin/ifconfig $DEV mtu $MTU promisc up
/usr/sbin/brctl addif $BR $DEV

a /etc/openvpn/down.sh:

#!/bin/sh

BR=$1
DEV=$2

/usr/sbin/brctl delif $BR $DEV
/sbin/ifconfig $DEV down

Potom ich nastavíme ako spustiteľné:

sudo chmod 755 /etc/openvpn/down.sh
sudo chmod 755 /etc/openvpn/up.sh

 Po nakonfigurovaní servera reštartujeme openvpn:

sudo /etc/init.d/openvpn restart

Konfigurácia klienta

Najskôr na klientovi nainštalujeme openvpn:

sudo apt-get install openvpn

Po nakonfigurovaní servera a prekopírovaní certifikátov na klienta, vytvoríme klientský konfiguračný súbor, skopírovaním súboru s príkladom do priečinka /etc/openvpn/. V príkazovom riadku na klientskej stanici zadáme:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn

Teraz otvoríme súbor /etc/openvpn/client.conf a zmeníme nasledujúce nastavenia:

dev tap
remote vpn.nieco.sk 1194
cert nazov_stanice.crt
key nazov_stanice.key
tls-auth ta.key 1
[Note]

Adresu vpn.nieco.sk nahraďte názvom stanice VPN servera, a nazov_stanice.* nahraďte aktuálnymi menami súborov s certifikátmi a kľúčmi.

Nakoniec reštartujte openvpn:

sudo /etc/init.d/openvpn restart

Teraz by sa malo dať pripojiť do vzdialenej LAN siete cez VPN.

Zdroje