OpenVPN und Freetz, wie stricke ich mein eigenes VPN: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(25 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<br>
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #333333; padding: 0em 1em 1em 1em; background-color:#1B1C2D; align:right;">
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(51, 51, 51); padding: 0em 1em 1em; background-color: rgb(27, 28, 45);"><br><center>[[Datei:ZD-Logo.png|link=https://www.zebradem.com/]]</center>
<br><center>[[Datei:ZD-Logo.png]]</center>
<center><big><span style="color: rgb(181, 181, 181);">'''''Das Board mit Freiheiten'''''</span></big></center>  
<center><big><span style="color:#B5B5B5;">'''''Das Board mit Freiheiten'''''</span></big></center>
<font color="white"></font>
<font color=white></font>
 
----
 
----
----
<br>
<br>
<div style="margin: 0px 20px 15pt 15pt; border: 2px solid rgb(223, 223, 223); padding: 0em 1em 1em; background-color:#303140; border: 1px solid #000000;">
<div style="margin: 0px 20px 15pt 15pt; border: 2px solid rgb(223, 223, 223); padding: 0em 1em 1em; background-color:#303140; border: 1px solid #000000;">
<br />
<br/>
{{Navi-Sektion}}
{{Navi-Freetz-Sektion}}
 
 
== <center><big>'''OpenVPN@Freetz''' </big></center> ==
 
[[Datei:Header sicherheit vpn.jpg]]




Freetz@OpenVPN
<big>'''Howto für OpenVPN mit Server@Freetz und Client@Windows''' </big>


Howto für OpenVPN mit Server@Freetz und Client@Windows. Damit ein "echtes" VPN gestrickt werden kann erkläre ich hier das ganze mit Zertifikaten zur Authentifizierung.


Es geht auch mit Key-Auhtentification, allerdings kann dann immer nur ein CLient auf den Server connecten. Mit Zertifikaten können beliebig viele VPN CLients gleichzeitig verbunden werden.


Alle Befehle gebe ich per SSH Konsole ein, Files werden per SSH/WinSCP kopiert und editiert. Darauf gehe ich hier nicht weiter ein. Wer damit Probleme hat wird hier im Freetz/FAQ Bereich fündig.
Damit ein "echtes" VPN gestrickt werden kann erkläre ich hier das ganze mit Zertifikaten zur Authentifizierung.
 
Es geht auch mit Key-Auhtentification, allerdings kann dann immer nur ein Client auf den Server connecten. Mit Zertifikaten können beliebig viele VPN CLients gleichzeitig verbunden werden.
 
Alle Befehle gebe ich per SSH Konsole ein, Files werden per SSH/WinSCP kopiert und editiert. Darauf gehe ich hier nicht weiter ein. Wer damit Probleme hat wird im Freetz/FAQ Bereich fündig.




Benötigt:
Benötigt:


Image für Fritzbox mit OpenVPN
Image für Fritzbox mit OpenVPN
OpenVPN Client für Windows, z.B. SecurepointSSLVPN_RC3
OpenVPN Client für Windows, z.B. SecurepointSSLVPN_RC3


Zum erstellen der Zertifikate für Server und Clients hab ich mir auf meinem Debian Server zusäzlich OpenVPN installiert:
Zum erstellen der Zertifikate für Server und Clients hab ich mir auf meinem Debian Server zusäzlich OpenVPN installiert:


Als "root" am Server angemeldet folgendes in der Konsole ausführen:
Als "root" am Server angemeldet folgendes in der Konsole ausführen:
apt-get install openvpn openssl


apt-get install openvpn openssl


Wenn alles installiert ist, mit WinSCP folgenden Ordner erstellen:
Wenn alles installiert ist, mit WinSCP folgenden Ordner erstellen:
/etc/openvpn


/etc/openvpn


Mit WinSCP wechseln nach  
Mit WinSCP wechseln nach  
  /usr/share/doc/openvpn/examples
  /usr/share/doc/openvpn/examples
Ordner "easy-rsa" kopieren nach  
Ordner "easy-rsa" kopieren nach  
  /etc/openvpn  
  /etc/openvpn  


Wechseln nach:
Wechseln nach:
  /etc/openvpn/easy-rsa/2.0
  /etc/openvpn/easy-rsa/2.0


Hier den Ordner "keys" anlegen.
Hier den Ordner "keys" anlegen.


Dann die Datei "vars" wie folgt editieren:
Dann die Datei "vars" wie folgt editieren:


[CODE]# easy-rsa parameter settings
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 4px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#1B1C2D; align:right;">
# easy-rsa parameter settings
# NOTE: If you installed from an RPM,
# don't edit this file in place in
# /usr/share/openvpn/easy-rsa --
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.
# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA="`pwd`"
#
# This variable should point to
# the requested executables
#
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR="$EASY_RSA/<span style="color:#FF3030">keys</span>"
# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
# PKCS11 fixes
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
# Increase this to 2048 if you
# are paranoid.  This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024
# In how many days should the root CA key expire?
export CA_EXPIRE=3650
# In how many days should certificates expire?
export KEY_EXPIRE=3650
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="<span style="color:#FF3030">DE</span>"
export KEY_PROVINCE="<span style="color:#FF3030">ZD</span>"
export KEY_CITY="<span style="color:#FF3030">ZDTOWN</span>"
export KEY_ORG="<span style="color:#FF3030">Zebradem</span>"
export KEY_EMAIL="<span style="color:#FF3030">[email protected]</span>"
export OPENVPN=openvpn
</div>


# NOTE: If you installed from an RPM,
# don't edit this file in place in
# /usr/share/openvpn/easy-rsa --
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.


# This variable should point to
Nun geht es an das erstellen der Zertifikate.
# the top level of the easy-rsa
Wenn man in der Konsole beim erstellen etwas eingeben muss, kann man einfach immer "ENTER" drücken.
# tree.
export EASY_RSA="`pwd`"


#
<span style="color:#FF3030">Ausnahme:
# This variable should point to
Wenn gefragt wird, ob Client-Zertifikate signiert werden sollen --> mit "y" (yes) bestätigen!! </span>
# the requested executables
#
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"


# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR="$EASY_RSA/[B][COLOR="#FF0000"]keys[/COLOR][/B]"
# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
# PKCS11 fixes
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
# Increase this to 2048 if you
# are paranoid.  This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024
# In how many days should the root CA key expire?
export CA_EXPIRE=3650
# In how many days should certificates expire?
export KEY_EXPIRE=3650
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="[B][COLOR="#FF0000"]DE[/COLOR][/B]"
export KEY_PROVINCE="[B][COLOR="#FF0000"]ZD[/COLOR][/B]"
export KEY_CITY="[B][COLOR="#FF0000"]ZDTOWN[/COLOR][/B]"
export KEY_ORG="[COLOR="#FF0000"][B]Zebradem[/B][/COLOR]"
export KEY_EMAIL="[B][COLOR="#FF0000"][email protected][/COLOR][/B]"
export OPENVPN=openvpn[/CODE]
Nun geht es an das erstellen der Zertifikate.
Wenn man in der Konsole beim erstellen etwas eingeben muss, kann man einfach immer "[COLOR="#FFFFE0"][B]ENTER[/B][/COLOR]" drücken.
[COLOR="#FF0000"][B]Ausnahme[/B][/COLOR]: Wenn gefragt wird, ob Clientzertifikate Signiert werden sollen --> mit "[B][COLOR="#FFFFE0"]y[/COLOR][/B]" (yes) bestätigen!!


In der Konsole wechsel nach
In der Konsole wechsel nach
[CODE]/etc/openvpn/easy-rsa/2.0[/CODE]
/etc/openvpn/easy-rsa/2.0




vars einlesen und die CA initialisieren:
vars einlesen und die CA initialisieren:
****************************************
. ./vars
./clean-all ## ACHTUNG!! löscht Inhalt von Keys Verzeichnis, nur beim ersten mal ausführen !!
 


[CODE]. ./vars
Wenn man zu einem späteren Zeitpunkt ein Client-Zertifikat erstellen möchte, muss vorher immer
./clean-all ## ACHTUNG!! löscht Inhalt von Keys Verzeichnis, nur beim ersten mal ausführen !![/CODE]
. ./vars
ausgeführt werden!




CA-Key und CA-Cert erzeugen:
CA-Key und CA-Cert erzeugen:
****************************
./build-ca
 
[CODE]./build-ca[/CODE]
 




Diffie-Hellman Parameter erzeugen:
Diffie-Hellman Parameter erzeugen:
**********************************
./build-dh
 
[CODE]./build-dh[/CODE]
 




Erzeugen von Server-Schlüsselpaar direkt von der CA:
Erzeugen von Server-Schlüsselpaar direkt von der CA:
****************************************************
./build-key-server server
 
[CODE]./build-key-server server[/CODE]
 




Erzeugen eines Client-Schlüsselpaars (ohne Passwort), für  
Erzeugen eines Client-Schlüsselpaars (ohne Passwort), für  
jeden CLient eindeutigen Namen oder aufsteigende Nummer angeben:
jeden Client eindeutigen Namen oder aufsteigende Nummer angeben:
****************************************************************
./build-key client01


[CODE]./build-key client01[/CODE]


Zertifikate liegen nun in "/etc/openvpn/easy-rsa/2.0/keys"


[COLOR="#FFFFE0"]Zertifikate liegen nun in "/etc/openvpn/easy-rsa/2.0/keys"
[/COLOR]


 
Wenn man Client-Zertifikate mit Passwortschutz erstellen möchte:
Wenn man Clientzertifikate mit Passwortschutz erstellen möchte:
./build-key-pass client01
***************************************************************
 
[CODE]./build-key-pass client01
[/CODE]




Für Client benötigte Zertifikate und Dateien:
Für Client benötigte Zertifikate und Dateien:
[COLOR="#FFFFE0"]
ca.crt
ca.crt
client01.crt
client01.crt
client01.key
client01.key[/COLOR]
 
 
Die 3 Dateien für den Client auf einen USB-Stick oder Client-Rechner kopieren.
Die 3 Dateien für den Client auf einen USB-Stick oder Client-Rechner kopieren.




Für Server benötigte Zertifikate und Dateien:
Für Server benötigte Zertifikate und Dateien:
ca.crt
server.crt
server.key
dh1024.pem


[COLOR="#FFFFE0"]ca.crt
server.crt
server.key
dh1024.pem
[/COLOR]


Nun gehts in Freetz weiter :)
Nun gehts in Freetz weiter :)
Zeile 196: Zeile 194:


