E cikk, mint a címből is kiderül, az openvpn-ről fog szólni
Meg kell jegyeznem, hogy én egyenlőre nem használom a routeren, így nem tudom, hogy mennyire strapabíró, stabil, megbízható, stb. Viszont egy Fedora linux alapú szerveren teljesen megbízhatóan működik már lassan 1 éve. Szóval akinek szüksége van rá, annak itt egy kis segítség.
Ha nem mondom a cikk során, akkor a műveletek windowsra vonatkoznak a félreértések elkerülése végett.
Első lépésként látogassuk meg a készítők letöltési oldalát, majd szerezzük is be a programot: innen
A cikk írása során ez a verzió volt elérhető: openvpn-2.0.9-gui-1.0.3-install.exe
Majd telepítsük is fel, a választható opcióknál klikkeljünk be mindent.
Nyissunk egy konzolt (start/futtatás/cmd.exe) és adjuk ki az alábbi parancsokat (copy-paste természetesen működik):
cd\
cd program files
cd openvpn
cd easy-rsa
init-config
Az utolsó .bat állomány 2 fájlt fog másolni, kb. itt tartunk most:

Most szerkesztenünk kell a következő fájlt: C:\Program Files\OpenVPN\easy-rsa\ , ki-ki a kedvenc szerkesztőjével és az alul lévő paramétereket módosítjuk.
Pontosan ezeket: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG és KEY_EMAIL.
Én így töltöttem ki, mindenki a saját adatait írja be:

Ezek lesznek az alapértelmezett paraméterek, mert többször is el kell majd játszanunk a dolgot, így nem kell mindig beírogatni ezeket, elég lesz csak szimpla enter.
Ezután visszamegyünk a konzolos ablakunkhoz és a következő utasításokat adjuk ki:
vars
clean-all
build-ca
Az utolsó parancsnál majd kérdez még 2 dolgot (Orgainazitonal Unit Name és Common Name), amit nem lehetett az előbb megadni. Ide végülis teljesen mindegy mit írunk, simán csak nyomhatunk enter-t is.
Most következnek a tanusítványok és a kulcsok.
Szerver tanusítványa és kulcsa:
Még mindig a windows konzolon:
build-key-server server
Hasonló zajlik le, mint az előző parancsnál, de a Common Name-hez most írhatunk egy server-t.
Majd feltesz még 2 extra kérdést, amire nem fontos beírnunk semmit, szimpla enter elég.
Ezután megkérderi, hogy aláírja-e a tanusítványt és hogy közzé tegye-e. Mindkettőre y-vel válaszolunk.
Most így állunk:

Kliens(ek) tanusítványa(i) és kulcsa(i):
Ezt a szekciót annyiszor kell elvégezned, ahány klienssel akarsz majd csatlakozni, és a Common Name résznél, mindegyik kliensnek más nevet adj, egyébként hibaüzi lesz a jutalmad
Több kliens esetén az alábbi parancsnál a client helyett írjunk olyan nevet, amit egymástól könnyen meg tudunk különböztetni. Ha így teszünk, akkor értelemszerűen a client helyett a későbbiekben is azt kell használnunk!
build-key client
Egyébként pedig ugyanazt kell tenni, mint a szerveres résznél. De azért a bizonytalanabbak kedvéért itt egy megerősítő kép:

