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"
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
./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
./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/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
/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"
/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
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
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 †††