OpenVPN Einstellungen öffnen, Optionen wie folgt setzen:
OpenVPN Einstellungen öffnen, Optionen wie folgt setzen:
[x] Automatisch
[x] Server
[x] UDP
[x] Brücke(TAP)
Port: 1194
[x] Zertifikate
Cipher: Blowfish


[x] Automatisch
Lokale IP-Adresse: 10.8.0.1 (Dies wird die virtuelle IP vom Server, kann natürlich auch eine andere IP sein)
[x] Server
Netzmaske: 255.255.255.0
[x] UDP
DHCP-Range: 10.8.0.150 10.8.0.160 (Je nach bedarf der virtuelle IP Bereich für Clients)
[x] Brücke(TAP)
Lokales Netz: 192.168.178.0 255.255.255.0 (Tatsächlicher IP Bereich des LAN hinter dem Server, das von außen erreichbar sein soll)
Port: 1194
[x] Zertifikate
Cipher: Blowfish


Lokale IP-Adresse: [COLOR="#FFFFE0"]10.8.0.1[/COLOR] (Dies wird die virtuelle IP vom Server)
[x] Erweiterte CLientkonfiguration (nicht unbedingt nötig, aber so wird es eine Runde Sache)
Netzmaske: [COLOR="#FFFFE0"]255.255.255.0[/COLOR]
DHCP-Range: [COLOR="#FFFFE0"]10.8.0.150 10.8.0.160[/COLOR] (Je nach bedarf der virtuelle IP Bereich für Clients)
Lokales Netz: [COLOR="#FFFFE0"]192.168.178.0 255.255.255.0[/COLOR] (Tatsächlicher IP Bereich des LAN, das von außen erreichbar sein soll)


