• Vastliggende pagina
  • Info
  • Bijlages

Versie 14 sinds 2011-08-27 14:58:29

Bericht wissen

Server

Installatie

Eerst installeert u OpenVPN en dnsmasq. Dnsmasq deelt ip-adressen aan client computers uit.

Ubuntu/Debian:

sudo apt-get install openvpn dnsmasq

Fedora/CentOS/RedHat:

sudo yum install openvpn dnsmasq

Configureren

Maken van een directory waarin een programma wordt gekopieerd die codes aan kan maken

sudo mkdir /etc/openvpn/easy-rsa && sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Aanpassen van gebruikerscertificaat

Je wijzigt het bestand /etc/openvpn/easy-rsa/vars en pas je helemaal onderaan KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG en KEY_EMAIL. aan je situatie aan. door het volgende commando

sudo nano /etc/openvpn/easy-rsa/vars 

Creëren van CA(Certificate Authority) en dan een eerste servercertificaat

sudo -i
cd /etc/openvpn/easy-rsa/
chmod g+w *
source ./vars
./clean all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
cp server.crt server.key ca.crt dh1024.pem ta.key ../../
exit

Configuratie aanmaken

Maak nu een configuratie aan van de openVPN Server in /etc/openvpn/server.conf

mode server
tls-server

# Het echte locale ip van de server/desktop
local 0.0.0.0
#de aangegeven poort
port 1194 
# Protocol, udp of tcp
proto udp

dev tun

persist-key
persist-tun

# De certificaten en codes
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
# Het cijfer na de bestandsnaam dient voor het aangeven van de richting, de normale richting is van 0 naar 1
tls-auth ta.key 0 

# Functie om de pakketten die over de verbinding worden verstuurd te comprimeren
comp-lzo

# DCHP van het virtuele netwerk (tweede ip is subnetmask)
server 0.0.0.0 0.0.0.0

user nobody
group nogroup
keepalive 10 120
status openvpn-status.log
verb 3

Openvpn als veilige gateway gebruiken

Aanpassingen op de OpenVPN server

Als u Openvpn als veilige gateway wilt gebruiken, voegt u de regel  push "redirect-gateway def1"  aan het configuratie bestand van de server toe. Nu geeft de OpenVPN server door aan de client dat alle informatie die normaal via de standaard gateway van de client gaat, nu via de VPN gerouteerd moet worden. De server moet dan wel eerst als router geconfigureerd worden, anders blokkeert deze die informatie meteen. Dat instellen van routering gaat met iptables en een kernel configuratie (als root uitvoeren):

iptables:

# Apply forwarding for vpn tunnel
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 0.0.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -o eth0 -j MASQUERADE

In plaats van 0.0.0.0 , typt u uw uitgekozen dchp netwerk in voor het VPN.

kernel configuratie:

Naast het configureren van iptables moet ook de kernel nog routing toestaan. Dat kan door in /etc/sysctl.conf een # weg te halen voor een regel:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Verder moet er nog doorgegeven worden aan clients wat de dns server is die wordt gebruikt.

Om het ip-adres van deze dns server te vinden toest u in de server het volgende commando in op de OpenVPN server, u ziet dan vanzelf het ip-adres van de nameserver:

cat /etc/resolv.conf

Vervolgens voegt u de volgende regel toe aan de server OpenVPN configuratie:

push "dhcp-option DNS 0.0.0.0"

Waarbij u '0.0.0.0' vervangt door het boven gevonden ip adres.

Aanpassingen op de Linux OpenVPN client

Een Linux OpenVPN client gebruikt nu echter nog dezelfde dns nameserver als altijd, en omdat de client dns aanvragen nu gerouteerd worden via de server zou de client ook gebruik moeten maken van de dns nameserver die de OpenVPN server gebruikt. Zodra de VPN verbinding op de client geactiveerd wordt moet dus automatisch het adres van de nameserver gewijzigd worden. Dit kan met het pakket resolvconf. Installeer dit pakket:

sudo apt-get install resolvconf

Link nu de automatisch gegenereerde resolv.conf door naar /etc/resolv.conf:

cd /etc
#maak een backup van resolv.conf
sudo mv resolv.con resolv.conf.orig
sudo ln -s /etc/resolvconf/run/resolv.conf /etc/resolv.conf

Installeer nu de OpenVPN client.

Voeg vervolgens de volgende regels toe aan de clients OpenVPN configuratie (/etc/openvpn/client.conf):

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Herstarten openVPN

Na de configuratie moet u de server herstarten

sudo /etc/init.d/openvpn restart

Openvpn automatisch laten opstarten

Om openVPN automatisch te laten starten bij het opstarten, moet u het "#" voor  AUTOSTART="all"  verwijderen, in het bestand /etc/default/openvpn.

sudo nano /etc/default/openvpn

Aanmaken certificaat client

Nu moet u nog certificaten voor client 1 aanmaken, de certificaten bevinden zich in de map /etc/openvpn/easy-rsa/keys:

cd /etc/openvpn/easy-rsa/
source ./vars
./pkitool client1

Als u meerdere client certificaten wilt aanmaken kunt "client1" wijzigen in een door u gekozen naam.

Aanmaken van 2e identiteit

Heeft de client een geheel ander identiteit dan kunt u een tweede identiteit aanmaken door de inhoud van het eerst identiteit /etc/openvpn/easy-rsa/vars te kopiëren naar een een nieuw identiteit met de naam vars2, in dezelfde map (/etc/openvpn/easy-rsa). en alleen de regels KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG en KEY_EMAIL te wijzigen naar de nieuwe identiteit.

cd /etc/openvpn/easy-rsa/
cat vars >> vars2
sudo nano vars2

U bent nu klaar met het configureren van de server, nu moet u de client nog configureren