OpenVPN HowTo Step By Step

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
webster
Użytkownik
Posty: 1269
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

OpenVPN HowTo Step By Step

Post autor: webster »

Na wstępie informuję, że nie będę przepisywać dokumentacji. Skromne moje opisy służą ogólnie by dać zarys instalacji i konfiguracji.
Kto nie ma openvpn, zapraszam na slackbuilds lub ściągnąć paczkę z repo dla swojej wersji systemu.
Testowane na openvpn-2.1.4-i486-2 openssl-0.9.8r-i486-3 Slackware 13.37

Step By Step, no to zaczynamy...

cd /usr/share/doc/openvpn-*
cp -av easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa

Tworzysz PLIK vars

Kod: Zaznacz cały

export D=/etc/openvpn/easy-rsa/2.0/
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl.cnf
export KEY_DIR=/etc/openvpn/easy-rsa/keys
export KEY_SIZE=1024
export KEY_COUNTRY=PL
export KEY_PROVINCE=Pomorskie
export KEY_CITY=Gdansk
export KEY_ORG="twoja_firma"
export KEY_EMAIL="administrator@twoja_firma"
! UWAGA Ścieżki deklarowane w pliku vars, mogą się zmieniać w zależności od wersji VPN !

chmod +x vars
source ./vars
cd 2*
sh clean-all
sh build-ca # same entery

UWAGA!
sh build-key-server server # same entery # Na zapytanie o przeładowaniu bazy potwierdzamy # żadnych haseł #
NA ZAPYTANIA:
Sign the certificate? Odpowiedź "y"
1 out of 1 certificate requests certified, commit? Odpowiedź "y"


Tworzysz PLIK build-dh

Kod: Zaznacz cały

#!/bin/sh
if test $KEY_DIR; then
    openssl dhparam -out ${KEY_DIR}/dh${KEY_SIZE}.pem ${KEY_SIZE}
else
    echo you must define KEY_DIR
fi
chmod +x build-dh
./build-dh

Tworzysz PLIK make-crl

Kod: Zaznacz cały

#!/bin/sh

#
# generate a CRL
#
#
sed -i 's/organizationalUnitName_default = $ENV::KEY_OU/organizationalUnitName_default = optional/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
sed -i 's/commonName_default = $ENV::KEY_CN/commonName_default = supplied/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
sed -i 's/name_default = $ENV::KEY_NAME/name_default = optional/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"

if test $# -ne 1; then
        echo "usage: make-crl <crlfile.pem>";
        exit 1
fi

if test $KEY_DIR; then
       cd $KEY_DIR && \
       openssl ca -gencrl -out $1 -config $KEY_CONFIG
else
       echo you must define KEY_DIR
fi
sed -i 's/organizationalUnitName_default = optional/organizationalUnitName_default = $ENV::KEY_OU/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
sed -i 's/commonName_default = supplied/commonName_default = $ENV::KEY_CN/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
sed -i 's/name_default = optional/name_default = $ENV::KEY_NAME/g' /etc/openvpn/easy-rsa/2*/openssl.cnf
chmod +x make-crl
./make-crl crl.pem
cd ../keys/
openvpn --genkey --secret ta.key
cd /etc/openvpn/

Tworzysz PLIK server.conf

Kod: Zaznacz cały

port 1194
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key                                   
dh dh1024.pem
server 10.15.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.20.0.0 255.255.255.0  
client-to-client
keepalive 10 120
tls-auth ta.key 0 
comp-lzo
user nobody
group nobody
persist-key 
persist-tun 
status /var/log/openvpn-status.log
log-append  /var/log/openvpn.log  
verb 3
crl-verify crl.pem
cp easy-rsa/keys/server.{key,crt} .
cp easy-rsa/keys/dh1024.pem .
cp easy-rsa/keys/ta.key .
cp easy-rsa/keys/ca.crt .
cp easy-rsa/keys/crl.pem .
mkdir ccd

Tworzysz PLIK /etc/rc.d/rc.openvpn

Kod: Zaznacz cały

#!/bin/sh
#
# /etc/rc.d/rc.openvpn
#
# Start/stop/restart the OpenVPN server.
#
# To make OpenVPN start automatically at boot, make this

case "$1" in
   'start')
      modprobe tun
      openvpn --cd /etc/openvpn --daemon --config server.conf ;;
   'stop')
      killall -TERM openvpn ;;
   'restart')
      killall -TERM openvpn ;
      modprobe tun
      openvpn --cd /etc/openvpn --daemon --config server.conf ;;
   *)
      echo "usage $0 start|stop|restart" ;;
esac
chmod +x /etc/rc.d/rc.openvpn
/etc/rc.d/rc.openvpn start

#################################################################################################
Tyle jeśli chodzi o serwer
#################################################################################################

Tworzymy Klienta o nazwie "client"
Etap na serwerze


cd /etc/openvpn/easy-rsa/
source ./vars
cd 2*
sh build-key client # same entery # Na zapytanie o przeładowaniu bazy potwierdzamy # żadnych haseł
NA ZAPYTANIA:
Sign the certificate? Odpowiedź "y"
1 out of 1 certificate requests certified, commit? Odpowiedź "y"


cd /etc/openvpn/ccd

Tworzysz PLIK client

Kod: Zaznacz cały

ifconfig-push 10.20.0.1 10.20.0.2
push "route 10.20.0.0 255.255.255.0"  
# Adres sieci lokalnej w której znajduje się serwer - 192.168.1.0/24
push "route 192.168.1.0 255.255.255.0"
# Można wymusić zmianę serwera DNS klientowi - działa tylko z klientem windows
push "dhcp-option DNS 153.19.250.100"
Pliki które przekazujemy klientowi to
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
/etc/openvpn/ca.crt
/etc/openvpn/ta.key

########################################################################
Przykładowy config dla klienta linux
########################################################################
cd /etc/openvpn/conf

Tworzysz PLIK client.conf

Kod: Zaznacz cały

client
dev tun0
proto udp
remote IP_SERWERA_VPN 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/conf/ca.crt
cert /etc/openvpn/conf/client.crt
key /etc/openvpn/conf/client.key
ns-cert-type server
tls-auth /etc/openvpn/conf/ta.key 1
comp-lzo
verb 3
status /var/log/openvpn-status.log
script-security 2
Pliki które otrzymał klient od nas: client.crt, client.key, ca.crt, ta.key
Wrzucamy do /etc/openvpn/conf/
Uruchamiamy clienta:

/usr/sbin/openvpn --cd /etc/openvpn --daemon --config /etc/openvpn/conf/client.conf

########################################################################
Przykładowy config dla klienta windows
########################################################################

Wchodzimy do (dysk_systemowy)/Program Files/OpenVPN/conf(ig)

Tworzysz PLIK client.ovpn

Kod: Zaznacz cały

client
dev tun
proto udp
remote IP_SERWERA_VPN 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.m.crt
key client.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3
route-method exe
route-delay 2
Pliki które otrzymał klient od nas: client.crt, client.key, ca.crt, ta.key
wrzucamy do (dysk_systemowy)/Program Files/OpenVPN/conf(ig)

Uruchamiamy vpn_gui, pojawi się aplikacja w tray, dajemy na nią dwuklik bądź prawym i "Connect"


################################################################################################################################################

Koniec.

Wszelkie uwagi mile widziane.

Pozdr.


[*]OpenVPN HowTo Step By Step ††† OpenVPN How To ††† Linux OpenVPN HowTo ††† slackware OpenVPN HowTo †††
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook
ODPOWIEDZ