[x] Erweiterte CLientkonfiguration (nicht unbedingt nötig, aber so wird es eine Runde Sache)
Client01 | 10.8.0.150 | 192.168.88.0 255.255.255.0  (Name des Client/Zertifikat | Fest zugewiesene VPN IP für Client | Zuletzt das echte Netz/LAN des Client mit Subnet)
 
Client01 | [COLOR="#FFFFE0"]10.8.0.150[/COLOR] | [COLOR="#FFFFE0"]192.168.88.0 255.255.255.0[/COLOR] (Zuletzt wieder das echte LAN des Client)
Client02 | 10.8.0.151 | 192.168.55.0 255.255.255.0
 
Client02 | [COLOR="#FFFFE0"]10.8.0.151[/COLOR] | [COLOR="#FFFFE0"]192.168.55.0 255.255.255.0[/COLOR]
Client03 | 10.8.0.152 | 192.168.33.0 255.255.255.0
 
Client03 | [COLOR="#FFFFE0"]10.8.0.152[/COLOR] | [COLOR="#FFFFE0"]192.168.33.0 255.255.255.0[/COLOR]




Falls die Clients sich auch sehen sollen:
Falls die Clients sich auch sehen sollen:


[x] Client-zu-Client
[x] Client-zu-Client


Anzahl der Maximalen CLients angeben.
Anzahl der Maximalen Clients angeben.


