Postavitev OpenVPN strežnika in odjemalcev na Linuxu

VPN (Virtual Private Networking) nam omogoča varno povezovanje različnih omrežij med seboj z uporabo šifriranih tunelov. Prek takšnega tunela lahko dostopamo do oddaljenega omrežja na podoben način, kot bi bili fizično prisotni v omrežju ali celo speljemo ves internetni promet iz našega računalnika preko tunela do oddaljenega računalnika ter tako dostopamo do interneta preko oddaljenega omrežja. VPN se tako uporablja za oddaljen dostop do računalnikov v internih omrežjih in njihovih storitev (interni spletni strežniki, interni datotečni strežniki), varno uporabo brezžičnih omrežij (preusmeritev internetnega prometa od našega računalnika prek tunela do varne izhodne točke na ožičenem omrežju), itd. VPN sicer omogoča povezovanje med različnimi sistemi (Windows, Linux,...).

Za vzpostavitev VPN povezav obstaja več različnih odjemalcev. Eden izmed bolj uporabljanih je OpenVPN. OpenVPN pod Linuxom teče kot demon (ang. daemon, proces, ki teče v ozadju), upravljamo pa ga iz ukazne vrstice. Programski paket, ki ga je potrebno namestiti se imenuje openvpn. Na voljo pa je tudi grafični upravljavski vmesnik Open VPN Admin.

Če želimo postaviti Open VPN strežnik moramo postaviti svojo lastno infrastrukturo javnih ključev (tim. PKI infrastrukturo - public key infrastructure). PKI infrastruktura vsebuje javni ključ (certifikat) in zasebni ključ VPN strežnika in vseh odjemalcev ter glavni CA certifikat (Certificate Authority) namenjen digitalnemu podpisovanju javnih ključev (certifikatov) strežnika in odjemalcev. To je pomembno zato, ker OpenVPN podpira dvosmerno avtentikacijo – strežnik se avtenticira odjemalcu, odjemalec pa strežniku. Pri vzpostavitvi povezave se strežnik in odjemalec drug drugemu avtenticirata tako, da najprej preverita ali je bil certifikat drugega podpisan s strani CA certifikata.

Na strežniku zato potrebujemo samo CA javni ključ, strežniški certifikat in strežniški zasebni ključ, ne pa tudi certifikatov odjemalcev. Strežnik pa bo tudi sprejel samo tiste certifikate odjemalcev (oz. dovolil samo tiste VPN povezave s strani odjemalcev), ki so bili podpisani s strani CA certifikata. Strežnik pri tem potrebuje samo CA javni ključ, ne pa tudi CA zasebnega ključa. CA zasebni ključ lahko zato zaradi varnosti odstranimo iz računalnika (ga arhiviramo, ne izbrišemo!). Brez CA zasebnega ključa namreč ni mogoče ustvarjati oz. podpisovati novih ključev za odjemalce. V primeru kraje odjemalčevega certifikata je mogoče posamezni kompromitirani certifikat preklicati, hkrati pa je mogoče za vsakega odjemalca posebej nastaviti dostopne pravice.

Namestitev VPN strežnika in priprava ključev

Potrebujemo naslednje pakete:

sudo apt-get install openvpn openssl ca-certificates

Za generiranje potrebnih SSL ključev nam bodo v pomoč skripte, ki se nahajajo v:

/usr/share/doc/openvpn/examples/easy-rsa/2.0/

Ustvarjanje glavnega Certificate Authority (CA) certifikata in ključev

Najprej si moramo ustvariti lasten CA, s katerim bomo podpisovali ključe, ki jih bomo dodelili strežniku in odjemalcem. Vsi ključi, ki bodo podpisani s strani tega CA, bodo imeli dostop do OpenVPN strežnika.

Postavimo se v /usr/share/doc/openvpn/examples/easy-rsa/2.0/ in uredimo privzete spremenljivke v datoteki vars:

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
sudo gedit vars
export KEY_SIZE = dolžina ključa
export CA_EXPIRE = veljavnost podpisa CA (v dnevih)
export KEY_EXPIRE = veljavnost ključev (v dnevih)

