Openvpn

Openvpn szerver telepítés linux-ra, cert generálás. Windows és linux kliensekkel csatlakozás.

Telepítsük fel az openvpn-t:
 
# apt-get install openvpn easy-rsa

Adjuk ki a következő parancsot, hogy létrehozzuk az alap openvpn config-ot:
 
# gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

A configában állítsuk be a köetkező dolgokat /etc/openvpn/server.conf :
 
# a szerver külső ip-je
local x.x.x.x 

proto tcp

dev tun

ca      /etc/openvpn/ca.crt    # generated keys
cert    /etc/openvpn/server.crt
key     /etc/openvpn/server.key  # keep secret
dh      /etc/openvpn/dh2048.pem

# dh  dh2048.pem

# range amiben vannak a kliensek
server 10.9.8.0 255.255.255.0  

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

dev tun
topology subnet
push "dhcp-option 10.9.8.1"

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log

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

verb 6

Kapcsoljuk bea csomag továbbítást:
 
# echo 1 > /proc/sys/net/ipv4/ip_forward

Az /etc/sysctl.conf fájlban is állítsuk be:
 
net.ipv4.ip_forward=1

A tűzfalban engedjük ki a 1194-es porton, ezt nem részletezzük itt.

Hozzuk létre a certeket.

Másoljuk a scripteket a helyükre:
 
# cp -r /usr/share/easy-rsa/ /etc/openvpn

Hozzuk létre a kulcsok tároló mappáját:
 
# mkdir /etc/openvpn/easy-rsa/keys

Hozzuk létre beállításokat tároló fájlt:
 
# nano /etc/openvpn/easy-rsa/vars

Állítsuk be a /etc/openvpn/easy-rsa/vars  fájlban az adatainkat:
 
export EASY_RSA="`pwd`"

export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

export KEY_DIR="$EASY_RSA/keys"

export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"

export KEY_SIZE=2048

export CA_EXPIRE=3650

export KEY_EXPIRE=3650

export KEY_COUNTRY="HU"
export KEY_PROVINCE="GYSM"
export KEY_CITY="Gyor"
export KEY_ORG="itgyor"
export KEY_EMAIL="mail@example.com"
export KEY_OU="example.com"

export KEY_NAME="servername"


Generáljuk le a dh fájlt:
# openssl dhparam -out /etc/openvpn/dh2048.pem 2048

Generáljuk le a szervernek a certjeit a kérdésekre válaszoljunk:
 
# ./build-key-server server

Másoljuk a helyükre a szerver certjeit:
 
# cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn

Indítsuk el a szerveren a vpn-t:
 
# systemctl start openvpn
# systemctl status openvpn

Hozzuk létre a kliens-eknek certeket:
 
# cd /etc/openvpn/easy-rsa
# source ./vars //-- kitölteni ha szükséges

A kérdésekre válaszolni kell megfelelően a buildelés során
# ./build-key username //-- bármilyen kitalált név lehet

Létrejött a username.crt, username.csr, username.key fájl a /etc/openvpn/easy-rsa/keyt mappában, ezeket másoljuk ki a gépünkre.
Innen másoljuk ki a ca.crt fájlt is.

Hozzunk létre egy username.openpvn fájlt a következő tartalommal:
 
client
dev tun
proto tcp
remote "szerver ip címe" 1194
resolv-retry infinite
redirect-gateway autolocal
route-nopull
nobind
persist-key
persist-tun
ca ca.crt
cert username.crt
key username.key
ns-cert-type server
comp-lzo
verb 3 

Az windows-os kliens gépünkön a c:\Program Files\OpenVPN\config\ hozzunk létre egy új mappát és a fenti 5 db fájlt másoljuk be. Csatlakozhatunk ezután a vpn szerverhez.

Linux kliensnél másoljuk fel az 5db fájlt egy mappába. Majd a mappában kiadjuk a kiadjuk a következő parancsot a csatlakozáshoz:
 
# openvpn --config username.ovpn

Olvasnivaló:
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-debian-8
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04
https://wiki.debian.org/OpenVPN
https://community.openvpn.net/openvpn/wiki
http://https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-linux/
2020.06.06.