DNS Server: [COLOR="#FFFFE0"]10.8.0.1[/COLOR]
DNS Server: 10.8.0.1


Den Rest so lassen wie er ist und speichern.
Den Rest so lassen wie er ist und speichern.


Mit WinSCP die folgenden Dateien öffnen und jeweils den gesamten Inhalt an genannte Stelle kopieren:
Mit WinSCP die folgenden Dateien öffnen und jeweils den gesamten Inhalt an genannte Stelle der OpenVPN Einstellung kopieren:
 
server.crt       --> Box Cert (übernehmen)
server.crt   --> Box Cert (übernehmen)
ca.crt           --> CA Cert  (übernehmen)
ca.crt   --> CA Cert  (übernehmen)
dh1024.pem       --> DH Param (übernehmen)
dh1024.pem --> DH Param (übernehmen)
server.key       --> Private Key (übernehmen)
server.key   --> Private Key (übernehmen)


Unter OpenVPN/CRL einfach einmal "Übernehmen" drücken, damit eine leere Datei erzeugt wird. Sonst startet OpenVPN nicht!
Unter OpenVPN/CRL einfach einmal "Übernehmen" drücken, damit eine leere Datei erzeugt wird. Sonst startet OpenVPN nicht!
Zeile 241: Zeile 237:
AVM-Firewall Settings:
AVM-Firewall Settings:


[COLOR="#FFFFE0"]lowinput sowie highoutput gleich einstellen[/COLOR]:
lowinput sowie highoutput gleich einstellen:
   
  Quelle             --> any
Quelle --> any
Ziel               --> any
Ziel         --> any
Protokoll           --> UDP
Protokoll   --> UDP
Start- und End-Port --> 1194
Start- und End-Port --> 1194
Aktion             --> permit
Aktion       --> permit
(übernehmen)
(übernehmen)




Port Forwarding:
Port Forwarding:
 
Protokoll --> UDP
Protokoll --> UDP
Ziel      --> Fritz!Box
Ziel       --> Fritz!Box
Quell Port --> 1194
Quell Port --> 1194
Ziel Port  --> 1194
Ziel Port  --> 1194
(übernehmen)
(übernehmen)


Fritzbox neu starten.
Fritzbox neu starten.
Zeile 267: Zeile 261:


VPN Client starten, neue Konfig anlegen:
VPN Client starten, neue Konfig anlegen:
Name
IP des Server (DynDns Adresse)
Root CA = ca.crt
Zertifikat = client01.crt
Schlüssel = client01.key
[x] Server Zertifikat
[ ] Auth user/pass (Haken entfernen!)


Name
Rest so lassen, "Next" und "Finish" drücken.
IP des Server (DynDns Adresse)
 
Neu erstellte Konfig mit rechter Maustaste anklicken --> Editieren wählen
Root CA = ca.crt
Zertifikat = client01.crt
"DEV" von "tun" auf "tap" umstellen, "OK" klicken.
Schlüssel = client01.key
[x] Server Zertifikat
 
[ ] Auth user/pass (Haken entfernen!)
 
Rest so lassen, "Next" und "Finish" drücken.
 
Neu erstellte Konfig mit rechter Maustaste anklicken --> Editieren wählen
 
"DEV" von "tun" auf "tap" umstellen, "OK" klicken.


Wenn dies alles erledigt ist, am besten mal eine Sicherung der Freetz Settings sowie ein Export der Client-VPN-
Wenn dies alles erledigt ist, am besten mal eine Sicherung der Freetz Settings sowie ein Export der Client-VPN-
Zeile 293: Zeile 284:


Regedit auf Client-Rechner starten.
Regedit auf Client-Rechner starten.
HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ Tcpip\ Parameters
Eintrag "IPEnableRouter" Wert auf 1 setzen.


[COLOR="#FFFFE0"]HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ Tcpip\ Parameters[/COLOR]
Rechner neu starten.


Eintrag "[COLOR="#FFFFE0"]IPEnableRouter[/COLOR]" Wert auf[COLOR="#FFFFE0"] 1[/COLOR] setzen.
Gateway der übrigen Rechner im Client LAN auf die IP des Client Rechner setzen.


Rechner neu starten.
Nun sollte man schön hin und her Pingen können...
 
== Wichtige Links  ==
*[[Freetz|Zurück zu Freetz]]
*[[Hauptseite|Zurück zu Hauptseite]]


Gateway der übrigen Rechner im CLient LAN auf die IP des Client Rechner setzen.


Nun sollte man schön hin und her Pingen können...
[[Category:Fritzbox]]
[[Category:Sitemap]]
[[Category:Netzwerk]]

Aktuelle Version vom 17. März 2012, 19:15 Uhr


Das Board mit Freiheiten





Zebradem Fritzbox Wiki >> OpenVPN und Freetz, wie stricke ich mein eigenes VPN Magyar, Nederlands, Italiano, English
Community Modelle Freetz Fritzbox Tipps & Tricks

Einführung Freetz Pakete Freetz Addons Freetz Tipps Freetz chroot Freetz Images Freetz Faqs


OpenVPN@Freetz


Howto für OpenVPN mit Server@Freetz und Client@Windows


Damit ein "echtes" VPN gestrickt werden kann erkläre ich hier das ganze mit Zertifikaten zur Authentifizierung.

Es geht auch mit Key-Auhtentification, allerdings kann dann immer nur ein Client auf den Server connecten. Mit Zertifikaten können beliebig viele VPN CLients gleichzeitig verbunden werden.

Alle Befehle gebe ich per SSH Konsole ein, Files werden per SSH/WinSCP kopiert und editiert. Darauf gehe ich hier nicht weiter ein. Wer damit Probleme hat wird im Freetz/FAQ Bereich fündig.


Benötigt:

Image für Fritzbox mit OpenVPN
OpenVPN Client für Windows, z.B. SecurepointSSLVPN_RC3

Zum erstellen der Zertifikate für Server und Clients hab ich mir auf meinem Debian Server zusäzlich OpenVPN installiert:

Als "root" am Server angemeldet folgendes in der Konsole ausführen:

apt-get install openvpn openssl


Wenn alles installiert ist, mit WinSCP folgenden Ordner erstellen:

/etc/openvpn


Mit WinSCP wechseln nach

/usr/share/doc/openvpn/examples


Ordner "easy-rsa" kopieren nach

/etc/openvpn 


Wechseln nach:

/etc/openvpn/easy-rsa/2.0

Hier den Ordner "keys" anlegen.

Dann die Datei "vars" wie folgt editieren:

# easy-rsa parameter settings

# NOTE: If you installed from an RPM,
# don't edit this file in place in
# /usr/share/openvpn/easy-rsa --
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.

# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA="`pwd`"

#
# This variable should point to
# the requested executables
#
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"


# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR="$EASY_RSA/keys"

# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR 

# PKCS11 fixes
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy" 

# Increase this to 2048 if you
# are paranoid.  This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024

# In how many days should the root CA key expire?
export CA_EXPIRE=3650

# In how many days should certificates expire?
export KEY_EXPIRE=3650

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="DE"
export KEY_PROVINCE="ZD"
export KEY_CITY="ZDTOWN"
export KEY_ORG="Zebradem"
export KEY_EMAIL="[email protected]"

export OPENVPN=openvpn


Nun geht es an das erstellen der Zertifikate. Wenn man in der Konsole beim erstellen etwas eingeben muss, kann man einfach immer "ENTER" drücken.

Ausnahme: 
Wenn gefragt wird, ob Client-Zertifikate signiert werden sollen --> mit "y" (yes) bestätigen!!  


In der Konsole wechsel nach

/etc/openvpn/easy-rsa/2.0


vars einlesen und die CA initialisieren:

. ./vars
./clean-all ## ACHTUNG!! löscht Inhalt von Keys Verzeichnis, nur beim ersten mal ausführen !!


Wenn man zu einem späteren Zeitpunkt ein Client-Zertifikat erstellen möchte, muss vorher immer

. ./vars

ausgeführt werden!


CA-Key und CA-Cert erzeugen:

./build-ca


Diffie-Hellman Parameter erzeugen:

./build-dh


Erzeugen von Server-Schlüsselpaar direkt von der CA:

./build-key-server server


Erzeugen eines Client-Schlüsselpaars (ohne Passwort), für jeden Client eindeutigen Namen oder aufsteigende Nummer angeben:

./build-key client01


Zertifikate liegen nun in "/etc/openvpn/easy-rsa/2.0/keys"


Wenn man Client-Zertifikate mit Passwortschutz erstellen möchte:

./build-key-pass client01


Für Client benötigte Zertifikate und Dateien:

ca.crt
client01.crt
client01.key

Die 3 Dateien für den Client auf einen USB-Stick oder Client-Rechner kopieren.


Für Server benötigte Zertifikate und Dateien:

ca.crt
server.crt
server.key
dh1024.pem


Nun gehts in Freetz weiter :)


OpenVPN Einstellungen öffnen, Optionen wie folgt setzen:

[x] Automatisch
[x] Server
[x] UDP
[x] Brücke(TAP)
Port: 1194
[x] Zertifikate
Cipher: Blowfish
Lokale IP-Adresse:	10.8.0.1 (Dies wird die virtuelle IP vom Server, kann natürlich auch eine andere IP sein)
Netzmaske: 		255.255.255.0
DHCP-Range:		10.8.0.150 10.8.0.160 (Je nach bedarf der virtuelle IP Bereich für Clients)
Lokales Netz: 		192.168.178.0 255.255.255.0 (Tatsächlicher IP Bereich des LAN hinter dem Server, das von außen erreichbar sein soll)
[x] Erweiterte CLientkonfiguration (nicht unbedingt nötig, aber so wird es eine Runde Sache)
Client01 | 10.8.0.150 | 192.168.88.0 255.255.255.0  (Name des Client/Zertifikat | Fest zugewiesene VPN IP für Client | Zuletzt das echte Netz/LAN des Client mit Subnet)

Client02 | 10.8.0.151 | 192.168.55.0 255.255.255.0

Client03 | 10.8.0.152 | 192.168.33.0 255.255.255.0


Falls die Clients sich auch sehen sollen:

[x] Client-zu-Client
Anzahl der Maximalen Clients angeben.
DNS Server: 10.8.0.1

Den Rest so lassen wie er ist und speichern.

Mit WinSCP die folgenden Dateien öffnen und jeweils den gesamten Inhalt an genannte Stelle der OpenVPN Einstellung kopieren:

server.crt        --> Box Cert (übernehmen)
ca.crt            --> CA Cert  (übernehmen)
dh1024.pem        --> DH Param (übernehmen)
server.key        --> Private Key (übernehmen)

Unter OpenVPN/CRL einfach einmal "Übernehmen" drücken, damit eine leere Datei erzeugt wird. Sonst startet OpenVPN nicht!


AVM-Firewall Settings:

lowinput sowie highoutput gleich einstellen:

Quelle              --> any
Ziel                --> any
Protokoll           --> UDP
Start- und End-Port --> 1194
Aktion              --> permit

(übernehmen)


Port Forwarding:

Protokoll  --> UDP
Ziel       --> Fritz!Box
Quell Port --> 1194
Ziel Port  --> 1194
(übernehmen)

Fritzbox neu starten.


Weiter auf Client Rechner:

SecurepointSSLVPN_RC3 installieren.

VPN Client starten, neue Konfig anlegen:

Name
IP des Server (DynDns Adresse)
Root CA = ca.crt
Zertifikat = client01.crt
Schlüssel = client01.key
[x] Server Zertifikat
[ ] Auth user/pass (Haken entfernen!)
Rest so lassen, "Next" und "Finish" drücken.

Neu erstellte Konfig mit rechter Maustaste anklicken --> Editieren wählen

"DEV" von "tun" auf "tap" umstellen, "OK" klicken.

Wenn dies alles erledigt ist, am besten mal eine Sicherung der Freetz Settings sowie ein Export der Client-VPN-

Settings durchführen. War ja nun auch genug Arbeit ;)


Wenn man einen anderen Router als Client zum VPN Server verbindet, sollten beide LANs untereinander ereichbar sein. Wenn ein PC den Client darstellt, gibt es noch folgenden Trick:

Regedit auf Client-Rechner starten.

HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ Tcpip\ Parameters

Eintrag "IPEnableRouter" Wert auf 1 setzen.

Rechner neu starten.

Gateway der übrigen Rechner im Client LAN auf die IP des Client Rechner setzen.

Nun sollte man schön hin und her Pingen können...

Wichtige Links