Most pedig generáljunk egy Diffie Hellman bithalmazt, ami kicsit tovább fog tartani, de nem vészes
:
build-dh
Elkészültünk az összes kulcs legyártásával, de nem ártana rendet tenni.
Csináljunk egy átmeneti könyvtárat, mondjuk így, ha konzolon szeretnénk (lehet használni bármilyen fájlkezelőt is):
md c:\keys
Majd ebbe a könyvtárba helyezzük át a dh1024.pem, server.crt és server.key állományokat.
cd C:\Program Files\OpenVPN\easy-rsa\keys
move dh1024.pem c:\keys\
move server.crt c:\keys\
move server.key c:\keys\
A ca.crt állományt pedig másoljuk szintén az átmeneti könyvtárunkba:
copy ca.crt c:\keys\
És még egy adag áthelyezés:
move client.crt c:\Progra~1\OpenVPN\config
move client.key c:\Progra~1\OpenVPN\config
move ca.crt c:\Progra~1\OpenVPN\config
Most csináljuk meg a kliensek konfigurációs állományát. Egy kiindulási alap itt található: C:\Program Files\OpenVPN\sample-config\client.ovpn
Ezt szerkesszük, majd szerkesztés után mentsük le a C:\Program Files\OpenVPN\config mappába client.ovpn névvel.
Szerkesztés során arra figyeljünk, hogy hagyjunk mindent úgy ahogy van, a következő bejegyzésekre összpontosítsunk a helyes értékek megadásával és ahol szükséges, ott töröljük a sor eleji pontosvesszőt:
remote domain címed 1977
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
A domén címed helyére persze be kell helyetteítened a valós domén-od, ha van. Ha nincs, akkor a router ip címét.
A végére még be kell szúrnod a következőt, ha szeretnéd, hogy LAN-ról és WAN-ról is elérhető legyen.
Ezután jöhet a szerver konfigurációs állománya. Ez szintén hasonló lesz mint a kliensnél, de itt ezekre kell figyelni:
port 1977
user nobody
group nobody
ca /opt/etc/openvpn/easy-rsa/keys/ca.crt
cert /opt/etc/openvpn/easy-rsa/keys/server.crt
key /opt/etc/openvpn/easy-rsa/keys/server.key
dh /opt/etc/openvpn/easy-rsa/keys/dh1024.pem
Szerkesztés után mentsük ezt is az átmeneti könyvtárunkba server.conf néven.
Most már áttérünk a routerhoz, a következő parancsok nagy részét már ssh-n keresztül adjuk ki.
Telepítsük először is az openvpn-t a függőségekkel együtt (lzo):
ipkg -force-depends install openvpn
Majd adjuk ki a következő parancsokat szépen sorjában:
mkdir /dev/net
mknod /dev/net/tun c 10 200
insmod tun
echo 1 > /proc/sys/net/ipv4/ip_forward
mkdir -p /opt/etc/openvpn/easy-rsa/keys
Az előbb létrehozott /opt/etc/openvpn/easy-rsa/keys könyvtárba most bele kell másolnunk a szerver állományokat ftp, samba vagy bármi más segítségével. Azokat, amelyeket a windowson hoztunk létre, és amelyeket egy átmeneti mappában gyűjtöttünk össze. Ezek az állományok:
dh1024.pem
server.crt
server.key
ca.crt
Van még egy állományunk, a server.conf, ezt az /opt/etc/openvpn könyvtárba másoljuk.
Adjuk ki még a következő parancsot és ezután a szerverünk elvileg már működőképes.
chmod 700 /opt/etc/openvpn/easy-rsa/keys/server.key
Hátra van még a tűzfal, valamint az automatikus indulás kérdése.
#!/bin/sh
#OpenVPN access from WAN
iptables -D INPUT -j DROP
iptables -A INPUT -p udp –dport 1977 -j ACCEPT
iptables -t nat -A PREROUTING -i vlan1 -p udp –dport 1977 -j DNAT –to-destination
iptables -A INPUT -j DROP
iptables -D INPUT -j DROP
# Allow TUN interface connections to OpenVPN server
iptables -A INPUT -i tun+ -j ACCEPT
# Allow TUN interface connections to be forwarded through other interfaces
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -j DROP
Ha ezek közül a szabályok közül valamelyik is esetleg már létezne, akkor figyeljünka arra, hogy csak egyszer legyen benne.
Az indító script-nél a server.conf állományunkat kell megadni, tehát szerkeszteni kell:
vi /opt/etc/init.d/S20openvpn
Az állománynak így kell kinéznie:
#!/bin/sh
if [ -n "`pidof openvpn`" ]; then
/bin/killall openvpn 2>/dev/null
fi
# load TUN/TAP kernel module
/sbin/insmod tun
# enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Startup VPN tunnel in daemon mode
/opt/sbin/openvpn –cd /opt/etc/openvpn –daemon \
–log-append /var/log/openvpn.log \
–config server.conf
Most már csak mentenünk kell a beállításainkat és dobnunk is kell egy újraindítást:
flashfs save && flashfs commit && flashfs enable && reboot
Reboot után ha dobunk egy parancsot, akkor meggyőződhetünk, hogy fut-e újonnan felkonfigurált vpn szerverünk:
ps -ax | grep openvpn
Valami hasonlót kellene látnunk:

Teszteljük is le gyorsan, indítsuk el a windowson az openvpn-t, és csatlakozzunk.
És whoilá, kapjuk a buborékszöveget: Client is connected: 10.8.0.6
Nah, most már csak egy lépés van, teszteljük le, hogy megy-e a samba megosztásunk, már akinek fel van telepítve.
Mondjuk Total Commanderbe alulra a parancssorba gépeljük be a következőt:
cd \\10.8.0.1
És ha minden jól ment, akkor meglátjuk a megosztásunkat, amelyet ez alapján csináltunk ugye

Egy-két fontosabb letölthető állomány:
client.ovpn
s20openvpn
server.conf
Read original blog post