export KEY_COUNTRY="SI"
export KEY_PROVINCE="SI"
export KEY_CITY="Mesto"
export KEY_ORG="ImeOrganizacije"
export KEY_EMAIL="poljuben@email.com"

Dolžino ključa lahko nastavimo na 1024, 2048 ali 3072. Večja dolžina ključa pomeni večjo varnost, vendar pa večji ključ zahteva več procesorske moči.

Primer:

export KEY_SIZE=3072
export CA_EXPIRE=3650
export KEY_EXPIRE=3650

export KEY_COUNTRY="SI"
export KEY_PROVINCE="SI"
export KEY_CITY="Ljubljana"
export KEY_ORG="Cybersoc"
export KEY_EMAIL="matej@myhost.mydomain"

Nato nastavimo sistemske spremenljivke z:

sudo su
source ./vars

In počistimo morebitne nastavitve od prej (počisti vnose v podimeniku ‘keys’, kamor se privzeto shranjujejo ključi):

./clean-all

Ter ustvarimo svoj CA:

./build-ca

Odgovorimo na vprašanja o polju certifikata (načeloma lahko pustimo privzete vrednosti, če smo popravili datoteko ‘vars’, in postopek je končan.

Generiranje ključev za strežnik

Nato zgeneriramo SSL šifrirne ključe za strežnik:

./build-key-server ImeStreznika

Prav tako kot prej izpolnimo nekaj polj, med drugim lahko določimo tudi nekatere dodatne atribute, recimo challenge password (lahko pa ta polja pustimo prazna).

Opozorilo: na zadnji dve vprašanji ‘Sign the certificate?’ in ‘1 out of 1 certificate requests certified, commit?’ moramo izrecno odgovoriti z “y” (yes).

Generiranje ključev za odjemalce

Za vsakega odjemalca, zgeneriramo svoj ključ za dostop, pri čemer vnesemo podatke uporabnika:

./build-key ImeOdjemalca

Opozorilo: na zadnji dve vprašanji ‘Sign the certificate?’ in ‘1 out of 1 certificate requests certified, commit?’ moramo izrecno odgovoriti z “y” (yes).

Razveljavljanje ključev za odjemalce

Razveljavljanje (ang. to revoke) ključev za odjemalce poteka takole:

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0

Nato v datoteko vars dodamo naslednji dve vrstici:

sudo gedit /usr/share/doc/openvpn/examples/easy-rsa/2.0/vars
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"

Nato poženemo:

source ./vars
./revoke-full ImeOdjemalcaZaRazveljavitev

Če je razveljavitev uspešna, dobimo (nekoliko nenavadno) obvestilo:

error 23 at 0 depth lookup:certificate revoked

V podimeniku/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ pa se pojavi datoteka crl.pem. Ob vsaki razveljavitvi certifikatov, je datoteko potrebno skopirati na mesto shrambe ključev VPN strežnika:

cp crl.pem /etc/openvpn/keys/

Diffie-Hellmanovi parametri

Diffie-Hellmanov protokol za varno izmenjavo ključev omogoča varno izmenjavo ključev preko nezavarovane povezave brez vnaprejšnjega poznavanja gesel. Diffie-Hellmanove parametre generiramo takole:

./build-dh

Generiranje teh parametrov traja nekoliko več časa (odvisno od dolžine ključa). Odvisno od dolžine ključa nastavljene v datoteki ‘vars’, skripta v podimeniku ‘keys’ zgenerira eno izmed naslednjih datotek: dh1024.pem, dh2048.pem, ali dh3072.pem.

tls-auth kluč

Za večjo varnost je priporočljivo uporabiti tls-auth. Skripta zgenerira ta.key datoteko, ki jo damo strežniku in odjemalcem (za tls-auth):

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
openvpn --genkey --secret ta.key

Sedja lahko izstopimo iz administratorskega načina:

exit

Mesta ključev

Ključi se nahajajo v podimeniku ‘keys’, ki pa je dostopen le administratorskemu uporabniku:

sudo su
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys

Podrobnosti posameznega javnega ključa (certifikata) lahko pogledamo z ukazom:

openssl x509 -in ime_certifikata.crt -text

Kateri ključi in zakaj

Za povezovanje v VPN omrežje torej potrebujemo:

  • CA certifikat (CA javni ključ) - ca.crt
  • CA zasebni ključ - ca.key
  • certifikat (javni ključ) VPN strežnika - ImeVPNStreznika.crt
  • zasebni ključ VPN strežnika - ImeVPNStreznika.key
  • certifikate (javne ključe) odjemalcev - ImeOdjemalca.crt
  • zasebne ključe odjemalcev - ImeOdjemalca.key
  • Diffie-Hellmanove parametre za varno izmenjavo ključev - dh{številka}.pem
  • po možnosti pa še tls-auth ključ, ki še poveča varnost VPN povezave - ta-key
  • certifikat razveljavljenih ključev odjemalcev - crl.pem

Ob generiranju ključev odjemalcev, se na disku ustvari še datoteka s končnico .csr gre za datoteko z zahtevo za izdajo certifikata (certificate request).

CA zasebni ključ (ca.key) je priporočljivo potem, ko zgeneriramo ključe za strežnik in odjemalca, odstraniti iz strežnika (shraniti v rezervno kopijo, ne izbrisati!).

Lahko pa ga tudi zašifriramo s programom GPG:

mv ca.key /home/matej
chown matej.matej ca.key
gpg --encrypt -r ime.priimek@server.domain ca.key 
rm ca.key

Dešifriranje:

gpg --output ca.key --decrypt ca.key.gpg
sudo chown root.root ca.key

Nastavitve VPN strežnika

Ustrezne ključe, ki jih potrebuje strežnik prenesemo iz podimenika ‘keys’ v podimenik’/etc/openvpn/keys/’:

mkdir /etc/openvpn/keys/
cp ca.crt /etc/openvpn/keys/
cp dh*.pem /etc/openvpn/keys/
cp ImeStreznika.crt /etc/openvpn/keys/
cp ImeStreznika.key /etc/openvpn/keys/
cp ta.key /etc/openvpn/keys/

Nato ustvarimo “neobstoječ” (ang. dummy) ključ za neobstoječega uporabnika in ga razveljavimo (glej poglavje Razveljavljanje ključev za odjemalce) ter certifikat preklicanih ključev prekopiramo v podimenik’/etc/openvpn/keys/’:

cp crl.pem /etc/openvpn/keys/

Nato ustvarimo datoteko z nastavitvami za strežnik ‘/etc/openvpn/ImeStreznika.conf’:

sudo gedit /etc/openvpn/ImeStreznika.conf

Vanjo vnesemo naslednjo vsebino (popravimo/prilagodimo spodnje parametre):

# Nastavitvena datoteka VPN streznika (VPN server config file)
#
# Zunanji IP streznika (SPREMENIMO)
local 123.456.789.123
port 1194

# Protokol
proto udp

# Virtualni mrezni vmesnik
dev tun

# Certificate Authority file (SPREMENIMO)
ca keys/ca.crt

# Server certificate/public key (SPREMENIMO)
cert keys/ImeStreznika.crt

# Server private key
key keys/ImeStreznika.key

# DH Key (NAVEDEMO PRAVO DATOTEKO dh1024.pem, dh2048.pem, ALI dh3072.pem!)
dh keys/dh3072.pem

# TLS ta.key
tls-auth keys/ta.key 0

# Revoked certificates
crl-verify keys/crl.pem

# V primeru da se streznik ponovno zazene ali pride do napake v povezavi 
# naj odjemalci, ki se bodo ponovno povezali dobijo isti lokalni IP naslov
# Lokalni IP naslovi se zapišejo v datoteko ipp.txt.
server 10.8.8.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# Ce zelimo spremeniti prehod do interneta:
push "redirect-gateway def1"

# Ce zelimo samo dodati dostop do novega lokalnega omrezja:
#push "route 10.1.1.0 255.255.255.0"

# Ce zelimo prepreciti DNS uhajanje in torej preusmeriti vse DNS zahtevke preko VPN
# lahko dolocimo, da se na odjemalcu nastavi "lokalni" primarni DNS streznik.
# Ce ukaz ponovimo, na odjemalcu nastavimo se "lokalni" sekundarni DNS streznik.
# Uporabimo lahko DNS streznik, ki ga uporablja VPN streznik npr. Arnesov...
push "dhcp-option DNS 193.2.1.66"
# ...ali pa postavimo lasten lokalni DNS streznik
push "dhcp-option DNS 10.8.8.1"

persist-key
persist-tun

user nobody
group nogroup

comp-lzo

# The first line sets the comp-lzo setting for the server side of the link, the second sets the client side.  
comp-lzo yes
push "comp-lzo yes"

keepalive 10 120

status /var/log/openvpn/status.log

log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log

verb 3

keepalive 1 5 persist-tun persist-key persist-local-ip persist-remote-ip push “persist-key” push “persist-tun” Do I have to restart OpenVPN after every configuration change? http://workaround.org/moin/OpenVpnFaq

Na koncu ustvarimo datoteko ipp.txt (kamor se zapisujejo lokalni IP naslovi odjemalcev):

sudo touch /etc/openvpn/ipp.txt

How do I use the 'client-config-dir' parameter?

The client config directory is a location where you put custom client-specific configuration files. Example in your global configuration (e.g. /etc/openvpn/server.conf):

client-config-dir /etc/openvpn/clients

Then put files with the common names of your users there. The common name must match the filename exactly. Let’s pretend you have a user with the common name “John_Doe” on his certificate. Create a file /etc/openvpn/clients/John_Doe and make it contain configuration directives that should only apply to John Doe. The following directives are allowed there:

  • push
  • push-reset
  • iroute
  • ifconfig-push
  • config

Example /etc/openvpn/clients/John_Doe:

iroute 112.12.58.128 255.255.255.240 ifconfig-push 10.100.8.1 10.100.8.2

This will assign John Doe the IP 10.100.8.1 on his side of the VPN tunnel. Also the server will learn that the network 112.12.58.128/28 is on John’s side of the VPN tunnel and route packets there. (Note that you also need to create a “route 112.12.58.128 255.255.255.240” in your global configuration to make the OpenVPN server learn this route. The “route” command does not work within a client-config-dir configuration file.)

The charming advantage of client-config-dir configurations is that you don’t need to restart your OpenVPN server to make changes to these files work. Every time a client connects the client-config-dir will be searched for an appropriate file and if one is found the configuration will be applied.

There is also a special DEFAULT file that contains settings in case there is no configuration file for a certain client.

Nastavitev posredovanja v internet

Ubuntu 8.10

V Ubuntu 8.10 najprej nastavimo IP posredovanje:

sudo su
echo 1  > /proc/sys/net/ipv4/ip_forward

Sledijo naslednja iptables pravila (predpostavka, v internet smo povezani preko eth0, v VPN pa preko tun0):

iptables -t nat -F POSTROUTING
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT

Če želimo samodejen zagon pravil ob zagonu računalnika, v datoteko /etc/sysctl.conf dodamo:

net.ipv4.ip_forward = 1

V /etc/rc.local dodamo na konec (pred exit 0):

# Posredovanje prometa iz VPN v internet
iptables -t nat -F POSTROUTING
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

V pravila požarnega zidu ufw (ki ga privzeto uporablja Ubuntu 8.10) pa v /etc/ufw/before.rules dodamo na konec, tik pred COMMIT vrstico:

# Posredovanje prometa iz VPN v internet
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -o tun0 -j ACCEPT

V Gufw je še treba dodati pravilo, da dovolimo dohodni UDP promet za vrata 1194.

sudo ufw allow proto udp from any to xxx.xxx.xxx.xxx port 1194

Debian (napredno, skripta morda vsebuje napako)

Najprej preverimo ali imamo odprta UDP (ali TCP) vrata 1194 oziroma posredovanje vrat iz usmerjevalnika na OpenVPN strežnik. Če so vrata zaprta, vnesemo naslednji ukaz s katerim dovolimo vhodne povezave na UDP vrata 1194:

sudo iptables -A INPUT -p udp -m multiport --dport 1194 -j ACCEPT

Če bomo VPN strežnik uporabljali kot “izhod” na internet, je potrebno vključiti še IP posredovanje (IP forwarding):

sudo su
echo 1  > /proc/sys/net/ipv4/ip_forward

# Natavimo zavracanje paketov brez znane povezave, "broadcast" in "multicast" paketov,
# dovolimo vracanje paketkov iz ze vzpostavljenih povezav ter DNS poizvedbe...
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m pkttype --pkt-type broadcast -j DROP
iptables -A FORWARD -m pkttype --pkt-type multicast -j DROP
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
# VPN odjemalcem dovolimo vzpostavljanje vseh povezav
iptables -A FORWARD -m state --state NEW -i ! eth0 -j ACCEPT
# Nastavimo prehod za povezavo VPN odjemalcev v internet ter optimiziramo delovanje NAT-a
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j SNAT --to-source 193.xxx.xxx.xxx (VNESEMO ZUNANJI IP)
iptables -A FORWARD --protocol tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Zagon VPN strežnika

VPN strežnik lahko zaženemo strežnik kot demon:

sudo /etc/init.d/openvpn start ImeStreznika

Druga možnost je, da ga zaženemo neposredno (v tem primeru lahko takoj vidimo morebitne napake, ki jih izpisuje):

cd /etc/openvpn
sudo openvpn ImeStreznika.conf

Če želimo lahko preverilo ali program teče:

ps -A | grep openvpn

Po potrebi pogledamo še dnevniške zapise (s sporočili o morebitnih napakah):

cat /var/log/openvpn/openvpn.log

Priprava VPN odjemalca v okolju Linux

Najprej (oz. če se povezava noče vzpostaviti) preverimo ali omrežna naprava tun ni zaščitena s požarnim zidom. Če je, vnesemo naslednje ukaze:

sudo su
# Dovolimo TUN vmesniku povezave do OpenVPN streznika
iptables -A INPUT -i tun+ -j ACCEPT

# Dovolimo povezavam iz TUN vmesnika, da so posredovane preko drugih vmesnikov
iptables -A FORWARD -i tun+ -j ACCEPT

# Dovolimo TAP vmesniku povezave do OpenVPN streznika
iptables -A INPUT -i tap+ -j ACCEPT

# Dovolimo povezavam iz TAP vmesnika, da so posredovane preko drugih vmesnikov
iptables -A FORWARD -i tap+ -j ACCEPT

Sledi namestitev in zagon odjemalca.

Namestitev odjemalca

Namestitev OpenVPN odjemalca pod Ubuntu Linuxom:

sudo apt-get install openvpn

Nastavitev odjemalcev

Nato je potrebno pripraviti datoteko z nastavitvami za odjemalca, oziroma datoteko dobimo od upravitelja OpenVPN strežnika. Datoteki damo ime npr. ‘ImeStreznika.conf’, shranimo jo v podimenik /etc/openvpn/ ključe prekopiramo v podimenik /etc/openvpn/ImeStreznika/:

sudo gedit /etc/openvpn/ImeStreznika.conf
client
dev tun

# Na Windows XP SP2 je morda potrebno namesto dev tun vkljuciti dev tap
# dev tap
# dev-node MyTap

# Uporabljamo UDP protokol
proto udp

# IP naslov streznika in vrata
remote 193.456.789.123 1194

# Utisajmo podvojene paketke, ki jih pogosto generirajo brezzicna omrezja
mute-replay-warnings

# Vnesemo prave poti do javnih kljucev (certifikatov) in zasebnih kljucev
ca ImeStreznika/ca.crt
cert ImeStreznika/ImeOdjemalca.crt
key ImeStreznika/ImeOdjemalca.key
tls-auth ImeStreznika/ta.key 1

# Preprecimo MITM napade - avtenticiramo streznik (OpenVPN 2.1 dalje):
remote-cert-tls server

# Preprecimo MITM napade - avtenticiramo streznik (OpenVPN do vkljucno 2.0):
#ns-cert-type server

persist-key
persist-tun
user nobody
group nogroup
comp-lzo
ping 10
ping-restart 60
verb 3

Ključe odjemalca (zgenerirali smo jih na strežniku) prekopiramo v podimenik ImeStreznika:

mkdir /etc/openvpn/ImeStreznika/
cp ca.crt /etc/openvpn/ImeStreznika/
cp ImeOdjemalca.crt /etc/openvpn/ImeStreznika/
cp ImeOdjemalca.key /etc/openvpn/ImeStreznika/
cp ta.key /etc/openvpn/ImeStreznika/

Problem DNS-ov z uporabo VPN

Po vzpostavitvi VPN povezave, odjemalec dobi IP številko na VPN izhodu. V primeru, da je odjemalec vključen v internet pri enem ponudniku dostopa do interneta (in uporablja njegove DNS strežnike - npr. v primeru uporabe DHCP), VPN izhod pa se nahaja pri drugem ponudniku dostopa do interneta, lahko včasih pride do težav. Nekateri ponudniki dostopa do interneta namreč blokirajo dostop do svojih DNS strežnikov iz tujih omrežij. V takem primeru “DNS resolving” ne deluje. Zato je potrebno ročno nastaviti pravilne DNS strežnike (od ponudnika dostopa do interneta pri katerem se nahaja izhodna VPN povezava) v /etc/resolv.conf. Lahko pa uporabimo tudi takšne DNS strežnike, ki niso blokirani. Primer za omrežje ARNES:

sudo nano /etc/resolv.conf

Vnesemo:

nameserver 193.2.1.66
nameserver 193.2.1.72

VPN ključe in konfiguracijo si shranimo v podimenik /etc/openvpn/. Najbolje je, da za vsako VPN povezavo naredimo lastno konfiguracijsko datoteko, ključe zanjo pa damo v ustrezen podimenik. Tako imamo npr. datoteko VPNsluzba.conf ter podimenik VPNsluzba, kjer so .crt, .csr ter .key datoteke s ključi.

Zagon odjemalca

Zagon VPN povezave:

openvpn /etc/openvpn/VPNsluzba.conf

Odpremo še eno ukazno vrstico in preverimo povezavo med odjemalcem in strežnikom z ukazom ping. Ker smo v konfiguracijski datoteki VPN strežnika določili, da bomo v VPN omrežju uporabljali IP naslove v območju 10.12.1.xxx, ima strežnik IP naslov 10.12.1.1. Kakšen IP naslov ima odjemalec lahko pogledamo z ukazom ifconfig, gledamo za omrežno napravo tun.

Povezavo lahko preverimo tudi z tako, da odpremo Sistem - Administracija - Omrežna orodja ter v zavihku Ping pod Omrežni naslov vnesemo IP VPN strežnika, ki je v našem primeru 10.8.0.1.

Lahko pa v ukazno vrstico vnesemo ukaz za preverjanje povezave med odjemalcem in strežnikom: ping 10.8.0.1 Če VPN povezava deluje, vidimo približno takle izpis, ki ga prekinemo s pritiskom na Ctrl-C:

64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.736 ms

Zagon VPN povezave kot sistemske storitve:

sudo /etc/init.d/openvpn start VPNsluzba

Če se odjemalec uspešno poveže se izpiše:

Starting virtual private network daemon: VPNsluzba(OK).

Zaustavitev VPN povezave:

sudo /etc/init.d/openvpn stop VPNsluzba

Če želimo samodejni zagon openvpn povezave ob zagonu računalnika, pa je potrebno ustrezno urediti konfiguracijsko datoteko /etc/default/openvpn:

# Start only these VPNs automatically via init script.
# Allowed values are "all", "none" or space separated list of
# names of the VPNs. If empty, "all" is assumed.
#
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
#
# Refresh interval (in seconds) of default status files
# located in /var/run/openvpn.$NAME.status
# Defaults to 10, 0 disables status file generation
#
#STATUSREFRESH=10
#STATUSREFRESH=0

Po želji odkomentiramo in ustrezno dopolnimo katero od AUTOSTART vrstic (npr. AUTOSTART=”Sluzba”) .

Nastavitev VPN povezave v Network Managerju

V različicah Ubuntu prebd 8.10 lahko uporabimo OpenVPN Admin, ki ga prenesemo in namestimo iz SourceForge (OpenVPN Admin). Izberemo paket openvpn-admin in prenesemo .deb paket (npr. openvpn-admin_1.9.4-2_i386.deb). Deb paket namestimo z dvoklimom nanj ali z ukazom dkkg -i ime_paketa.

OpenVPN Administrator najdemo v meniju Programi - Sistemska orodja - OpenVPN Administrator. Po zagonu se naseli v sistemsko vrstico (tim. system tray).

V Ubuntu 8.10 (in kasnejših različicah) pa lahko uporabimo vgrajeni Network Manager. Kliknemo na ikono Network Managerja na pladnju in izberemo Povezave VPN - Nastavi VPN.

Nastavitve uredimo po naslednjem zgledu (pod Prehod vnesemo IP naslov OpenVPN strežnika):

Nastavitve za TLS avtentikacijo (ta.key) pa nastavimo s klikom na Advanced (pozor, Key direction mora biti nastavljena obratno kot na strežniku. Če je na strežniku 0, mora biti v odjemalcu 1:

Nastavimo lahko tudi povezavo preko TCP (privzeto je preko UDP) ali preko nestandardnih vrat (privzeto je 1194) ter uporabo LZO kompresije podatkov. Seznam VPN povezav v Network Managerju:

Zaradi napake v Network Managerju je pri nastavitvah VPN povezave (zavihek Nastavitve IPv4, gumb Routes, potrebno izbrati Ignore automatically obtained routes). To povzroči, da Network Manager upošteva poti, pridobljene iz OpenVPN strežnika (sicer pa jih ignorira - ravno nasprotno, kot je napisano):

Namestitev VPN odjemalca v okolju Windows

Iz spleta prenesemo in namestimo OpenVPN GUI for Windows (Installation Package).

Po namestitvi s privzetimi možnostmi kliknemo na Start menu, Programs, OpenVPN, OpenVPN configuration file directory. V ta imenik shranimo konfiguracijske datoteke in ključe. Konfiguracijski datoteki moramo dati končnico .ovpn.

Včasih se lahko občasno pojavljajo težave pri zaganjanju VPN povezav, dobro je preveriti če ni morda potrebno virtualnega vmesnika v konfiguracijski napravi preimenovati iz tun v tap. Pomagamo si lahko tudi z navodili kako zaganjati VPN kot ne-administrator ter kako odpraviti težave z nekaterimi požarnimi zidovi.

Ko je OpenVPN aktiven, v “system tray-u”, z desnim gumbom miške kliknemo na ikonico OpenVPN GUI ter pritisnemo “Connect”. Povezavo prekinemo s pritiskom na “Disconnect”. Če je možnih VPN povezav (oz. VPN konfiguracij) več, se ime vsake povezave izpiše v meniju.

Še opozorilo: pri lastnostih virtualnega VPN omrežnega vmesnika (ki ga najdemo v meniju Start - Settings - Network and Dial-up Connections) preglejmo nastavitve in po potrebi onemogočimo deljenje datotek in tiskalnikov za Windows omrežja)

Dodatno branje

Gentoo wiki fiksni IP # client-config-dir ccd # route 10.50.2.0 255.255.255.0

GUI za strežnik: http://sourceforge.net/projects/openvpn-control/

Fiksni IP, neuradna dokumentacija: http://workaround.org/moin/OpenVpnFaq

Izpis števila povezanih odjemalcev:

sudo su
grep ^CLIENT_LIST /var/log/openvpn/status.log | wc -l
 
debian/openvpn.txt · Zadnjič spremenil/a: 2009/01/02 23:03 matthai
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki