Raspberry Pi: OpenVPN VPN-Server installieren

21 Mai
21. Mai 2013

Wenn man in einem öffentlichen W-LAN in z.B. einem Café oder in der Uni ist, so kann der Datenverkehr über dieses mit geschnitten werden und somit auch persönliche Daten und Zugangsdaten ausgelesen werden. Um dies zu verhindern, kann man eine verschlüsselte Verbindung legen, einen sogenannten VPN-Tunnel. Dieser leitet den kompletten Datenverkehr verschlüsselt an einen Server, der wiederum die eigentlich gewünschten Abfragen ausführt und die Antworten wieder verschlüsselt zurück an dich sendet. Den Raspberry Pi kann man als solchen Server an seinem eigenen Internet angebunden nutzen, mittels des VPN-Servers OpenVPN. Alternativ kann man auch PPTP nutzen (inzwischen unsicher). Die Vor- und Nachteile beider Systeme werde ich an diesem Punkt nicht erläutern. Wie man OpenVPN auf dem Raspberry Pi installiert erkläre in folgendem Tutorial.

Voraussetzung: Raspbian oder vergleichbare Distribution installiert

Step 1 

Zunächst aktualisieren wir die Quellen des Paketmanagers, damit wir später die aktuellen Programmversionen installieren können.

sudo apt-get update

Step 2 

Nun installieren wir OpenVPN und OpenSSL. Der Installation muss mittels Y zugestimmt werden.

sudo apt-get install openvpn openssl

Step 3 

Wir wechseln nun in das Verzeichnis von OpenVPN in dem wir einen Ordner kopieren, den wir gleich benötigen werden.

cd /etc/openvpn
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa

Step 4 

Jetzt ersetzten wir mittels eines Editors in der Datei easy-rsa/vars die erste durch die zweite folgende Code-Passage. Im Editor nano speichert man mittels STRG + X und darauffolgend ein Y wie auch Enter.

sudo nano easy-rsa/vars

ersetzen durch

Step 5 

Nun wechseln wir das Verzeichnis, loggen uns in den Root-User ein und führen folgende Kommandos (Konfigurationen) aus.

cd easy-rsa
sudo su
source vars
./clean-all
./pkitool --initca
ln -s openssl-1.0.0.cnf openssl.cnf

Step 6 

Wir können nun die Komponenten für die Verschlüsselung des OpenVPN Zugangs generieren. Nach der Eingabe des ersten Kommandos wird man nach dem Land als Abkürzung gefragt (DE = Deutschland; AT = Österreich; CH = Schweiz). Alle weiteren Angaben können einfach bestätigt werden, da sie für OpenVPN nicht relevant sind. Das Selbe gilt bei dem zweiten und dritten Kommando, wobei wir dort am Ende mit Y zwei mal bestätigen müssen.

./build-ca OpenVPN
./build-key-server server
./build-key client1

Step 7 

Jetzt müssen wir noch die letzten Komponenten errechnen lassen. Dies kann ein paar Minuten dauern. Daraufhin melden wir uns mittels exit vom Root-User wieder ab.

./build-dh
exit

Step 8 

Wir müssen nun wieder das Verzeichnis wechseln, die Datei openvpn.conf erstellen und in diese den Code-Block einfügen. Falls gewünscht können in diesem die DNS-Server ausgetauscht werden.

cd ..
sudo touch openvpn.conf
sudo nano openvpn.conf

Step 9 

Nun richten wir die Internetweiterleitung ein, damit später der durch OpenVPN verbundene Computer auch Internetzugriff erhält. Sofern du nicht die Ethernetbuchse deines Raspberry Pis nutzt (z.B. W-LAN) musst du eth0 im folgenden Kommando durch den Namen deines Netzwerkadapters ersetzen. Wie dieser heißt, findest du mittels ifconfig heraus.

sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Step 10 

Zu guter Letzt entfernen wir in der Datei sysctl.conf im übergeordneten Ordner vor der Zeile net.ipv4.ip_forward=1 die Raute.

cd ..
sudo nano sysctl.conf

Step 11 

Ein Teil der oben eingerichteten Einstellungen müssen noch als Crontab eingetragen werden damit sie dauerhaft funktionieren. Dafür fügen wir folgende Zeilen am Ende der der Crontab in eine neue Zeile ein (wieder im Bedarfsfall eth0 ersetzen).

crontab -e

Step 12 

Wir wechseln nun erneut in den Root-User und mit diesem in das Verzeichnis /etc/openvpn/easy-rsa/keys in dem wir die Datei raspberrypi.ovpn erstellen und mit dem zweiten Absatz befüllen. Dabei musst du RASPBERRY-PI-IP durch die IP-Adresse deines Raspberry Pis ersetzten, bzw., wenn du einen DynDNS Dienst, nutzt durch deine DynDNS Domain.

sudo su
cd /etc/openvpn/easy-rsa/keys
nano raspberrypi.ovpn

Step 13 

Jetzt erstellen wir noch ein Paket mit allen benötigten Dateien für den Client, welches wir in /home/pi ablegen und geben dem Benutzer pi die Rechte an der Datei. Daraufhin melden wir uns vom Benutzer root ab.

tar czf openvpn-keys.tgz ca.crt client1.crt client1.key raspberrypi.ovpn
mv openvpn-keys.tgz /home/pi
chown pi:pi /home/pi/openvpn-keys.tgz
exit

Step 14 

Zuletzt starten wir den OpenVPN Server neu.

sudo /etc/init.d/openvpn restart

Weitere Clients hinzufügen

Step 15 (optional) 

Weitere Zertifikate für weitere Clients zu erstellen geht im Grund ebenso wie das erstellen des Ersten. Dazu melden wir mittels sudo su als Root-User an. Im Folgenden Befehl muss clientX durch eine vorlaufende Nummer des Clients ersetzt werden – oder einen Namen. Die gestellten Fragen beantworten wir wie in Step 6.

cd /etc/openvpn/easy-rsa/
sudo su
source vars
./build-key clientX

Step 16 (optional) 

Nun legen wir, wie in Step 12, die Datei raspberrypi.ovpn an, wobei wir alle Vorkommen von client1 durch den Ersatz von clientX ersetzen.

Step 17 (optional) 

Zuletzt packen wir wieder ein .tgz Archiv und melden uns von dem Root-User ab. Auch hier müssen wir clientX ersetzen.

cd /etc/openvpn/easy-rsa/keys
tar czf openvpn-keys-clientX.tgz ca.crt clientX.crt clientX.key raspberrypi.ovpn
mv openvpn-keys-clientX.tgz /home/pi
chown pi:pi /home/pi/openvpn-keys-clientX.tgz
exit

Zertifikat zurückziehen

Step 18 (optional) 

Es kann dazu kommen, dass man einem Nutzer den Zugang wieder entziehen möchte oder im Falle eines entwendeten Zertifikates, entziehen muss. Dieser Vorgang nennt sich revoke. Mit folgendem Kommando kann man das Zertifikat für einen Client entwerten. Dabei ist clientX durch den jeweiligen Client Namen zu ersetzen.

sudo su
cd /etc/openvpn/easy-rsa
source vars
openssl ca -config openssl.cnf -revoke keys/clientX.crt -keyfile keys/ca.key -cert keys/ca.crt
openssl crl -in keys/crl.pem -text

Step 19 (optional) 

Abschließend müssen wir eine Prüfung auf abgelaufene Keys einfügen und OpenVPN neustarten.

nano /etc/openvpn/openvpn.conf

Am Ende der Datei einfügen

/etc/init.d/openvpn restart
exit

Fertig! Nun können wir z.B. mittels WinSCP die openvpn-keys.tgz Datei auf unseren Computer herunterladen. Den Inhalt dieser Datei entpacken wir nun in den entsprechend Ordner unseres OpenVPN Clients auf unserem Rechner und können uns dann mit unserem OpenVPN Server auf dem Raspbery Pi verbinden. Einen OpenVPN Client für Windows gibts bei OpenVPN.net; für Mac gibts die App Tunnelblick und für Linux-User mittels des Paketes openvpn.

Für Benutzer des Telekom Routers Speedport W 921V oder verwandten Modellen, die Probleme beim Verbindungsaufbau haben, hat Marcus in den Kommentaren einen Lösungsansatz beschrieben.

Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router

Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.

1194
Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
335 Antworten
  1. Kevin says:

    Hallo, ich bekomme bei Dem Step 13 für die folgende Kommandozeile „client1.key raspberrypi.ovpn“ eine Fehlermeldung: „bsh: client1.key: command not found“

    Können Sie da weiter helfen?

    MfG
    Kevin

    Antworten
    • Jan Karres says:

      Die Kommandozeile lautet tar czf openvpn-keys.tgz ca.crt ca.key client1.crt client1.csr client1.key raspberrypi.ovpn – vollständig funktioniert es 😉

      Antworten
      • ema says:

        Die Kommandozeile tar czf openvpn-keys.tgz ca.crt client1.crt client1.csr client1.key raspberrypi.ovpn

        gibt auch bei mir folgendes aus:
        [email protected]:/etc/openvpn/easy-rsa/keys# tar czf openvpn-keys.tgz ca.crt client1.crt client1.csr client1.key raspberrypi.ovpn
        tar: client1.crt: Kann stat nicht ausführen: Datei oder Verzeichnis nicht gefunden
        tar: client1.csr: Kann stat nicht ausführen: Datei oder Verzeichnis nicht gefunden
        tar: client1.key: Kann stat nicht ausführen: Datei oder Verzeichnis nicht gefunden
        tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler
        [email protected]:/etc/openvpn/easy-rsa/keys#

        Antworten
        • Jan Karres says:

          Wie der Fehler schon in Worten zeigt existieren ein paar Dateien nicht. Konkret sind das die Schlüsselpaare mit denen man sich später anmelden können sollte. Ich nehme an, dass du in Step 5 oder Step 6 einen Fehler gemacht hast. Einfach noch mal probieren 😉

          Antworten
    • Fred Georgi says:

      Bei mir hat alle auf dem Raspberry Pi geklappt. Nur dass mein Linux einfach nicht in der Lage ist, meinen Pi als Server zu nutzen. Es wird NUR die interne Lösung akzeptiert. (Microsoft lässt grüßen) Also habe ich meinen voll funktionierenden Mediaserver umsonst geopfert. Wenn nicht einmal Linux in der Lage ist, einen OpenVPN-Server zu nutzen, kann ich gleich alles ausmachen. Mein Betriebssystem: Linux Mint (Petra)

      Antworten
      • Fred Georgi says:

        Man sollte die Passage [remote RASPBERRY-PI-IP 1194] unter Step 12 auch wörtlich nehmen, und die entsprechende IP eintragen. Großer Jubel (meinerseits) – es funktioniert tadellos. Eine Einschränkung beim Up- & Download konnte ich nicht feststellen, obwohl mein Raspberry Pi nicht übertaktet wurde. Ein dickes Lob und ein großes Dankeschön an den Verfasser. (y)

        Antworten
      • Jan Karres says:

        Ich weiß zwar nicht was Microsoft mit OpenVPN zu tun hat, aber bist du dir sicher, dass du die nötigen Port geöffnet hast damit es funktionieren kann? Btw: Man kann ein Image Backup erstellen 😉

        Antworten
  2. Henrik says:

    Wie ist denn die Performance?

    Antworten
  3. Johannes says:

    Ich habe gebastelt und gebastelt, nachdem ich einige Zeit schon mit OpenVPN herumprobiert habe. Das ist jetzt dabei herausgekommen; http://raspi.bplaced.net/

    Antworten
    • Jan Karres says:

      Super! So etwas in die Richtung steht auch noch auf meiner Todo-Liste zum darüber bloggen 😉

      Antworten
      • Johannes says:

        Ich würde mich sehr freuen, wenn du dich daran ausprobieren würdest und später vielleicht einmal mit verweis darüber bloggen würdest 😉

        Antworten
  4. Tobi says:

    Hi nach einigem Testen und einstellungen an der fritzbox mit dnsdynamic hab ich mit hilfe dieses tollen tutorials eine grünes icon im client. sieht alles also super aus. leider geht da internet nicht mehr wenn die verbindung zum raspberry hergestellt ist. woran kann das liegen? woran kann das liegen. kannst du ggf nochmal auf das hier eingehen. ich hatte das 1zu1 übernommen. muss hier was ausgetauscht werden?

    #set the dns servers
    push „dhcp-option DNS 8.8.8.8“
    push „dhcp-option DNS 8.8.4.4“
    log-append /var/log/openvpn
    comp-lzo

    Antworten
    • Jan Karres says:

      Hab gerade den ganzen VPN für dich bei mir noch einmal aufgesetzt. Läuft mit den Angaben aus dem Tutorial bei mir rund. Kann es sein, dass du den Raspberry Pi nicht via Ethernet sondern z.B. via WLAN im Netz hängen hast. Falls ja, musst du, siehe auch Tutorial, eth0 durch deine andere Netzwerkkarte ersetzen.

      Antworten
      • Tobi says:

        ich verwendee ethernet und hab das dementsprechend auch auf eth0 gelassen. Hast du Erfahrung wie sich das an eine fritzbox verhält?

        ich hab mal nslookup mit aktiviertem vpn getestet:

        C:\Windows\system32>nslookup
        DNS request timed out.
        timeout was 2 seconds.
        Standardserver: UnKnown
        Address: 8.8.8.8

        Antworten
        • Jan Karres says:

          Klingt so, als sei der DNS Server 8.8.8.8 nicht erreichbar (ist aber online; sprich nur von deinem Raspberry Pi aus nicht erreichbar). Bei der Fritz!Box muss man, aus meiner eigenen Erfahrung heraus, nichts besonderes einstellen.

          Vielleicht einfach noch mal versuchen zu installieren, da evl. ein Tippfehler während der Installation passierte.

          Antworten
          • Flo says:

            Ich wollte hier eine kleine DNS-Ergänzung für gehostete Raspis machen (meiner steht in Holland): ich hab da die Server von meinem Hoster genommen, wegen der schnelleren Antwort. Die von Google gehen natürlich auch, aber wenn man richtig zackige im gleichen Rechenzentrum hat ist das schon schicker…

            An sonsten ist das die beste openVPN-Anleitung, die ich im Netz gefunden habe! Klasse gemacht!

  5. Neku says:

    Erstmal super Anleitung hat alles geklappt mit den Einrichten.

    Wie komme ich allerdings zu dieser Datei „openvpn-keys.tar.gz „?
    Wie kann ich mich mit meinem Handy, in diesen Fall iPhone, in den vpn einloggen?

    Danke

    Antworten
    • Jan Karres says:

      Die Datei kann du dir mittels eines SFTP-Clients (z.B. Cyberdruck oder WinSCP) herunterladen und entpacken. Die entpackten Dateien musst du dann an die richtige Stelle Packen, sodass der Client sich einloggen kann. Wie das bei jeden Gerät einzeln geht, kann man ja ganz leicht googeln 😉

      Antworten
      • Neku93 says:

        Okay, die Datei habe ich schonmal danke 😉
        und im eigenen Netzwerk klappt das schon 😀

        Naja erstmal danke dafür 😉

        Falls du noch was wüsstes wäre das gut aber suche mal selbst nach einer Antwort ^^

        Antworten
  6. HenryD1 says:

    Super Anleitung!
    Funktioniert sofort. Was muss ich tun, wenn ich mit mehreren Clients den VPN Zugang nutzen möchte? Wenn ich identischen Schlüssel auf mehreren Geräten installiere, funktioniert keine Verbindung mehr richtig. Oder liegt es an der Leistung des Raspberry?

    Antworten
  7. Michael G says:

    Hallo ich habe mal eine kurze Frage ich habe nach dieser Anleitung Den OpenVPN Server Auf meinem Raspberry Pi Eingerichtet unter Windows Funktioniert es auch ohne Probleme.
    Nur unter Xununtu Bekomme ich einfach keine Verbindung hin weder über OpenVPN Client Direkt Noch über Gnome Network Manager Mit OpenVPN plagin Beziehungsweise Ergänzung Mit Gnome Network Manager plus Plagin Funktioniert zwar das VPN Aber sobald das VPN verbunden ist Kein Internetzugriff mehr.

    Antworten
    • Jan Karres says:

      Es kann sein, dass vereinzelte Konfigurationen im Forwarding bei routerspezifisch ist. Ich verwende eine Fritz!Box 7390. In dem Kontext einfach mal mit deinem Routernamen googeln.

      Antworten
  8. Michael G says:

    ich verwende eine vodafone Easybox 803 was genau muss ich denn da einrichten. der Standartport von Openvpn ist schon Freigegeben und weitergeleitet.
    denn sonst würde es ja über Windows von außen gar nicht gehen.
    was ich schon von einem andern Internetanschluss aus getestet habe.
    unter Windows alles Kein ding nur Linux macht doof.
    habe im Netz folgenden Hinweis gefunden.
    http://www.computerbase.de/forum/showthread.php?t=1219541
    kann aber leider nichts damit anfangen da ich in diesen Dingen absoluter Anfänger bin.
    habe schon zwei ganze Tag mit Tante Google verbracht aber es hat nicht gebracht. im ubuntuuser Forum habe ich auch gefragt aber da kam ich auch nicht weiter mit. ich hoffe du kannst mir da helfen sonnst weiß ich mir keinen Rat mehr

    Antworten
  9. mene says:

    Hey. Vielen Dank für den walkthrough, funktioniert tadellos!
    3 kleine Anmerkungen / Verbesserungsvorschläge hätte ich noch:
    1. Der IPv6-Support könnte gleich mit aktiviert werden – sollte man mittelfristig ja eh drauf umsteigen
    2. Das CA-Key-File ist mit im Package, das runtergeladen wird – ein Hinweis darauf, daß man das sicher verwaren sollte wäre gut – sonst ist das ganze zieeemlich riskant!
    3. Wenn man die sudo su befehle sinnvoll verschiebt geht das ganze noch ne ecke Schneller. Da kommt ein paar mal sudo dies, sudo das, dann werde root vor. 🙂

    Trotzdem top und vielen Dank!

    Gruß aus Köln
    mene

    Antworten
  10. Daniel says:

    Hi,

    vielen dank für die Anleitung. Hat prima funktioniert. Ist es auch möglich über das VPN auf das eigene Heimnetz zuzugreifen. Bei mir ist das 192.168.1.xx

    Vielen dank schon mal …

    Daniel

    Antworten
    • Jan Karres says:

      Möglich sollte es schon sein. Da das jedoch nicht das Thema des Beitrages ist, lass ich dich mal googeln (Stichwort: openvpn zugriff auf netzwerk). Ist in 10 min. gefunden 😉

      Antworten
  11. Tobias says:

    Hi,
    vielen Dank für die Anleitung. Verwende den OpenVPN Client auf iOS und solange ich mich im Netzwerk des Mobilfunkproviders (Vodafone) befinde funktioniert das VPN einwandfrei.
    Sobald ich aber an einem WLAN angemeldet bin bekomme ich keine Verbindung mehr zu meinem VPN Server. Hast Du vielleicht eine Idee, woran das liegen könnte?

    Tobias

    Antworten
    • Jan Karres says:

      Vielleicht ist eine Firewall in deinem Route, die die Verbindung bockt?

      Antworten
      • Tobias says:

        Dann würde es aber auch nicht aus dem Mobilfunknetzwerk funktionieren, oder?

        Antworten
        • Jan Karres says:

          Wenn dein Router (WLAN) die Verbindung blockiert und du nicht im WLAN sondern im Mobilfunknetz bist, wird die Verbindung ja nicht blockiert.

          Antworten
          • Tobias says:

            Ah, verstehe. Du meinst der Roter auf Clientseite blockiert die Verbindung. Das kann ich aber ausschließen, habe ihn selbst konfiguriert. Weitere Ideen?

          • Johannes says:

            Versuch doch mal – um das Problem wirklich ausschließen zu können – als OpenVPN Socket-Port 443 anzugeben. Ausgehende SSL Verbindungen werden normalerweise immer vom router akzeptiert.
            Ansonsten prüfe im wlan mal wo der Traffic hängen bleibt. – Das geht normalerweise mit wireshark.

          • Sebastian Seifert says:

            Hallo Tobias,
            hast du evtl. einen Telekom Speedport Router?

          • Tobias says:

            @Sebastian: Ja, es ist ein Speedport W723V. Gibt es damit ein bekanntes Problem?

          • Jan Karres says:

            Dann gibts schlechte Nachrichten, siehe Telekom Hilft Foum

  12. Michael G says:

    Hallo zusammen Ich habe noch mal eine kurze Frage zu Openvpn.
    Und zwar Habe ich Festgestellt Wenn sie Zwei Clients Gleichzeitig anmelden dass sie dann die Selbes VPN ip Erhalten.
    Und dies müsste normalerweise Zu Problemen führen.
    Jetzt wollte ich wissen wie man es einrichten kann Das zwei Clients Auch zwei IpAdressen bekommen.

    Antworten
    • Jan Karres says:

      Wieso sollte das zum Problem führen? Wenn du mit zwei Geräten in deinem Netzwerk bist haben auch beide die selbe externe IP-Adresse. Verschiedene IP-Adressen sind nicht möglich, da Privatanschlüsse immer nur eine IP-Adresse zugewiesen bekommen.

      Antworten
  13. Jens says:

    Super Anleitung!
    Wenn ich parallel 2 Geräte per VPN betreiben will, benötige ich doch 2 verschiedene Keys, oder? Ich habe testweise 2 Geräte gleichzeitig mit den gleichen Keys betrieben und festgestellt, dass die VPN Verbindung bei Verwendung von 2 Geräten gleichzeitig hin und wieder abreißt. Benutze ich nur ein Gerät läuft alles.
    Wenn ich es richtig verstehe reicht es doch ab Schritt 12 alles nochmal für den 2. Key (mit Änderung …2 statt …1, also client2 statt client1 etc.) zu machen. Passt das so oder übersehe ich da was?, Kann die Pi in der Konfig überhaupt 2 versch. Geräte bedienen?
    An der Leistung liegt es glaube ich nicht, da die CPU Last bei einem verb. Client unter 20 % ist.
    data

    Antworten
    • Jan Karres says:

      Es sollt auch mit nur einem Key funktionieren. Man kann jedoch, wie du richtig annimmst, mit den abgeänderten Befehlen ab Step 6 ein zweites Zertifikat/Key anlegen (in Step 6 nur ./build-key client1).

      Antworten
  14. michael G says:

    Nein ich meinte nicht die Internet ip Adresse Sondern die VPN Ip Adresse Also was ich meine Ist.
    Wenn zwei Geräte Gleichzeitig mit dem VPN Verbindung Erhalten beide die ip Adresse 10.8.0.6 Aber wie kann Dann der Server Die Geräte auseinanderhalten Wenn Sie beide dieselbe Ip Haben

    Antworten
    • Jan Karres says:

      Ich denke dass die lokale Adresse des Clients im OpenVPN-Netzwerk für die Kommunikation nicht so eine große Rolle spielt. Ein VPN sollte wohl flexibel genug sein um für solche Fälle gerüstet zu sein, und OpenVPN ist ja nicht die schlechtes Software.

      Antworten
      • michael G says:

        Hallo zusammen ich muss leider noch mal nerven Bezüglich des Open VPN Server Und zwar habe ich das Problem dass sowohl Arbeits Laptop als auch privat Laptop als auch iPhone Dieselbe VPN ip Erhalten
        Und sich gegenseitig Rauswerfen
        Habe schon gegoogelt wie ein blöder Aber keine Lösung gefunden die funktioniert Ich hoffe ihr könnt mir helfen

        Antworten
  15. hab ich keinen says:

    Hallo,
    eine tolle Anleitung.

    Nur warum steckst du die ca.key mit in das tarball und legst es auf die Clients ab? Wer im Besitz der ca.crt und ca.key ist kann damit nach belieben neue Clintzertifikate ausstellen. ca.key gehört in den Tresor und nicht rumverteilt!

    Antworten
  16. michael g says:

    hallo wenn ich ./build-key client2 ausführe erhalte ich folgende meldung
    Please edit the vars script to reflect your configuration,
    then source it with „source ./vars“.
    Next, to start with a fresh PKI configuration and to delete any
    previous certificates and keys, run „./clean-all“.
    Finally, you can run this tool (pkitool) to build certificates/keys.
    hat jemand einen tipp?

    Antworten
  17. Kalle says:

    Hallo Jan,

    ersteinmal: super Anleitung!

    Ich bekomme eine Fehlermeldung am Ende von Step 9:

    [email protected] /etc/openvpn $ eth0 -j MASQUERADE
    -bash: eth0: Kommando nicht gefunden.

    Was mache ich falsch? Raspi wurde vorher komplett neu installiert

    Gruß
    Kalle

    Antworten
  18. mic says:

    Hallo Jan,

    ich mache zu 99% einen dummen Fehler. Vielleicht kannst du mir sagen, wo dieser liegt. Habe deine Tutorial m.E. richtig abgearbeitet, leider bekomme ich via iOS OpenVPN Client keine erfolgreiche Verbindung zustande. Es scheint, als wird die Sitzung gleich nach dem Handshake terminiert. Wirst du aus dem Client Log schlauer und kannst mir helfen?

    2013-09-06 23:11:19 —– OpenVPN Start —–
    2013-09-06 23:11:19 LZO-ASYM init swap=0 asym=0
    2013-09-06 23:11:19 EVENT: RESOLVE
    2013-09-06 23:11:22 Contacting 87.173.49.???:1194 via UDP
    2013-09-06 23:11:22 EVENT: WAIT
    2013-09-06 23:11:22 Connecting to blageheim.dyndns.org:1194
    (87.173.49.???) via UDPv4
    2013-09-06 23:11:23 EVENT: CONNECTING
    2013-09-06 23:11:23 Tunnel Options:V4,dev-type tun,link-mtu
    1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize
    128,key-method 2,tls-client
    2013-09-06 23:11:23 Peer Info:
    IV_VER=1.0
    IV_PLAT=ios
    IV_NCP=1
    IV_LZO=1

    2013-09-06 23:11:25 VERIFY OK: depth=0
    cert. version : 3
    serial number : 01
    issuer name : C=DE, ST=CA, L=SanFrancisco, O=Fort-Funston,
    OU=changeme, CN=changeme, 0x29=changeme, [email protected]
    subject name : C=DE, ST=CA, L=SanFrancisco, O=Fort-Funston,
    OU=changeme, CN=server, 0x29=changeme, [email protected]
    issued on : 2013-09-06 19:46:00
    expires on : 2023-09-04 19:46:00
    signed using : RSA+SHA1
    RSA key size : 1024 bits

    2013-09-06 23:11:25 VERIFY OK: depth=1
    cert. version : 3
    serial number : CC:46:B1:07:C5:6E:4B:CC
    issuer name : C=DE, ST=CA, L=SanFrancisco, O=Fort-Funston,
    OU=changeme, CN=changeme, 0x29=changeme, [email protected]
    subject name : C=DE, ST=CA, L=SanFrancisco, O=Fort-Funston,
    OU=changeme, CN=changeme, 0x29=changeme, [email protected]
    issued on : 2013-09-06 19:41:58
    expires on : 2023-09-04 19:41:58
    signed using : RSA+SHA1
    RSA key size : 1024 bits

    2013-09-06 23:12:06 Session invalidated
    2013-09-06 23:12:06 Client terminated, restarting in 2…
    2013-09-06 23:12:06 EVENT: DISCONNECTED
    2013-09-06 23:12:06 Raw stats on disconnect:
    BYTES_IN : 3185
    BYTES_OUT : 30074
    PACKETS_IN : 31
    PACKETS_OUT : 71
    KEEPALIVE_TIMEOUT : 1
    2013-09-06 23:12:06 Performance stats on disconnect:
    CPU usage (microseconds): 96874
    Network bytes per CPU second: 343322
    Tunnel bytes per CPU second: 0
    2013-09-06 23:12:06 —– OpenVPN Stop —–

    Danke und Grüße
    Mic

    Antworten
  19. mic says:

    Nee ich fliege schon vorher raus. In deinem Lösungsvorschlag bekommt der Client zumindest einen SSL Handshake, an dieser Stelle habe ich den Connection Timeout. Mit Tunnelblick am Mac übrigens dasselbe Verhalten.

    Fahre ich den ovpn Server runter, bekomme ich keinen Connect am ovpn Client. Der Server ist also erreichbar, lässt mich aber nicht rein. Eine FW-Regel kanns doch dann eigentlich auch nicht sein, welche hier stört?

    Wären die PKI Certs defekt oder falsch erstellt, wäre das Fehlerverhalten doch sicher ein anderes?

    Sollte ich vielleicht nochmal alle Certs löschen, den ovpn Server löschen und das Tutorial von Vorn beginnen?

    Grüße und Danke!
    mic

    Antworten
  20. InneZ0r says:

    Hallo Jan,

    zuerst einmal ein großes Dankeschön für dieses tolle Tutorial.
    Leider hab ich anscheinend einen Fehler bei der Konfiguration gemacht, den ich ohne fremde Hilfe nicht wieder ausbessern kann.
    Und zwar bekomme ich beim starten des OpenVPN Server folgende Fehlermeldung
    „[FAIL] Starting virtual private network daemon: openvpn failed!“

    Vielleicht kannst du mir einen Tipp geben, was ich falsch gemacht haben könnte!

    Danke

    Antworten
    • Jan Karres says:

      Was sagen denn die Logfiles (/var/log/openvpn-status.log)?

      Antworten
      • InneZ0r says:

        openvpn-status.log enthält folgenden Inhalt

        penVPN CLIENT LIST
        Updated,Mon Sep 9 18:29:18 2013
        Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
        ROUTING TABLE
        Virtual Address,Common Name,Real Address,Last Ref
        GLOBAL STATS
        Max bcast/mcast queue length,0
        END

        Antworten
        • Jan Karres says:

          Nicht gerade ergiebig… schon mal neu installieren versuchst? Denn da sollte während der Installation was schief gelaufen sein.

          Antworten
  21. InneZ0r says:

    Hab ich mir auch gedacht. Neuinstallation hab ich schon versucht, allerdings ohne vorher etwas zurückzusetzen, kannst du mir vielleicht erklären wie ich die oben genannten Steps wieder rückgängig machen kann. Oder sollte ich gleich Raspbian neu installieren?
    Danke

    Antworten
    • Jan Karres says:

      sudo apt-get remove openvpn openssl
      rm -r /etc/openvpn
      rm /home/pi/openvpn-keys-clientX.tgz

      Damit solltest du zumindest OpenVPN deinstallieren können. Alle manuell angepassten Parameter im System müssen rückgebildet werden. Oder eben, wie du schon selbst vorgeschlagen hast, Raspbian neu installieren.

      Antworten
  22. Alex says:

    Moin, Moin,

    ich bekomme bei Schritt 12 (sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE) einen Fehler.

    ERROR: could not insert ‚ip_tables‘: Exec format error
    iptables v1.4.14: can’t initialize iptables table `nat‘: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

    hat sich etwas am Tutorial geändert?

    Antworten
  23. Michael says:

    Hallo jan erstmal Danke für die Tolle Anleitung läuft alles super.
    Ich kann sogar auf die pcs zu hause zugreifen.
    aber ich habe da ein kleines Problem ich wollte das VPN gerne so einrichten das jeder VPN Client eine feste IP bekommt Grund dafür ist das meine Große Schwester viel Beruflich unterwegs ist.
    und ich ihr öfter mal helfen muss und ich dachte das ich dann per VPN auf ihr Laptop kann.
    ich habe es nach den unterschiedlichsten Anleitungen versucht.
    entweder hatte ich kein Internet mehr über die VPN oder keinen Zugriff mehr auf die PCS zu Haus
    oder das Internet lief nicht mehr über die Leitung von zu Haus.
    ich hoffe du hast einen Tipp für mich weis echt nicht was ich noch versuchen soll.
    VLG Michael

    Antworten
    • Jan Karres says:

      Meinst du eine feste interne oder eine feste externe IP-Adresse? Falls du letzteres meinst: Das geht nicht, da dir dein Provider im Schnitt alle 24 Stunden eine neue zuteilt. Jedoch kannst du das Problem mit lösen, indem du eine DynDNS einrichtest, wie ich bereits in meinem Blog beschrieben habe.

      Antworten
      • Michael says:

        hallo Jan nein ich meine nicht die externe IPAdressen sondern die VPN IP Adresse das zum Beispiel der Client immer die
        10. 8.0.2bekommt. so dass ich dann über die VPN IP auf das Laptop meiner Schwester zugreifen kann egal wo Sie gerade ist.
        das mit der externen IP habe ich schon nach deiner Anleitung eingerichtet.
        wie gesagt ich frage dich nicht ohne Grund ich habe es nach den unterschiedlichsten Anleitungen versucht jedes Mal mit dem Ergebnis das irgendetwas nicht mehr funktioniert hat. entweder war gar keine Internet Verbindung mehr möglich oder sie lief nicht mehr über die Leitung von zu Hause oder ich hatte keinen Zugriff mehr auf die PCs die zuhause stehen ich hoffe du hast eine Idee wie man es zum laufen bringen kann und ich hoffe ich konnte jetzt besser erklären wo mein Problem liegt wenn Du noch Fragen haben solltest frag einfach ich wäre dir echt sehr dankbar wenn du mir helfen könntest
        lieben Gruß michael

        Antworten
  24. JPT says:

    Die Einleitung kann ich so nicht stehen lassen Was du hier anbietest ist reine Scheinsicherheit. Den einzigen Vorteil gegenüber einer normalen Verbindung ins Internet besteht darin, dass ein Angriff von jemandem, der im „gleichen Cafe sitzt“ scheitert. Passwörter unverschlüsselt im Internet zu verwenden ist grundsätzlich keine gute Idee. Daran ändert auch dein VPN nichts. Denn die Passwörter gehen dann halt erst ab deinem VPN Server unverschlüssel ins Internet. Insofern stellst du dem Laien hier eine Falle, er nimmt an, er wäre nun sicher. Das ist er aber nicht. Punkt.

    Antworten
    • Jan Karres says:

      Ich würde an deiner Stelle noch einmal die ersten zwei Sätze des Beitrages durchlesen und die Wirkung eines Demonstrativpronomens nachschlagen. Dann wirst erkennen was durch einen VPN-Server gesichert werden soll und gesichert wird.

      Antworten
  25. Michael says:

    Anmerkung zu Step 15 (Weitere Clients):

    Sind die Schritte

    ./clean-all
    ./pkitool –initca

    in diesem Fall nicht unnötig (wenn nicht gar kontraproduktiv), da dadurch doch das ./keys Verzeichnis gelöscht wird (und damit diverse Dateien, die initial für den ersten Client erstellt wurden, z.B. dh1024.pem)?

    Ich hatte auf jeden Fall Erfolg für einen client2, ohne o.g. Schritte, sondern gleich mit ./build-key client2

    Unbeachtet davon: sehr gutes Tutorial!

    Antworten
    • Jan Karres says:

      Danke für eine Anmerkung. Wenn ich mich recht erinnere gab es, als ich das Tutorial um dieses Step erweiterte, unter bestimmten Umständen ohne diese Kommandos ein Problem. Da du jedoch meintest es gänge bei dir auch ohne und es, wie ebenfalls von dir benannt, ja einen Nebeneffekt gibt, habe ich die zwei Kommandos mal gestrichen.

      Antworten
  26. Simon says:

    Vielen Dank für das Tutorial. Nur habe ich ein Frage.
    Wie extrahiere ich die Dateien und welche brauche ich genau um mit meinem Windows Client auf das VPN zuzugreifen?

    Antworten
    • Jan Karres says:

      Du brauchst alle in dem Packet enthaltenen Dateien. Entpacken kannst du die Datei z.B. mittels WinRAR oder 7ZIP.

      Antworten
      • Simon says:

        Wow das ging schnell. Danke sehr

        Antworten
        • Simon says:

          Ich habe jetzt alles korrekt eingerichtet (so weit ich weiß) allerdings fragt mich der client nach benutzername und passwort. name ist vermutlich der clientname aber passwort?

          Antworten
          • Jan Karres says:

            Sicher, dass du den OpenVPN Client verwendest? Denn der fragt nicht nach Benutzername und Passwort… ich nehme eher an du verwendest einen Client für PPTP VPN-Server.

    • Jan Karres says:

      Das ist der OpenVPN.net bzw. Privatetunnel.com Client – nicht der offene OpenVPN Client für eigene Server (am Ende des Artikels verlinkt).

      Antworten
  27. Jonas says:

    Vielen dank für dieses Tutorial, es war gut verständlich, ich habe aber dennoch ein Problem.. Die Anleitung habe ich genau befolgt (habe auch die richtige IP adresse verwendet), wenn ich jedoch den Server starten will ist das einzige was passiert folgende Nachricht: „[FAIL] Starting virtual private network daemon: openvpn failed!“
    kann dieser Fehler irgendwie ausdrücken, was ich falsch gemacht habe?

    Antworten
    • Jan Karres says:

      Der Fehler sagt leider nicht viel aus. Ich tippe darauf, dass du in den Konfigurationen einen Fehler gemacht hast. Die Ausgabe folgenden Kommandos sollte mehr Aufschluss bieten.

      cat /var/log/syslog | grep VPN

      Antworten
    • Matthias says:

      Könnte sein das das Tunnel Modul nicht gelanden wird.
      Trage doch mal in die Datei /etc/modules folgendes ein:
      tun
      Danach starte den Raspberry neu!
      lg

      Antworten
  28. Jonas says:

    cat /var/log/syslog: http://pastebin.com/Qv1jq4nb
    grep VPN: keine reaktion

    Antworten
  29. Michael says:

    Beim Aufbau einer Verbindung von einem Androiden mit „OpenVPN“ sehe ich in dessen Log-Datei folgendes:

    P:WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.

    Der genannte Link nennt als Abhilfe folgende Zeile der Client-Konfiguration hinzuzufügen:

    remote-cert-tls server

    Hat da jemand Erfahrung mit? (Ich hab’s noch nicht ausprobiert).

    Antworten
    • Jan Karres says:

      Habe mal gerade etwas gegoogelt. Scheint eine empfohlene Sicherheitseinstellung sein, die aber nicht zwingend notwenig ist. Aber nachdem du mich darauf hingewiesen hast habe ich den Parameter dem Tutorial mal hinzugefügt. Danke!

      Antworten
      • Michael says:

        OK,
        ich sehe in Step m12 die Zeile „ns-cert-type server“ inder Client-Konfiguration. Man muß wohl hier unterscheiden, mit welcher OpenVPN Version man es zu tun hat. Bis OpenVPN 2.0 stimmt die angegebene Zeile, ab 2.1 sollte diese jedoch „remote-cert-tls server“ lauten (so habe ich es in der Zwischenzeit auch mit 2.2.1 getestet), siehe hierzu: http://bitcube.co.uk/content/openvpn-howto

        Antworten
        • Jan Karres says:

          Dann fliegt sie wieder raus, damit es überall funktioniert – in der Hoffnung, dass Interessierte deine Lösung in den Kommentaren finden 😉

          Antworten
  30. Stefan says:

    Hallo Jan, sehr schöne Anleitung, vielen Dank dafür!
    Kannst du mir vielleicht auch sagen wie ich erziele das nicht der gesamte Internettraffic des Client PCs über das VPN läuft? Ich habe zu Hause wenig Upload, das macht das surfen auf dem Client zur Qual.
    Ich möchte das VPN lediglich dazu nutzen meine internen Devices vom Client aus erreichen.

    Gruss
    Stefan

    Antworten
    • Jan Karres says:

      Gute Frage. Das weiß ich ehrlich gesagt auf die Schnelle auch nicht, da das Tutorial explizit beschreibt wie man eben den Internetverkehr tunnelt. Dein Hintergedanken kann ich aber gut nachvollziehen.

      Antworten
      • Stefan says:

        Schade das Du mir da nicht helfen kannst, hast du denn eine Idee wie ich eine VPN IP einem Client fest zuweisen kann?

        Antworten
        • Jan Karres says:

          Ich denke du meinst damit die IP Adresse die man nach außen hat, wenn man sich über den OpenVPN Server verbunden hat. Diese wird ca. alle 24 Stunden von deinem Internet Provider neu zugewiesen, sodass du diese nicht fest zuweisen kannst.

          Antworten
        • Matthias says:

          Du musst in der Server konfig die zeile:
          push „redirect-gateway def1“
          durch
          push „route 192.168.1.0 255.255.255.0“ (natürlich mit deinem internen Netz) ersetzen
          Somit wird nur mehr Traffic nach 192.168.1.0 in den Tunnel geschickt.
          lg Matthias

          Antworten
          • Stefan says:

            Hallo Matthias, vielen Dank für deine Hilfe!
            Dein Tipp hat schonmal geklappt.
            Was aber wenn ich einen User nicht weiterleiten will, einen anderen schon.
            Läasst sich das auch realisieren?
            Gruss
            Stefan

          • Jan Karres says:

            Ich denke dies steht nicht im Möglichen von OpenVPN, da es kein ausführliches User Management besitzt.

  31. Matthias says:

    Hi

    Super Anleitung! Wichtig in der Server konfig war für mich noch
    duplicate-cn #Damit zwei Geräte mit dem gleichen Zertifikat funktionieren
    keepalive 10 120 #iOS hat einen verbindungsabbruch nach 40sek. Damit wird das umgangen

    lg Matthias

    Antworten
  32. Michael says:

    Muss es in Step 4 nicht

    export EASY_RSA=pwd

    lauten?

    Antworten
  33. dco333 says:

    Hi, hat jemand schon einen freien OpenVPN Client gefunden der unter Windows 8.1 funktioniert? Die TAP Treiber lassen sich unter Win8.1 nicht installieren. Die kommerzielle OpenVPN Version hat einen passenden Treiber. Habe auch versucht die Dateien umzubiegen für den freien Client, jedoch ohne Erfolg. Die letzten Änderungen auf der Seite openvpn.se sind auch schon eine ganze Weile her. Das wird wohl nicht mehr supported.

    Antworten
    • Jan Karres says:

      Ich habe auf WhatTheServer.me einen Lösungsansatz gefunden. Da ich Windows 8.1 nicht installiert habe kann es für dich jedoch nicht ausprobieren, sodass du selbst mal sehen musst ob es funktioniert.

      Antworten
  34. F F says:

    Sehr gute Anleitung mit der ich als Linux Newbie mein VPN zum Laufen bekommen habe.

    Was ich bisher mit Schlaulesen anderer Anleitungen nicht hinbekommen habe, ist die ZUSÄTZLICHE Abfrage am Client nach Benutzername und Passwort, die auch funktioniert.

    Hast Du da was auf Lager?

    Wünsche schöne Feiertage und guten Rutsch 🙂

    Antworten
    • Jan Karres says:

      Wenn ich mich nicht täusche kann man bei OpenVPN nur zwischen Key oder Benutzername/Passwort Authentifizierung wählen (nicht beides zugleich). Und da würde ich dir eindeutig zum beschriebenen Key-Verfahren raten, da dieses quasi ein sehr langes und kompliziertes Passwort ist, sodass es sicherer ist als Benutzername/Passwort.

      Antworten
      • guma96 says:

        Hallo Herr Karres,

        erst einmal ein frohes Neues Jahr….

        „Sehr gute Anleitung mit der ich als Linux Newbie mein VPN zum Laufen bekommen habe.“ dem kann ich mir nur anschliessen.

        Ich habe nur ein einziges Problem!
        Seit dem der restart von openvpn durchgeführt wurde, startet mein wlan0(wpa_supplicant) nicht mehr automatisch.

        Nur bei dem Connect über die WPA_GUI startet das Wlan wieder…..

        Haben Sie ein Ahnung welches Problem hier auftritt?

        Danke
        Gruß Guido

        Antworten
        • Jan Karres says:

          Schau doch mal in die /etc/network/interfaces ob dort die Konfigurationen für den WLAN-Stick noch korrekt sind. Weitere Ideen habe ich an dem Punkt leider nicht.

          Antworten
          • guma96 says:

            die Einstellungen haben sich nicht verändert, anscheinend macht hier der Reatltek Treiber des Wlan Stick Probleme….
            Ich habe jetzt erstmal ein eigenes Startscript geschrieben und nun geht es wieder, wenngleich der Raspi deutlich länger braucht um wieder online zu sein.
            Ich werde das die Tage mit einem neuen Edimax Wlan Stick nochmals testen.

            LG Guido

          • guma96 says:

            Hallo Jan,

            update zu dem Wlan Problem, da mir dies keine Ruhe gelassen hat.
            Da ich dein Tutorial so abgearbeitet habe wie du es hier geostet hast, hatte ich als erstes ein upgrade durchgeführt, allerdings kein reboot.
            Das Upgrade ist ursächlich für das Problem.

            Nach dem rpi-update ist wieder alles i.O.
            Hier scheint es Treiber Probleme zu geben mit dem Realtek RTL8188CUS Chipsatz.

            LG Guido

  35. F says:

    Aha, dann ist es ja kein Wunder dass es nicht funktioniert hat.

    Danke für die Antwort, mit der ich heute wahrlich nicht gerechnet habe 😉

    Falls ich eine Lösung finden sollte, werde ich sie hier bekanntgeben…

    Antworten
  36. pierre says:

    Alors, ich habe den Raspi via Ethernet (statische IP’s intern) laufen. Der Raspi hat zudem eine DynDNS Adresse, die DNS Auflösung klappt und IP Forwarding ist auch aktiv. Die Schritte habe ich soweit erfolgreich durchgeführt. Die Verbindung allerdings bringt auf Android 4.4. ein Timeout.

    Wenn ich dann aber mein Wlan einschalte und aus dem internen Netz eine Verbindung versuchen aufzubauen, klappt alles sofort. Ich bin total ratlos, da der Raspi von aussen erreichbar ist aber vom Smartphone aus keine Daten reinkommen. Vielleicht gibt es hier ein Routing Problem?!

    Antworten
  37. F F says:

    Bei http://ping.eu/port-chk/ kannst Du testen ob der entsprechende Port aus dem Netz erreichbar ist.

    Wenn nicht stimmt mit deiner Konfiguration etwas nicht.

    Antworten
  38. Matthias says:

    Super Anleitung, FETTES DANKE.
    Also selbst ich als absoluter Newbie bin klargekommen. Jetzt noch eine Frage, Lachen ist erlaubt. Wie kann ich einstellen das OpenVPN nicht selbst startet nach einem reboot des Raspberry ?

    Antworten
    • Matthias says:

      stoppen bekomm ich ja noch eben hin mit killall -9 openvpn.

      Antworten
      • Jan Karres says:

        Mit kill -9 sollte man sparsam umgehen. Wenn möglich sollte man ein Programm über kill anstatt kill -9 beenden.

        Antworten
    • Jan Karres says:

      Sollte mit folgendem Kommando gehen.

      sudo update-rc.d -f openvpn remove

      Manuell starten können solltest du OpenVPN über folgendes Kommando.

      sudo /etc/init.d/openvpn start

      Antworten
      • Matthias says:

        Okay. Und wo trag ich das ein um openvpn also beim booten direkt zu beenden? i jobs?

        Antworten
      • Michael says:

        Jan: Damit update-.rc.d openvpn remove funktioniert müsste das zugehörige init Script bereits gelöscht sein (siehe man-page). Ich kenne natürlich die Funktionsweise von ‚-.f‘, denke aber die richtige Vorgehensweise wäre:

        sudo update-rc.d openvpn disable

        und dann bei Bedarf:

        sudo update-rc.d openvpn enable
        sudo /etc/init.d/openvpon start

        Antworten
      • Michael says:

        Bessere Alternative ist ggf: in /etc/default/openvpn in der Zeile

        AUTOSTART=“none“

        das Kommentarzeichen entfernen, damit wird openvpn nicht gestartet und bei Bedarf dann eben manuell starten:

        sudo /etc/init.d/openvpn start [openvpn]

        Antworten
      • Jan Karres says:

        @Michael: Ich denke meine Methode funktioniert ebenso, aber deine Variante, insbesondere letztere, ist natürlich galanter 😉

        Antworten
  39. Jamax says:

    Hallo, super Anleitung.
    Habe aber auch eine Frage. Habe bei mir alle Ports am Router geschlossen.
    Welch Ports müssen denn alle auf den Pi weitergeleitet werden?

    Antworten
    • Jan Karres says:

      OpenVPN nutzt standardmäßig den Port 1194. Dieser müsste freigegeben werden.

      Antworten
      • Jamax says:

        Danke für die schnelle Antwort. Aber noch eine kleine Frage dazu. Wenn ich wie in step8 beschrieben dort nicht port 1194 sonder ein anderes port nehmen würde. z.B. 12030 und dieses im router weiter leite, müsste es doch auch funktionieren oder?
        Hatte auch mal irgendwo gelesen das man für eine vpn verbindung noch udp ports benötigt. Brauch man das hier nicht?

        Antworten
        • Jan Karres says:

          Den Port musst du sowohl in Step 8 als auch in der Config des OpenVPN Servers ändern und in dem Router dann freigeben. UDP Port musst du nicht öffnen.

          Antworten
  40. Daniel says:

    Hallo.
    Ich habe die Anleitung genaustens befolgt, nur eth0 in wlan0 geändert, da ich einen Wlan Stick verwende, und bei der Raspberry-IP die DynDNS Adresse eingetragen.
    Bei Schritt 14 habe ich den Server dann neu gestartet und ab diesem Zeitpunkt funktionierte garnichtsmehr. Ich konnte nichtmehr per SSH auf meinen Raspberry Pi zugreifen. Auch nicht per VNC. Ich habe überhaupt keine Verbindung mehr zum Raspberry Pi bekommen.
    Weiß jemand woran das liegt?

    Antworten
    • Jan Karres says:

      Kann mir nicht wirklich vorstellen, dass das an OpenVPN liegt. Folglich ist helfen auch schwer…

      Antworten
      • Konrad says:

        Hallo Daniel,
        Hallo Jan,

        bin gerade ebenfalls über das Problem gestolpert, dass bei Nutzung von wlan0 anstelle eth0 die Verbindung zum Raspberry Pi abbricht, nachdem bei Punkt 14 der Anleitung der OpenVPN-Service neu gestartet wurde.

        Die folgende Änderung in der Datei /etc/default/ifplugd behebt das Problem:

        HOTPLUG_INTERFACES=“all“

        abändern in

        HOTPLUG_INTERFACES=“eth0 wlan0″

        Danke für die gute Anleitung!

        Antworten
  41. Niklas says:

    Hallo,
    Super Anleitung, danke dafür!!
    LG

    Antworten
  42. Christian says:

    Hallo! Ich schaffe es nicht laut Anleitung den Openvpn zum laufen zu bringen. Habe schon 3x nach Anleitung alles eingegeben und kontrolliert. Nach Step 14 wird das „virtual private network“ gestoppt und mit einem Fehlen NICHT gestartet.
    Ich habe keine Idee woran es liegen könnte und bitte um Hilfe!
    Danke und schöne Grüße
    Christian

    Antworten
  43. dotcom84 says:

    Danke für das Tutorial. Schön einfach und funktioniert wunderbar. Ich habe noch einen Verbesserungsvorschlag bezüglich der Schritte 9 und 11. Deine Konfiguration erlaubt es VPN-Clients nicht, Geräte im Intranet (serverseitig) zu erreichen, z.B. NAS-Server, den Router, etc.

    Deshalb mein Ersatz für Schritt 9:
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
    sudo iptables -A FORWARD -i eth0 -o tun0 -m state –state RELATED,ESTABLISHED -j ACCEPT

    Und der Ersatz für Schritt 11 (crontab) entsprechend:
    @reboot sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    @reboot sudo iptables -A FORWARD -i eth0 -o tun0 -m state –state RELATED,ESTAB$
    @reboot sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

    Funktioniert wunderbar. Lösungsansatz via: http://serverfault.com/questions/418354/

    Antworten
  44. Julian says:

    Hallo,

    Hat prima geklappt, nur als ich mich das erstemal verbinden wollte kam diese Fehlermeldung zum Schluss:
    All TAP-Win32 adapters on this system are currently in use.

    Falls das noch wer hat, hier die Lösung:

    http://stackoverflow.com/questions/14896590/openvpn-failed-connection-all-tap-win32-adapters-on-this-system-are-currently

    Diese Version funktioniert auf meinem Win7 Rechner tadellos, man muss sie aber als Administrator ausführen.

    Antworten
  45. diego says:

    Danke für die Anleitung! Funktioniert bestens.

    Ich habe gleich sicherheitshalber Port 443 statt 1194 angegeben, damit VPN auch bei irgendwelchen Netzen geht, die reichlich Ports blockieren.

    Unter iOS verwende ich die kostenlose App OpenVPN Connect, die aber eine einzelne .ovpn-Datei erwartet. Dazu raspberrypi.ovpn in einem Texteditor öffnen, die Zeilen ca ca.crt, cert, clientX.crt und key clientX.key entfernen und jeweils zwischen den Zeilen (jeweils ergänzen) … , … und … den Inhalt (also auch die anderen Dateien mal in einem Texteditor öffnen) aus den jeweiligen Dateien, die ihr gerade in der ovpn-Datei ausgetragen habt, reinpasten. Dann irgendwie aufs iPhone schicken (ownCloud, btsync, verschlüsselte Mail etc.) und in OpenVPN Connect öffnen.

    Antworten
  46. Mario says:

    Hallo Jan
    Leider kann ich auch mit der Anleitung keine Verbindung zu dem OpenVPN-Server herstellen. Weder per Android noch Windows Client.
    Was genau müsste ich als RASPBERRY-PI-IP eintragen, wenn der RASPBERRY-Pi die lokale IP 192.168.70.5 hat, aber die Fritzbox z.B. die öffentliche IP 217.217.80.88?
    Den UDP-Port 1194 habe ich in der Fritzbox auf Rasperry Pi 192.168.70.5 weitergeleitet. Mehr müsste ich da doch nicht machen, oder?
    Über Hilfe und Tipps wäre ich sehr dankbar.

    Antworten
    • Jan Karres says:

      Du musst 192.168.70.5 freigeben. Eine UDP Weiterleitung in der Fritz!Box sollte nicht notwendig sein.

      Antworten
      • Mario says:

        Jetzt habe ich es geschafft, aber die Portweiterleitung auf der Fritzbox ist zwingend notwendig, denn sonst kommt die Anfrage nicht am Rasperry Pi an.
        Mit dem Android-Phone habe ich eine VPN inkl. Zugriff einrichten können, aber unter Windows 7 habe ich noch Probleme mit den Routen. Die Verbindung wird aufgebaut und beide Monitore zeigen grün, aber die Routen können nicht erstellt werden. Das werde ich in den nächsten Tagen noch weiter prüfen.
        Vielen Dank und weiter so 🙂

        Antworten
  47. Marco says:

    Hallo Jan,

    kannst Du bitte kurz beschreiben, wie man die Zertifikate zurück setzt bzw. erneuert (Stichwort: Heartbleed Bug), da diese ja als angreifbar gelten. Vielen Dank.

    Marco

    Antworten
  48. Max says:

    Ich habe in der openvpn.conf Datei einen Tippfehler gemacht und möchte diesen jetzt ändern aber immer wenn ich das probiere sagt mir nano permission denied, wenn ich probiere das über den explorer und den Standard Editor zu ändern passiert das gleiche es scheint sogar so zu sein das ich im ganzen Ordner Openvpn nicht schreiben kann.
    Wie kriege ich die Schreibrechte in diesen Ordner?
    Und betrifft mich das mit Heart bleed bug auch wenn ich den Server danach eingerichtet habe?

    MfG

    Max

    Antworten
    • Jan Karres says:

      Zur ersten Frage: Einfach sudo vor den Befehl schreiben.
      Zu Heartbleed: Kommt darauf an ob deine installierten Pakete zum Zeitpunkt des Einrichten von OpenVPN sicher waren. Aber prinzipiell denke ich, dass ein kleiner Raspberry Pi wohl eher ein sehr seltenes Angriffsziel wäre 😉

      Antworten
  49. Stephan says:

    Hallo Jan,

    danke für die Anleitung, super gemacht.
    Ich habe alles so eingestellt wie Du es beschrieben hast.
    Ich habe erfolgreich einen Tunnel aufgebaut ( ist grün und mit 10.8.0.6 verbunden).
    Ich habe auch ein Ping erfolgreich gesendet.
    Ich kann kein Netzwerk hinter dem Raspberry finden, ich kann nicht mit Putty über VPN auf den Raspi zugreifen und winscp bekomme ich auch nicht hin.
    Da ich unerfahren bin und erst noch lerne, bitte ich Dich um einen Tipp oder eine Lösung.

    Gruß
    Stephan

    Antworten
    • Jan Karres says:

      Ich nehme an, dass du meinst, dass du nicht über den VPN-Tunnel auf das Internet zugreifen kannst. Ich würde mal annehmen, dass in Step 9 bis Step 11 was schief lief, denn dort wird genau dieses Problem angegangen. Am besten versuchst dus noch einmal 😉

      Antworten
      • Stephan says:

        Hmm, nicht ganz. Ich möchte auf das entfernte Netzwerk in meiner Wohnung zugreifen können, da ich öfters unterwegs bin.
        Step 9 bis 11 wurde genau so ausgeführt.
        Dazu habe ich noch Deine Anleitung über DYNDNS auf den Pi aufgespielt.
        Funktioniert auch alles, nur kann ich den Rechner bzw. das Netzwerk nicht finden.

        Antworten
  50. afrokalypse says:

    Wozu ist diese Zeile genau gut?
    ./pkitool –initca
    Im offiziellen howto >https://openvpn.net/index.php/open-source/documentation/howto.html#pki< ist davon nichts zu finden.

    Antworten
    • Jan Karres says:

      Es erstellt das CA-Cert und den dazugehörigen Key.

      Antworten
      • afrokalypse says:

        Danke schnon mal für die Antwort!
        Ich habe gedacht das wird mit dieser Zeile erledigt.
        ./build-ca OpenVPN
        Was macht dann die?

        Antworten
        • Jan Karres says:

          Ich zitierte aus der Ausgabe des Befehls: „Generating a 1024 bit RSA private key“. Wenn du genaues verstehen möchtest beschäftige dich am besten mal mit den Strukturen des Gesamtkonstrukts OpenVPN.

          Antworten
  51. Peter says:

    Super Tutorial. Funktioniert auch, aber nur wenn bei mir iptables aus ist oder der Befehl iptables -F eingeben wurde.

    Habe schon sämtliche Regeln versucht. Bin aber langsam mit meinem Latein am Ende =(

    iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
    iptables -A FORWARD -j REJECT
    iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
    iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
    iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

    /var/log/messages gibt folgende Meldung:

    Apr 25 16:58:07 raspbmc kernel: FORWARD-Raus: IN= OUT=eth0 SRC=192.168.127.19 DST=88.198.230.201 LEN=76 TOS=0x00 PREC=0xC0 TTL=64 ID=7113 DF PROTO=UDP SPT=123 DPT=123 LEN=56

    FORWARD-Raus:
    iptables -A OUTPUT -j LOG -m limit –limit 5/s –log-prefix „FORWARD-Raus: „

    Antworten
    • Jan Karres says:

      Du scheinst Raspbmc zu verwendet. Das Tutorial ist für Raspbian geschrieben und mein Wissen im Bezug auf Raspbmc ist leider nicht gerade groß. Daher kann ich dir leider nicht helfen, soory.

      Antworten
  52. Michael says:

    Hallo Jan,
    super Anleitung, vielen Dank! Ich hab alles nach der Beschreibung gemacht und es funktioniert soweit ich im Mobilfunknetz bin. Wenn ich im Wlan bin bekomme ich zwar eine Verbindung zum Vpn aber das Internet funktioniert (fast) nicht. Fast, weil ich keine Seiten aufrufen kann aber mit Voip einen Anruf absetzen kann, dieser zustande kommt aber keine Sprache übertragen wird. Hast du eine Idee? Schon mal vielen Dank! Router ist Speedport w723v.
    Viele Grüße
    Michael

    Antworten
    • Jan Karres says:

      Ohje, ein Speedport. Da hat gefühlt jedes zweite Model eine andere Eigenart. Von dem her kann ich dir da konkret nicht weiterhelfen, aber warum möchtest du netzintern überhaupt den VPN nutzen?

      Antworten
      • Michael says:

        Sorry, nicht netzintern. Möchte im wlan eines Telekom hotspot die VPN-Verbindung zum Raspberry Pi aufbauen. Einen DynDns habe icheeingerichtet. Über dem vpn möchte ich gerne telefonoeren. Ich
        überlege gerade eine Fritzbox zu kaufen. Die hat aber eine Vpn-Funktion. Dann brauche ich den Raspberry Pi ja nicht mehr oder?

        Antworten
        • Jan Karres says:

          Sollte dann ausreichend sein.

          Antworten
          • Michael says:

            Hab jetzt eine Fritzbox und habe dort eine feste Route eingetragen. OpenVPN läuft über Raspberry Pi und telefonieren funktioniert jetzt einwandfrei über WLAN mit einem SIP Client 🙂 Grund war wohl die fehlende feste IP-Route, die man im Speedport leider nicht eintragen konnte…

  53. steve says:

    Wenn ich weitere Clients anlegen will muss ich dann nicht die raspberrypi.ovpn um die weiteren Clients erweitern?

    Weil in Step 16 steht Client1 muss ersetzt werden!?

    Antworten
  54. Maurice says:

    key-size ändern?

    Erstmal vielen Dank für die Anleitung, hat mir sehr geholfen.

    Eine Frage hat sich bei mir aber aufgetan: Lässt sich die key-size irgendwie beeinflussen? Wenn man die Standard-key-size in der openssl.conf ändert, hat das offensichtlich keinen Einfluss. Gibt es da einen Parameter?

    Antworten
  55. Stefan says:

    Hallo Jan,

    erst mal vielen Dank für die Anleitung. Die Einrichtung auf dem Pi hat meiner Meinung nach gut geklappt, wenn ich das als Linux-Laie beurteilen kann.

    Leider hab ich jetzt das Problem, dass ich mit OpenVPN nicht auf mein Netzwerk komme.
    Hier mal die Meldungen von OpenVPN zum Verbindungsversuch:

    Sun Jun 08 22:13:29 2014 OpenVPN 2.3.4 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Jun 5 2014
    Sun Jun 08 22:13:29 2014 library versions: OpenSSL 1.0.1h 5 Jun 2014, LZO 2.05
    Sun Jun 08 22:13:29 2014 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
    Sun Jun 08 22:13:29 2014 Need hold release from management interface, waiting…
    Sun Jun 08 22:13:29 2014 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
    Sun Jun 08 22:13:29 2014 MANAGEMENT: CMD ’state on‘
    Sun Jun 08 22:13:29 2014 MANAGEMENT: CMD ‚log all on‘
    Sun Jun 08 22:13:29 2014 MANAGEMENT: CMD ‚hold off‘
    Sun Jun 08 22:13:29 2014 MANAGEMENT: CMD ‚hold release‘
    Sun Jun 08 22:13:29 2014 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
    Sun Jun 08 22:13:29 2014 Socket Buffers: R=[8192->8192] S=[8192->8192]
    Sun Jun 08 22:13:29 2014 MANAGEMENT: >STATE:1402258409,RESOLVE,,,
    Sun Jun 08 22:13:29 2014 UDPv4 link local: [undef]
    Sun Jun 08 22:13:29 2014 UDPv4 link remote: [AF_INET]84.58.141.66:1194
    Sun Jun 08 22:13:29 2014 MANAGEMENT: >STATE:1402258409,WAIT,,,

    Kannst Du da was mit anfangen und ggf. sagen, wo es hängt ?

    Schon mal Danke…

    Antworten
    • Jan Karres says:

      Klingt für mich spontan danach, als sei beim Erstellen des Zertifikats etwas schief gegangen (siehe Step 4 bis Step 7).

      Antworten
  56. Alex says:

    Hi Jan,
    komme leider nur bis hier hin…
    ./build-ca OpenVPN
    gibt folgenden fehler aus:

    Please edit the vars script to reflect your configuration,
    then source it with „source ./vars“.
    Next, to start with a fresh PKI configuration and to delete any
    previous certificates and keys, run „./clean-all“.
    Finally, you can run this tool (pkitool) to build certificates/keys.

    hab ich vorher schon etwas falsch gemacht wohl?

    Antworten
  57. Christopher Teutsch says:

    Hallo, einmal eine Frage 🙂

    Muss ich bei Schritt 8 bei „server 10.8.0.0 255.255.255.0“ für 10.8.0.0 meine interne IP Range einsetzen, wie z. B. „server 192.168.2.0 255.255.255.0“, oder ist das egal?

    Antworten
  58. roman says:

    hallo!
    danke für dieses tolle turorial! so ist es auch einem linux-noob wie mir möglich openvpn zu verwenden 🙂
    ich greife jetzt sowohl mit android als auch mit ios auf den openvpn server zu.

    was mich aber stört:
    wenn ich mein handy verliere oder es gestohlen wird, kann jeder ohne passworteingabe die vpn-app öffnen und sich mit meinem server verbinden.
    kann ich zusätzlich eine passworteingabe aktivieren?

    lg

    Antworten
    • Jan Karres says:

      Bei dem Kommando aus Step 6 solltest du bei den vom System gestellten Fragen auch ein Passwort definieren können. Außerdem kannst du bei einem Verlust/Diebstahl des Keys dieses auch ungültig machen. Dazu einfach mal nach „openvpn key revoke“ googeln 🙂

      Antworten
      • roman says:

        ich habe die lösung inzwischen gefunden.
        falls jemand die gleiche lösung hat, so funktionierts:

        in step 6 einfach statt diesem befehl „./build-key client1“ den hier verwenden „./build-key-pass client1“.

        so wird bevor die verbindung aufgebaut wird ein passwort abgefragt…

        lg

        Antworten
  59. Marcus says:

    Erstmal vielen Dank für diesen aber auch die anderen Themen. Lese seit einiger Zeit mit und bin von damals bis heute auch in Linux heran gewachsen, gerade wegen deiner Seite. Heute Scheibe ich dann auch mal etwas für die jenigen wie ich, welche massive Probleme mit dem externen Zugriff auf openvpn und einen Telekom Router w921v haben. Es ist tatsächlich so, dass udp 1194 nicht funktioniert. Habe auch alles probiert, naja bis ich auf die Idee kann, direkt in deiner Anleitung statt udp auf tcp umzustellen. Seit dem funktioniert alles und es wäre schön hier für alle entnervten vielleicht noch einen Hinweis in die Anleitung einzubauen.

    Mach weiter so, werde bei Problemen immer zu erst nach Lösungen auf deiner Seite suchen.

    Antworten
    • Jan Karres says:

      Danke dir. Habe deinen Kommentar im Artikel mal verlinkt 😉

      Antworten
    • Ronak says:

      Hallo, ich habe in folgender config Datei openvpn.conf und raspberrypi.ovpn denn Port auf TCP umgestellt. In den Router Einstellungen habe ich dies auch gemacht.

      Ich habe einmal eine Portfreischaltung und dann eine Portweiterleitung Eingerichtet auch jeweils TCP für PORT 1194, aber es hat nicht funktioniert.

      Habe ich irgendwas vergessen?!?!
      Vielen Dank im Voraus.

      Antworten
  60. Dominik says:

    Hi, danke für das Tutorial!
    Bei mir liefs eigentlich ganz gut bis zum Neustart des Dienstes…
    Da wirft er immer diese Meldung bei dem Befehl sudo /etc/init.d/openvpn start
    [FAIL] Starting virtual private Network daemon: openvpn failed!

    Kann mir jemand dabei helfen?
    Vielen Dank!

    Antworten
    • Jan Karres says:

      Klassisch wäre wenn du in der openvpn.conf (siehe Step 8) einen Fehler hättest. Die genaue Ausgabe des Fehlers findest du in dem Ordner /var/log/ entweder in einem eigenen Logfile für OpenVPN oder in den Syslogs.

      Antworten
  61. Marcus says:

    Wie startet Ihr euren Dienst denn immer?

    Also ich mache das so : sudo openvpn –config NAMEDATEI.ovpn

    Und schon habe ich ne Verbindung.

    Antworten
    • Dominik says:

      Ja, so wie oben beschrieben. Aber jetzt hab ich es hinbekommen. Anscheinend gab es einen Parameter der nicht in der Server config gepasst hat. Jetzt hab ich nur noch ein Proll Lehm mit der Firewall. Hab von einem externen rechner versucht zuzugreifen. Kam aber die Meldung dass der tls handshake fehlschlägt.

      Antworten
  62. Peter says:

    Hallo,
    erstmal tolle Anleitung. Finde gut das auch jeder Schritt erklärt wurde.

    Nur leider funktioniert es bei mir noch nicht :/.

    Wenn ich den openvpn Server neustarten möchte, also den Befehl „sudo /etc/init.d/openvpn restart“ eingebe, bekomme ich die Meldung
    „[ok] Stopping virtual private network daemon:.
    [FAIL] Starting virtual private network daemon: openvpn failed!

    Hat vlt jmd ne Idee was da falsch gelaufen sein könnte?

    Antworten
    • Jan Karres says:

      Ich tippe drauf, das wäre zumindest eine häufige Fehlerquelle, dass du in der openvpn.conf (siehe Step 8) einen Fehler hast. Eine genauere Fehlerbeschreibung findest du in den Logs, die du im Ordner /var/log findest.

      Antworten
  63. Steve says:

    Muss man die client1.csr wirklich ins Archiv mit reinpacken? Werden die Zertifikate nicht vorher bereits signiert?

    Antworten
    • Steve says:

      Ich verstehe nicht genau, warum in der NAT-Tabelle der Befehl

      sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE

      eingesetzt wird. Du hast doch bei der Konfiguration des OpenVPN-Servers die Zeile „server 10.8.0.0 255.255.255.0“ (dies entspricht 10.8.0.0/24) benutzt. Warum
      werden jetzt in der NAT-Tabelle Anfragen aus dem Netz mit der Source- und Destination-IP 10.0.0.0/8 weitergeleitet? Und vor allem warum Destination?
      Ich habe es zwar nicht ausprobiert, aber „reicht“ der Befehl

      iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

      nicht ausreichend?

      Wenn du alle Pakete, die als Zieladresse die 10.0.0.0/8 haben, auf das eth0-interface weiterleitest, bedeutet das doch, dass die Clients untereinander nicht kommunizieren können oder?

      Entschuldige bitte meine Fragen. Ich bin gerade dabei, mich in das Thema einzuarbeiten. Das Tutorial ist wirklich super und es läuft auch alles. Wäre dir sehr dankbar, wenn du meine Fragen beantworten könntest.

      Gruß Steve

      Antworten
      • Jan Karres says:

        Ich muss zugeben Netzwerktechnik ist nicht so meins. Deine Erläuterung klingt nachvollziehbar und ich habe es auch mal ausprobiert. Funktioniert einwandfrei! Habe es folglich ebenfalls im Artikel ausgetauscht.

        Antworten
    • Jan Karres says:

      Da muss ich dir zustimmen, braucht man nicht. Habe das Tutorial entsprechend verbessert. Danke!

      Antworten
  64. Sven says:

    Gutes Tut. Step 11 funktioniert bei mir leider nicht. Nach jedem Neustart muss ich den Befehl manuell eingeben. Woran kann das liegen?

    Antworten
  65. Thomas220 says:

    Hallo Jan, eine Superanleitung, die auch ich als Linux-Neuling nachbauen konnte. Dafür vielen Dank. Auch wenn ich das Eine oder Andere nicht bis ins Detail nachvollziehen konnte. Im internen Netzwerk funktioniert das zwar auch nicht auf Anhieb, aber das hatte was mit diesem Link zu tun:
    Zitat: „Einen OpenVPN Client für Windows gibts unter http://openvpn.se/“ Zitatende
    Auf openvpn.se habe ich nur Dateien von 2005 gefunden. Mit denen hat praktisch gar nichts funktioniert. Habe dann noch etwas gegoogelt und diesen Link gefunden, in dem für jeden was dabei ist: http://openvpn.net/index.php/download/community-downloads.html
    Wie gesagt, funktioniert jetzt intern alles super. Aber das ist ja nicht Sinn und Zweck der Übung.
    Probleme habe ich, wenn ich mich von „Draußen“ verbinden will. Offensichtlich liegt es am Router: Speedport W921V. Dem Hinweis von Marcus bin ich bereits nachgegangen, aber es hat nichts gebracht. Gestern habe ich ein VPN-Netzt mit Win7 Win8 Win7 aufegbaut. Und das kann ich auch von Außen erreichen. Dort wird ja ein anderes Protokoll und ein anderer Port benutzt. Nun dachte ich mir, vielleicht kann der Port 1194 beim 921er nicht freigegeben werden. Also habe ich die openvpn.conf-Datei und die rasperrypi.conf-Datei angepasst und dort den Port 1723 eingetragen. Intern funktioniert das wieder, aber von „Draußen“ komm ich nicht rein.
    Ich erhalte immer den gleichen Fehler
    Wed Aug 13 21:16:46 2014 MANAGEMENT: >STATE:1407957406,WAIT,,,
    Wed Aug 13 21:17:47 2014 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    Wed Aug 13 21:17:47 2014 TLS Error: TLS handshake failed
    Wed Aug 13 21:17:47 2014 SIGUSR1[soft,tls-error] received, process restarting
    Wed Aug 13 21:17:47 2014 MANAGEMENT: >STATE:1407957467,RECONNECTING,tls-error,,
    Wed Aug 13 21:17:47 2014 Restart pause, 2 second(s)

    Ja und dann geht das wieder von vorne los 🙁

    Gibt es da was, was ich falsch mache. Wie gesagt es hat auch mit ursprünglichen Konfiguration nicht funktioniert.

    Vielen Dank
    Thomas

    Antworten
    • Jan Karres says:

      Habe den Client mal ersetzt. Hast recht, geringfügig neuer 😉 Danke!

      Zu deinem Problem: Für mich klingt das so als bei der Port nicht ordentlich freigegeben. Du musst Port 1194 tcp auf den Raspberry Pi in deinem Speedport freigeben. Dann sollte es funktionieren 😉

      Antworten
      • Conan says:

        in aqanleitung oben steht aber in der openvpn.conf udp und nciht tcp 😉

        Antworten
        • Marcus Nickelsen says:

          Einfach auf TCP umschreiben und dann geht es. Bei einem Telekomrouter geht es nicht anders als auf TCP zu legen.

          Antworten
          • Marcus Nickelsen says:

            dev tun
            client
            proto tcp
            remote DEINSERVERODERIP 1194
            resolv-retry infinite
            nobind
            persist-key
            persist-tun
            ca ca.crt
            cert client1.crt
            key client1.key
            comp-lzo
            verb 3

          • Jan Karres says:

            Bei anderen Routern mit denen ich das getestet habe gabs nie so ein Problem. Aber Speedports sind sowieso eine Geschichte für dich ^^

          • Marcus Nickelsen says:

            Relativ einfach zu verstehen, warum die Telekom ein gewisses Interesse daran hat, es einigen nicht zu einfach zu machen und das Streaming von TV-Sender auch außerhalb von zu Hause zu ermöglichen. Mal abgesehen von kostenlosen VoIP Verbindungen.

            Ist doch irgendwie komisch, dass genau der Port 1194 UDP nicht geht ;D

    • thomas220 says:

      Vielen Dank an Alle, die mir hier geholfen haben. Der Tunnel wird nun per TCP aufgebaut. Mal sehen, was noch so alles möglich ist.

      PS: Habe auch noch mal die gesamte Anleitung durchlaufen und die cert und keys neu erstellt. Vielleicht lag ja auch da der Fehler drin.

      Thomas

      Antworten
  66. Conan says:

    ICh hab eine frage, wie bekomme es hin das 2raspberry sich per vpn verbinden so das ich von beiden netzwerken auf alle geräte zugreifen kann (LAN-LAN kopplung)?

    Antworten
    • Jan Karres says:

      Mit dem Zugriff auf das interne Netzwerk muss ich mich selbst noch beschäftigen, sodass ich momentan keine Antwort auf deine Frage parat habe.

      Antworten
  67. Nicolas says:

    Hallo

    Erstmal danke für diese super Anleitung! Es funktioniert an sich schon mal 🙂
    Meine Frage ist nun, was ich tun muss, um Split Tunnel zu aktivieren. Wenn ich richtig informiert bin, würde das dann heissen, dass nicht aller Internetverkehr durch den VPN geschickt wird, ich jedoch trotzdem virtuell in meinem eigenen Netzwerk bin, oder?

    Über eine Antwort würde ich mich sehr freuen. Und ansonsten: Mach weiter so! Deine Anleitungen sind super!

    Gruss, Nicolas

    Antworten
  68. Martin says:

    Hallo!
    Wie immer eine super Anleitung! Ich konnte allerdings nach Schritt 14 nicht mehr übers Netz (eth0 & wlan0) auf mein Raspbi zugreifen. Nach einem sudo /etc/init.d/networks restart hat es dann aber geklappt und seither kann ich mich von überall her verbinden 🙂 Könntest oder solltest du Schritt 14 entsprechend ergänzen?

    Antworten
    • Jan Karres says:

      Habe ich ehrlich gesagt noch nicht gehört und kann mir auch kaum vorstellen, dass dies direkt mit dem Tutorial in Verbindung steht, weshalb ich das im Artikel nicht ergänzen werde, jedoch hier in den Kommentaren einfach mal stehen lasse 🙂

      Antworten
      • Martin says:

        Gut möglich, dass es an meinem Router (inkl. DHCP) liegt und ein Zusammenhang mit der Einrichtung der Portweiterleitung und anschliessenden Routerneustart besteht…

        Antworten
  69. Robert aus Wien says:

    Wie kann ich denn Schlüssel erstellen, die länger als 1024 Bit sind (z.B. 2048 oder 4096)?

    Antworten
  70. Meiser_Knobi says:

    Ähm ich hab ab schon in Schritt 3 ein problem…. unter „/usr/share/doc/“ ist kein openvpn vorhanen. Schritt 1 und 2 wie oben ausgeführt. Eventuell neue Versionen die anders arbeiten. ich habe mir mal erspart alle kommentare durchzulesen, da ich vermute hätten andere das problem auch würde es ein update im Blogpost stehn.

    Mir ist aufgefallen das im schritt 5 mit einer openssl version 1.0.0 gearbeitet wird. Ich denk grade an Heartbleed. gibt es da vll inzwischen was neues?

    Antworten
    • Jan Karres says:

      Bzgl. Heartbleed: Das ist schon längst in den Debian Distributionen gefixt 😉
      Zur eigentlichen Frage: Wenn das Verzeichnis nicht existiert ist für mich die Frage ob du überhaupt Raspbian oder eine vergleichbare Distribution verwendest…

      Antworten
  71. Frank says:

    Hallo Jan,
    Vielen Dank für dein Tutorial. Meine VPN Verbindung steht und ich komme vom Client-Netzwerk in das Server Netzwerk. Was ich nicht hin bekomme, ist eine Verbindung vom Server Netzwerk zum Client Netzwerk. Ich denke es fehlt noch eine Route im VpnServer. Könntest du mir bitte weiterhelfen?

    Antworten
  72. Christoph G says:

    Hallo Jan!

    Danke für dein tolles Tutorial! Alles ist wirklich sehr einfach und verständlich erklärt.
    Nur habe ich bei einem Schritt einen Verbesserungsvorschlag, da mich dieser Fehler sehr viel Zeit gekostet hat.
    Bei Schritt 8 sollten alle Pfade mit Anführungszeichen versehen werden,
    also z.B: ca „/etc/openvpn/easy-rsa/keys/ca.crt“

    Danach hat alles wunderbar funktioniert.

    Antworten
  73. Renee says:

    Leider bekomme ich bei „source vars“ eine Fehlermeldung:
    bash: /etc/openvpn/easy-rsa/openssl-1.0.0.cnf: Keine Berechtigung

    Kann mir da evtl jemand weiterhelfen?!

    Antworten
  74. Matthias says:

    Kann ich diese Anleitung auch für einen normalen Pc mit Debian 7 verwenden oder muss etwas abgeändert werden ?

    Antworten
  75. David says:

    Hallo habe es nach der Anleitung gemacht und zwar mit tcp statt mit udp,
    über Windows bekomme ich zwar eine Verbindung zu stande aber kann die internen Geräte in meinem Openvpn server netz nicht anpingen.

    mfg

    Antworten
    • Martin says:

      Hi David. Ich muss die OpenVPN Gui unter Windows mit der Option „Programm als Administrator ausführen“ laufen lassen, sonst kann ich auch keine Geräte anpingen…

      Antworten
  76. Mario says:

    Neues Android-Phone und nu?
    Nach deiner super Anleitung hat alles lange Zeit tadellos funktioniert. Jetzt habe ich ein neues Phone, habe OpenVPN Connect neu installiert und wollte die Zertifikate usw. importieren.
    Nun mault mich OpenVPN an, die Dateien wären nicht UTF8-kompatibel.
    Was kann ich machen?

    VG
    Mario

    Antworten
  77. Benne says:

    Das Thema ist zwar schon wieder ein wenig älter aber eins verstehe ich nicht: ich sollte durch WinSCP eine Datei mit der Endung .tar.gz finden? ich finde leider nur die tgz, wie sie ja auch im Tutorial erstellt wird.

    Falls es doch die richtige Datei sein soll, wo muss ich die hinkopieren? ich hatte vorher noch nie etwas mit VPN zu tun und OpenVPN ist daher auch Neuland für mich 😀

    Danke im Voraus

    Antworten
    • Jan Karres says:

      Interessant, dass dies vor dir noch niemand angemerkt hat. Habe es verbessert, danke!

      Wo du die Dateien aus dem Packet hinkopieren musst hängt von dem verwendenten VPN Client ab. Folglich am besten dort man in den FAQs o.ä. ansehen 🙂

      Antworten
  78. datroubler says:

    Hallo Jan,
    ich habe mich an deine Anleitung gehalten. Wenn ich mich innerhalb meines Netzwerkes verbinde habe ich keine Probleme (und in der config meine interne IP steht), sobald ich aber meine dyndns adresse eintrage und das Netz von außen Erreichen möchte geht es einfach nicht. Eine Weiterleitung ist eingerichtet.
    Es hat auch eine Zeitlang funktioniert… dyndns löst auch korrekt auf.

    Antworten
  79. Gaara4 says:

    Vielen dank für dieses Tutorial funktioniert Super ^^
    Leider geht seitdem meine Owncloud nicht mehr welche ich mit lighthttpd laufen lassen.
    Kann es sein das eine Dyndns nur für eine Sache geht und somit das andere quasi blockiert?
    Also die Website oder Owncloud kann ich gar nicht mehr erreichen egal ob über eine VPN Verbindung oder nicht

    Antworten
    • Jan Karres says:

      Über eine DynDNS können auf verschiedenen Ports verschiedene Dienste laufen. Hast du denn schon mal überprüft ob alle benötigen Dienste (OpenVPN, lighthttpd und wahrscheinlich php5-fpm) laufen, wie auch ob alle benötigten Ports freigegeben wurden?

      Antworten
  80. Thomas says:

    Bei step 9 (-> sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE) kommt nach Eingabe bei mir die Meldung:

    iptables v1.4.14: host/network .10.8.0.0´ not found
    Try
    aptables -h´ or ´iptables –help´ for more information.

    BTW: Anleitung hat beim ersten Anlauf nicht funktioniert, zwischen 12 und 13 kam vorher eine Fehlermeldung.

    Hat jemand eine Idee was ich machen kann??????

    Antworten
  81. Tristan says:

    Hi Jan,

    danke erstmal für das Tutorial.
    Leider habe ich von meinem VPN Client Probleme mit dem Zugriff auf den Samba Server (mit dem angelegten Sambauser)

    Ich hab die Weiterleitung wie schon disktutiert wie folgt abgeändert:
    http://serverfault.com/questions/418354/how-to-set-up-openvpn-to-let-the-vpn-clients-to-access-all-the-servers-inside-th

    Trotzdem erhalte ich die Fehlermeldung keine Berechtigung auf die Freigabe zu haben (auf den pi komme ich drauf nur an der Freigabe kann ich mich nicht anmelden)

    Antworten
  82. tsch says:

    Klasse Anleitung, mit der auch ich als Linux-Noob einen VPN-Server auf meinem pi installieren konnte!

    Wie kann ich nun meine inzwischen etwas ältliche Version so upgraden, dass ich den vorhandenen Key weiter nutzen kann oder ist das generell nicht möglich/gewollt?

    Vielen Dank schonmal für die Hilfe.

    Antworten
    • Jan Karres says:

      Da du OpenVPN und OpenSSL über den Paketmanager APT installiert hast kannst du diese Pakete mit diesem updaten, mittels folgenden Kommandos:

      sudo apt-get update && sudo apt-get upgrade

      Antworten
  83. Heiko says:

    Super Anleitung. Die Verbindug zum Server funktioniert bei mir auch und ich bekomme dann eine 10.193.45.6 als IP zugewiesen. Dieses Subnetz passt aber gar nicht zu meinem Netz Zuhaus, also kann ich dann ja auch nicht auf die Geräte Zuhaus zugreifen. Was muss ich einstellen bzw. wo stelle ich es ein damit ich eine Passende IP zu meinem Netz bekomme?

    Antworten
  84. Andreas Kohler says:

    Hallo,
    Ich habe jetzt auf einem Pi den OpenVPN Server installiert. Klappt soweit alles. Jetzt will ein auf einem 2. Pi als OpenVPN Client einrichten. Dieser 2. PI ist an einem UMTS Router angeschlossen ( dieser steht im Pferdstall ohne Internetzugang) an dem auch eine IP Kamera hängt. Jetzt soll der OpneVPN Client einen Tunnel zum Server aufbauen damit ich anschließen von meinem iPhone auf die IP Kamera zugreifen kann.

    Dabei stehe ich jetzt etwas auf dem Schlauch. Ist mein erstes „Projekt“ mit OpneVPN und Raspberry. Kann mir hierfür jemand in paar Tips geben, damit mein gedanklicher Knoten platzt 🙂

    Danke
    Andreas Kohler

    Antworten
  85. Der Werner says:

    Schönes Tutorial! Ich nutze mitlerweile einen vServer nach dieser Anleitung:
    http://www.kammerath.net/ubuntu-openvpn-server-konfigurieren.html

    Das Problem war bei mir mit dem OpenVPN Server auf dem Raspberry Pi einfach, dass die SD-Karte mit Arch anfing nach ein paar Monaten Lesefehler zu bekommen. Das geschah meistens dann wenn ich den OpenVPN Server am nötigsten brauchte.

    Antworten
  86. Andreas says:

    Hallo,

    mühsam ernährt sich das Eichhörnchen. Langsam komme ich voran. 2 Fragen stellen sich mir noch, zu denen ich noch keine Antwort finden konnte.

    1. wie kann ich für die Clients eine feste IP zuweisen?

    2. wie kann ich abfragen welche clients am VPN Server angemeldet sind?

    Antworten
  87. dotVPN says:

    Hallo,
    Ich habe dieses Tutorial durchgemacht und habe bemerkt, dass es bei mir die Datei dh1024.pem gibt sondern nur 01.pem und 02.pem. Ich habe also dh1024 mit 01.pem ersetzt und erhalte folgende Fehlermeldung im Log:

    Cannot load DH parameters from /etc/openvpn/easy-rsa/keys/01.pem: error:0906D06C:PEM routines:PEM_read_bio:no start line

    Antworten
  88. Andreas says:

    An meinem Client erschien bei der Anmeldung folgende Warnmeldung:

    „WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.“

    Nach der Beschreibung auf der verlinkten Seite habe ich die Zeile „remote-cert-tls server“ in die in Step 12 erstellte Datei „raspberrypi.ovpn“ eingefügt.

    Die o.g. Warnmeldung ist damit verschwunden, stattdessen erscheinen einige Validierungsmeldungen zur Verwendung des Zertifikats.

    Danke für das einfach nachzuvollziehende Tutorial, Andreas

    Antworten
  89. Holger Spatz says:

    Super Anleitung, allerdings hat sie bei mir nicht zu 100% funktioniert. Ich verwende ebenfalls einen Speedport der Telekom und musste zunächst den Port auf den TCP-Port 443 ändern – aber jedes mal nach dem die Telekom eine Zwangstrennung durchgeführt hatte, konnte keine Verbindung mehr aufgebaut werden.

    Folgender Zusatz in der Datei openvpn.conf war nötig, damit auch nach einer Zwangstrennung der OpenVPN-Server erreichbar ist:

    ping-timer-rem
    push „ping-timer-rem“

    Antworten
  90. Conan says:

    Wie muss ich die anleitung um schreiben, so das öffentrliche ipv6 addresse genutzt werden? DS-lite opfer.

    Antworten
    • Jan Karres says:

      Das ist glaube ich etwas aufwändiger. Da kann ich dir mit diesem Artikel leider nicht dienen.

      Antworten
      • tsch says:

        Hallo,

        schau doch mal in meinen Thread (hoffe das ist hier erlaubt):
        http://www.ip-phone-forum.de/showthread.php?t=272583

        Da habe ich bschrieben, wie man trotz DSlite (bin selbst betroffen) über OpenVPN sicher auf seine Geräte zugreifen kann.
        Evtl. hilft das auch Dir.

        lG

        TSCH

        Antworten
        • Jan Karres says:

          Logo ist das erlaubt 😀 Solange es sinnvoll ist und hilft, sind externe Links doch für alle hier mitlesenden nützlich 😉

          Antworten
        • Conan says:

          Einen Kostenplflichten dienst als lösung für einen bastel pc, ist natürlich eine schlaue idee.

          Antworten
          • tsch says:

            Aber bitte sehr, gern geschehen.
            5.-EUR/Jahr finde ich wesentlich günstiger als 5.-EUR pro Monat, die mir mein ISP angeboten hat.
            Und ich bin mit der Lösung sehr zufrieden und gönne dem Dienstleister das kleine Geld. Hat mir zumindest (und inzwischen auch anderen) sehr geholfen.

            Die Polemik Deiner Antwort ist mir nicht entgangen.
            Aber wer so auf eine gut gemeinte Antwort reagiert,..

  91. Conan says:

    Wen man stats TUN TAP nutzten möchte, wieviel muss man dan umstellen?

    Antworten
  92. himbeerkuchen says:

    Hallo Jan,

    Vielen Dank für das Tutorial. Ich habe als Linux Anfänger ein zwei Fragen dazu:

    Und zwar ist es normal, dass wenn ich meine dyndns adresse von no-ip verwende in meiner server config, dass dann immer meine externe, also die echte IP Adresse meines Providers (Kabelmodem mit eigenem Router) angezeigt wird, wenn ich mit meinem über ovpn verbundenen Client eine whois Abfrage übers internet mache??

    DNS-Leak Tests sind negativ, der Eintrag von Open DNS in der Server config funktioniert ürbigens.

    Hab ich da irgendwo einen Fehler eingebaut, bzw wird etwas nicht richtig geroutet, oder ist es normal, dass bei IP Checks zB über whatismyip.com dann trotzdem überall meine externe IP aufscheint? Sollte dort nicht 10.8.0.0 stehen, oder 192.168.1.104 also die IP meines Raspberry?
    Ich blicke da nicht durch 🙁

    Zweite Frage: wie kann ich prüfen, ob tatsächlich alle Daten verschlüsselt sind und über OpenVPN laufen? Ich meine, wenn ich mich verbinde über externe Clients wie zB Android Handy oder Ipad, dann bekomme ich über die Openvpn app ein grünes Häckchen, und kann alle Seiten aufrufen, aber heisst dass auch das alles passt?

    Vielen dank im voraus und lieben Gruß

    Antworten
    • Jan Karres says:

      192.168.1.104 oder 10.8.0.0 sind interne IP-Adressen. Wenn du über deinen OpenVPN Server online gehst hast du die externe IP-Adresse deines Servers (in dem Fall deines DSL Anschlusses). Wenn du diese IP-Adresse aus einem anderen Netz hast und mit dem OpenVPN Server verbunden bist hast du zugleich überprüft ob die Verbindung zum VPN-Server steht.

      Antworten
      • Himbeerkuchen says:

        Klasse, Vielen Dank Jan! Ich bin noch immer begeistert wie reibungslos der Raspi eigentlich den ganzen Traffic handelt. Mittlerweile laufen erfolgreich 5 Clients mit eigenen Keys über den Openvpn Pi (teilweise gleichzeitig) und sogar Videos werden tadellos gestreamt.

        Geprüft habe ich die Verschlüsselung mittlweile mit Wireshark. Alles in Ordnung, perfekt verschlusselt 🙂

        Kann nur jedem empfehlen sich nen eigenen VPN mit dem Raspi zu basteln. Läuft tadellos wenn man sich erstmal korrekt durch diverse Tutorials gearbeitet hat!!

        Lg

        Antworten
  93. Markus says:

    Hallo,

    super Anleitung! Hat gut funktioniert und dank deiner Erklärungen kann man auch nachvollziehen, was die einzelnen Befehle tun.
    Ich hätte noch eine Ergänzung, die Du vielleicht als optionalen Schritt hinzufügen kannst. Nämlich die zusätzliche Authentifizierung über Username und Passwort (nur Passwort funzt z.B. mit dem Android Client nicht). Nach viel Trial and error hab ich es endlich hinbekommen.

    Dazu muss in der openvpn.conf hinzugefügt werden:

    plugin /usr/lib/openvpn/openvpn-auth-pam.so login
    username-as-common-name

    und in der client config raspberrypi.ovpn:
    auth-user-pass

    OVPN Server Neustart nicht vergessen. 😉

    P.S.: soweit ich das verstanden habe, genügt es, wenn man mit „adduser“ und „passwd“ unter Linux einfach einen neuen Benutzer anlegt, der dann auch für die Authentifizierung genutzt werden kann (falls man den User pi nicht verwenden möchte).

    Antworten
    • Jan Karres says:

      Für die Authentifizierung verwenden wir in dem Tutorial ein Zertifikat, was als sicherer als Benutzername und Passwort angesehen werden kann.

      Antworten
      • Conan says:

        Ich komme vom server netz nicht auf das netzt des clients (pi2 als client), aber anders rum geht alles, was könnte das sein?

        Antworten
  94. Peter says:

    Hab alles nach Anleitung gemacht. VPN Tunnel baut sich ohne jegliche Probleme auf, jedoch kann ich mein internes Netz 192.168.x.x nicht anpingen oder im Internet surfen. IP Forward ist an. Ich glaube irgendwas stimmt die die IPTABLES nicht, aber ich komme leider auf keinen grünen Zweig.

    By the way: Mein Raspi läuft als WLAN Bridge, kann das damit zusammen hängen, dass ich IPTABLES über br0 konfigurieren muss?

    Antworten
    • Jan Karres says:

      Wie das funktioniert habe ich selbst noch nicht herausgefunden. Soll heißen mit diesem Tutorial kannst du nicht auf das interne Netz zugreifen.

      Antworten
      • Peter says:

        Vielleicht muss ich mal rpi-update ausführe, weil manche danach schon erfolg hatten. Nur mit meinen Configs kann ich im Moment noch nicht auf das interne Netz zugreifen. Hab dein Tut schon mal hergenommen für VPN und damals hat alles hervorragend funktioniert.

        Antworten
        • Peter says:

          Ich komme irgendwie auf keinen grünen Zweig habe jetzt ein rpi-update gemacht, das auch nichts gebracht hat.

          Folgende Logs bekomme ich von Tunnelblick:

          2015-04-20 22:12:14 /sbin/route add -net 87.180.126.215 192.168.0.1 255.255.255.255
          add net x.x.x.x: gateway 192.168.0.1
          2015-04-20 22:12:14 /sbin/route add -net 0.0.0.0 10.8.0.5 128.0.0.0
          add net 0.0.0.0: gateway 10.8.0.5
          2015-04-20 22:12:14 /sbin/route add -net 128.0.0.0 10.8.0.5 128.0.0.0
          add net 128.0.0.0: gateway 10.8.0.5
          2015-04-20 22:12:14 MANAGEMENT: >STATE:1429560734,ADD_ROUTES,,,
          2015-04-20 22:12:14 /sbin/route add -net 192.168.x.0 10.8.0.5 255.255.255.0
          add net 192.168.X.0: gateway 10.8.0.5
          2015-04-20 22:12:14 /sbin/route add -net 10.8.0.0 10.8.0.5 255.255.255.0
          add net 10.8.0.0: gateway 10.8.0.5
          2015-04-20 22:12:14 /sbin/route add -net 10.8.0.0 10.8.0.5 255.255.255.0
          route: writing to routing socket: File exists
          add net 10.8.0.0: gateway 10.8.0.5: File exists

          Ich frage mich, wieso er beim Internen Netzwerk ein GW mit der IP 10.8.0.5 hat…

          Hab sämtliche Einstellungen versucht, ich bekomme nur den Tunnel aufgebaut ohne Zugriff auf das interne LAN.

          Antworten
  95. Steffen says:

    Ich vermute, ein Teil der Probleme hier resultiert daraus, dass Du am Anfang des Tutorials nicht sicher stellst, dass alles auf dem aktuellsten Stand ist. Ich hab die Schritte mit einem frisch installierten Raspbian gemacht. Da ging es am Ende nicht. Der Server startete nicht neu.

    Ich hab Raspbian dann neu installiert und erst einmal apt-get upgrade und rpi-update durchlaufen lassen. Danach ging es.

    Ansonsten ist das ein wirklich gutes Tutorial! Danke schön!

    Antworten
  96. Nils says:

    Hallo

    ich habe mein RPI wie nach der Anleitung beschrieben, den Openvpn Server installiert. Wenn ich mich mit Windows oder iOS verbinde, dann kann ich kein Internet Zugriff herstellen.

    Die IP und die DNS Adresse wird noch richtig übermittelt aber als IPv4-Subnetzmaske wird 255.255.255.252 anstatt 255.255.255.0 eingetragen. Außerdem bleibt die Spalte IPv4-Standardgateway leer. (Angaben von Windows)

    Den RPI 1 B+ habe ich neu gekauft und Raspbiani installiert.
    Die aktuelle Firmware ist auch installiert.

    Habt ihr eine Idee wie ich das Problem lösen kann?

    Nils

    Antworten
    • Jan Karres says:

      Ich tippe mal, dass du in Step 9 bis Step 11 einen Fehler gemacht hast, denn in diesen wird das für den Zugriff notwendige Routing definiert.

      Antworten
      • Nils says:

        Hallo

        Danke für deine schnelle Antwort. Ich habe den Fehler gefunden.
        Das OpenVPN Programm für Windows muss als Administrator gestartet werden und die Informationen im Netzwerk und Freigabecenter müssen ignoriert werden.

        Vielen Dank für die Anleitung.

        Antworten
  97. Martin says:

    Hallo. Der OpenVPN Server auf meinem Pi werkelt jetzt schon eine ganze Weile problemlos, auch dank dieser Anleitung hier 🙂 Eine Frage stellt sich mir aber noch: Welche Daten müssen gesichert werden, damit im Falle eines Falles der OpenVPN Server wieder hergestellt werden kann, ohne dass man das gesamte Prozedere wieder durchlaufen muss. Klar: ich kann ein Image von der SD-Karte ziehen und dieses zurückladen. Unter Umständen kopiere ich dann aber allfällige Fehler mit. Oder ich möchte den OpenVPN Server von meinem alten Pi auf den Neuen übertragen – besteht da eine Idee wie das erfolgen kann ohne komplette Neuinstallation?

    Antworten
    • Jan Karres says:

      Ohne ein gesamtes Image wirst du nicht alles sichern können. Folglich ist das meiner Meinung nach die sinnvollste Methode.

      Antworten
      • Martin says:

        Hm.. Vielleicht habe ich mich nicht korrekt ausgedrückt. Mir geht es eigentlich um die Zertifikate und Keys auf dem Server, also das was in Step 5, 6, 7 erstellt wird… Lässt sich das sichern und wiederherstellen, damit bei einem Ausfall vom Server nicht auch alle Clients neu konfiguriert werden müssen?

        Antworten
        • Jan Karres says:

          Dafür bietet es sich an die ganze Konfiguration von OpenVPN, die du unter /etc/openvpn findest, zu sichern.

          Antworten
  98. Reinhard says:

    Erst mal danke für die klasse Anleitung.

    Es gibt noch ein Problem das beim Erstellen beachtet werden muss. Kein Problem dieser Anleitung, eher ein Grundsätzliches.

    Bei Punkt 6
    (./build-ca, ./build-key-server und ./build-key client1)
    werden diverse Informationen abgefragt. Wenn man bei „Common Name“ den gleichen Namen verwendet geht das schief und die „client1.crt“ ist leer, hat also die Länge 0.

    Wird diese dann Importiert und Benutzen will klappt das natürlich nicht. Und dann geht die Sucherei los. Das hat mich gerade 2-Stunden gekostet 🙁

    Die Lösung hab ich übrigens auf https://community.openvpn.net/openvpn/ticket/229 gefunden.

    Für den Fall das jemandem das gleiche passiert.

    Antworten
  99. Findus23 says:

    Bei mir hat (vermutlich seit dem Update auf Jessie) die Weiterleitung nicht richtig funktioniert. Man konnte sich zwar mit dem Server verbinden, jedoch nicht auf das Internet zugreifen.
    Die Lösung habe ich hier gefunden: https://wiki.debian.org/OpenVPN#Forward_traffic_via_VPN

    Man muss IP forwarding aktivieren. Entweder temporär:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    oder permanent

    net.ipv4.ip_forward = 1
    in der /etc/sysctl.conf auskommentieren.

    Antworten
  100. Jonas says:

    Zunächst einmal: auch eine Weile nach der erstellung noch immer ein super Tutorial.
    Es hat alles (beim 2. versuch, nachdem ich mich auch an die komplette Anleitung gehalten habe) einwandfrei funktioniert.
    Ich kann jetzt auch von unterwegs meinen Ventilator oder Licht für meine Pflanzen schalten usw.

    Jetzt zu einer Frage meinerseits:
    Ist es möglich den zugriff im lokalen Netzwerk (das Netz in dem der Raspberry Pi sich befindet) zu beschränken auf ein paar Ports oder evtl nur auf den Raspberry Pi?
    Allerdings will ich weiterhin auch aufs „normale Internet“ zugreifen können.

    Ich hoffe man versteht meine Frage

    Viele Grüße
    Jonas

    Antworten
  101. Arne says:

    Wenn ich das richtig verstehe, so sollte am Ende sämtlicher Traffic über mein Netz zuhause laufen, korrekt? Ich müsste als IP bei wieistmeineip.de also die IP meines Internetanschlusses sehen, nicht die des Netzes von dem aus ich den Tunnel aufbaue, oder? Das ist bei mir aber der Fall, obwohl OpenVPN eine erfolgreiche Verbindung meldet, mir eine lokale IP gibt und ich meinen Raspberry auch anpingen kann. Ich habe auch die Schritte 9-11 hier 2 Mal durchgeführt, nur um sicher zu gehen.

    Wo kann mein Fehler liegen?

    Gruß
    Arne

    Antworten
    • Jan Karres says:

      Genau so wie beschrieben sollte es sein. Schau dir mal die Logfiles deines OpenVPN Clients an ob du dort etwas auffällig findest.

      Antworten
  102. Christoph says:

    Hallo, ich hänge bereits bei Schritt 3 fest:-( es gibt den zu kopierenden Ordner nicht bei mir. Im Ordner /usr/share/doc/openvpn/examples gibts bei mir nur die 3 Ordner:
    sample-config-files
    sample-keys
    sample-scripts

    Was kann ich nun tun?

    Antworten
    • Jan Karres says:

      Welches Betriebsystem verwendest du denn? Dieser Artikel ist für Raspbian (Debian) ausgelegt und ich könnte mir vorstellen, dass in einem anderen Betriebssystem die Ordnerstruktur eine andere ist.

      Antworten
      • Christoph says:

        Ich nutze auch Raspbian dafür. Das hier genannte Problem habe ich nur mit einer Neuinstallation des Betriebssystems gelöst bekommen. Nun hänge ich aber an anderer Stelle fest: ich bekomme, wie schon öfter hier gelesen, die Fehlermeldung
        [FAIL] Starting private network daemon: openvpn server failed!

        Habe dann versucht in der log-Datei nachzusehen mit „sudo nano /var/log/openvpn-status.log.“
        Aber die ist bei mir irgendwie leer:-/ Was kann ich sonst tun? Habe alle Dateien auch nochmal kontrolliert aus den vorherigen Schritten. Und neu installiert habe ich das Betriebssystem auch schon:-( Wie komme ich sonst erstmal in das Logfile?

        Antworten
        • Jan Karres says:

          Wenn ich dem Logfile nichts steht schau doch mal in den syslog ob du dort eine Fehlerausgabe findest.

          cat /var/log/syslog

          Antworten
          • Christoph says:

            Hm da kommt bei mir nichts drin vor was die Begriffe vpn oder openvpn enthält. Und wenn auch kein Eintrag zu den Zeiten wo ich den openvpn server starten will. Auf meinem Pi läuft ein FHEM-Server, das sollte ihn aber nicht weiter stören oder?

          • Jan Karres says:

            Solle nichts ausmachen. Wobei ich ohne Fehlermeldung leider auch keine Chance habe dir weiter zu helfen. Sorry.

  103. Jakob says:

    Danke für die gelungene Anleitung. Ein Problem habe ich wenn Raspbian auf dem RPI ein update bekommt muss ich den Schritt 9 immer wiederholen, um wieder Zugriff auf das Internet zu bekommen
    Hast du einen Tipp wie man das vermeiden könnte ?

    Antworten
    • rasp says:

      Hi

      Erst mal Danke für die Anleitung. Ich hab das gleiche Problem wie der Jakob. Wenn man neu startet dann zieht der cron job nicht.

      sudo sh -c ‚echo 1 > /proc/sys/net/ipv4/ip_forward‘
      sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

      Das muss immer wieder ausgeführt werden. Gibts hier evtl was?

      Antworten
  104. John says:

    Achtung bei der Weiterleitung auf UDP achten. Hatte TCP drin :/

    Antworten
  105. raspi-vpn says:

    Hallo.
    Vielen Dank für die Anleitung. Leider haperts bei mir schon bei Step3. :-.(
    Bei dem Befehl:

    sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa

    bekomme ich die Fehlermeldung, dass das Verzeichnis nicht existiert:
    cp: der Aufruf von stat für »/usr/share/doc/openvpn/examples/easy-rsa/2.0“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden

    Das stimmt auch, denn es gibt in …/examples nur:
    /usr/share/doc/openvpn/examples/sample-config-files
    /usr/share/doc/openvpn/examples/sample-keys
    /usr/share/doc/openvpn/examples/sample-scripts

    Welches ist das richtige Verzeichnis und die nächste Frage ist, passt es dann überhaupt mit den Folgeschritten?

    Der letzte Eintrag ist schon knapp 2 Jahre her und mir scheint da einfach die Zeit weiter gegangen zu sein… Ich finde aber auch nichts aktuelleres.

    Antworten
    • Frank says:

      Bei mir das selbe. Der Ordner existiert nicht und ich komme nicht weiter.

      Antworten
      • someone says:

        Wenn es den Ordner easy-rsa nicht gibt, dann musst du ihn manuell downloaden.
        Weitere Infos und link:
        https://openvpn.net/index.php/open-source/documentation/howto.html#pki
        in Kapitel „Generate the master Certificate Authority (CA) certificate & key“ zweiter Absatz.

        @Jan, vielleicht ein kleiner Hinweis und link im howto?!

        Antworten
        • Sico93 says:

          Hallo, das habe ich alles gemacht, allerdings wäre eine Anwort im Beitrag echt hilfreich, ich stelle mich nämlich gerade ganz schön blöd an :/

          Der Inhalt von /etc/openvpn/easy-rsa sieht im Moment so aus:

          [email protected] /etc/openvpn/easy-rsa $ ls
          easyrsa openssl-1.0.cnf vars vars.example x509-types

          Meine vars sehen so aus:
          http://pastebin.com/U0fhFzDv

          Leider ist nahezu alles auskommentiert und ich habe keine Ahnung, was ich da jetzt eigentlich von anmachen muss um
          . ./vars
          auszuführen 🙁

          Ich würde mich extrem über eine Antwort freuen, da ich den VPN-Server gern bis Weihnachten installieren würde um ihn zwischen Weihnachten und Neujahr als ausstieg zu nutzen 😉

          Außerdem habe ich mir dieses Git-Repo von easy-rsa ziemlich umständlich kopiert, da waren immer wieder Unterordner in anderen Unterordnern usw. bis dann alles so aussah, wie es das jetzt tut…
          Vielleicht könntest du den sauberen Kopiervorgang von Github ja auch nochmal kurz beschrieben, oder einen Link zu einem Tutorial dalassen 🙂

          Vielen Dank für all deine Tutorials Jan! Die haben mir schon viel geholfen und beigebracht 🙂

          PS.: Ich habe dieses Tutorial schon einmal benutzt, allerdings war zu diesem Zeitpunkt easy-rsa noch in OpenVPN enthalten, da gab es also keine Probleme, deshalb ist das diesmal umso frustrierender *:D

          Antworten
    • Sven says:

      Hallo,

      den Fehler habe ich bei der Installation auch gehabt. Ich habe allerdings Raspbian auf Jessie aktualisiert. Ich weiß nicht, ob es nur damit zusammenhing.

      Die Dateien habe ich alle im Verzeichnis von easy-rsa gefunden, folgender Befehl funktionierte bei mir:

      sudo cp -r /usr/share/easy-rsa ./easy-rsa

      Dann die Anleitung normal abarbeiten. Hoffe, das hilft.

      Antworten
      • Manfred says:

        Seltsam, ich habe hier auch ein von Wheezy auf Jessie aktualisiertes System. Aber von easy-rsa ist weit und breit keine Spur, auch nicht unter /usr/share/.
        Habe mir es halt kurzerhand aus einem Wheezy geborgt.

        Antworten
      • TS says:

        Gab bei mir ebenfalls nur /usr/share/easy-rsa

        Antworten
  106. Juərgən (@DeuxMilles) says:

    Hi,

    habe das auf jessie durchgekaut und stoße auf einen Fehler: openvpn läuft nicht los. Die Ursache findet sich in /var/log/openvpn: „Options error: –dh fails …. 1024.pem: no such file or directory.“

    Es werden (wohl durch die neuere Version?) 2048er Schlüssel erzeugt, der Code-Schnipsel in Step 12 muss folglich in Zeile 7 auf dh2048.pem verweisen.

    Gruß,
    Jürgen

    Antworten
  107. Markus says:

    Ich bekomme immer eine Fehlermeldung nach dem Befehl und komme nicht mehr weiter:

    /etc/openvpn# sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

    libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file ‚/lib/modules/3.18.7-v7+/modules.dep.bin‘
    iptables v1.4.14: can’t initialize iptables table `nat‘: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

    Antworten
    • Michael says:

      Hi Markus,

      hatte gerade eben genau das gleiche Problem.
      Reboot tut gut….bei mir hats ein Reboot getan – danach gings…

      Viele Grüße

      Michael

      Antworten
  108. Patrick says:

    Ab Schritt 3 komme ich nicht weiter! Da steht, dass es die Datei oder den Pfad nicht gibt.

    Antworten
  109. Patrick says:

    Mach bitte mal eine Anleitung zu Blynk. Ich versteh das nicht ganz.

    Antworten
  110. toobie83 says:

    Hallo,

    ich habe eine Frage zu den DNS Einstellungen in Step 8 bzw. 9.

    Werden die Einstellungen so übernommen oder muss ich die von meinem Router dort eingeben?

    Antworten
  111. Jan007 says:

    Es wird

    push „redirect-gateway def1 bypass-dhcp“

    genutzt! Soweit ich es verstanden habe, wird mit „bypass-dhcp“ der Tunnel umgangen! Die DHCP Anfrage geht somit NICHT (bypass) über das VPN Netzwerk! Die Anfrage kann unverschlüsselt im lokalen Netzwerk, wo man eingewählt ist, mitgelesen werden!

    Antworten
  112. Johannes says:

    Hallo Jan,

    ich habe mir dein Tutorial gerade durchgelesen aber noch nicht umgesetzt! 🙂
    Bevor ich mir wieder den Aufwand mache und ein VPN installiere möchte ich vorher wissen, ob ich über das VPN auf meine anderen Netzwerkgeräte zugreifen kann.
    (Z.B auf die Website meines Raspi’s)

    Ich habe gerade ein Softether VPN installiert, dieser leitet mich erfolgreich über den Raspi ins Internet. Das Problem ist nur das ich leider keine Netzwerkgeräte einschließlich den Raspi selbst NICHT über deren IP Adresse erreiche. Lediglich die Fritzbox ist erreichbar.

    LG
    Johannes

    Antworten
  113. frivolist says:

    Klasse!
    Es passiert sehr selten, dass so eine Anleitung auf anhieb klappt. Sehr gut beschrieben.
    Danke.

    Antworten
  114. Marius says:

    Hallo, habe ein Problem.
    Habe nach dieser Anleitung den VPN installiert.
    Leider startet der open nich:

    Active: active (exited)

    Im Syslog steht
    Nov 20 22:50:44 raspberrypi systemd[1]: Starting OpenVPN connection to openvpn…
    Nov 20 22:50:44 raspberrypi systemd[1]: [email protected]: control process exited, code=exited status=1
    Nov 20 22:50:44 raspberrypi systemd[1]: Failed to start OpenVPN connection to openvpn.
    Nov 20 22:50:44 raspberrypi systemd[1]: Unit [email protected] entered failed state.

    Wenn ich VPN mit der Config starte bekomme ich folgende INfos, womit die Ursache auch klar ist:

    [email protected] /etc/openvpn $ openvpn –config /etc/openvpn/openvpn.conf
    Fri Nov 20 22:53:36 2015 Warning: Error redirecting stdout/stderr to –log file: /var/log/openvpn: Permission denied (errno=13)
    Options error: –dh fails with ‚/etc/openvpn/easy-rsa/keys/dh20481.pem‘: Permission denied
    Options error: –ca fails with ‚/etc/openvpn/easy-rsa/keys/ca.crt‘: Permission denied
    Options error: –cert fails with ‚/etc/openvpn/easy-rsa/keys/server.crt‘: Permission denied
    Options error: –key fails with ‚/etc/openvpn/easy-rsa/keys/server.key‘: Permission denied
    Options error: –status fails with ‚/var/log/openvpn-status.log‘: Permission denied
    Options error: Please correct these errors.

    Nicht so klar ist mir wie ich das beheben kann.

    Gruß
    Marius

    Antworten
  115. Bene says:

    Hey, 😀 ich hab schon alles versucht ABER 😀 ich bekomme keine richtige verbindung hin.
    ich hab jetzt locker schon über 20 Arbeitsstunden hineingesteckt..
    denke es liegt daran das irgendetwas nicht mehr akutell ist.. alles was aus den kommentaren in frage kommt hab ich jetzt auch schon durch. :/
    kann jemand mal durch checken und helfen?!

    Antworten
  116. Andreas says:

    Hallo
    Danke erstmal für die super Anleitung.
    Ich habe die Anleitung fehlerfrei abgearbeitet und OVPN auf meinem Raspberry installiert. In die Datei „raspberrypi.ovpn“ habe ich

    „remote werbinich.dyndns.org 1098“

    eingegeben.
    Die erstellten Dateien habe ich auf mein Android-Gerät kopiert und dort die App entsprechend eingerichtet. Außerdem habe ich in meinen Speedport-Router noch den Port 1098 weitergeleitet.
    Ich bekome aber immer die folgende Fehlermeldung: No route tu host.
    Auch per TCP kommt diese Meldung.
    Was mach ich da noch falsch?

    MfG
    Andreas

    Antworten
  117. magge says:

    Hallo, hab ach folgendes Problem, mein Openvpn will einfach nicht starten. Hab jetzt schon 2 mal die installation durchgeführt!

    [FAIL] Starting virtual private network daemon: openvpn failed!

    hier in der syslog kommt immer der fehler vor:

    Mar 13 07:46:34 raspberrypi ovpn-openvpn[5540]: Options error: Bad protocol: ‚upd‘. Allowed protocols with –proto option: [proto-uninitialized] [udp] [tcp-server] [tcp-client] [tcp] [udp6] [tcp6-server] [tcp6-client] [tcp6]
    Mar 13 07:46:34 raspberrypi ovpn-openvpn[5540]: Use –help for more information.
    Mar 13 07:46:36 raspberrypi kernel: [46170.587578] w1_master_driver w1_bus_master1: Family 0 for 00.9dc000000000.58 is not registered.

    Danke vorerst

    Antworten
  118. Michael says:

    Hallo,

    wenn die Fehlermeldung tatsächlich “ Bad protocol: ‚upd‘.“ lautet dann ist der Fehler klar:

    Das Protokoll lautet UDP – nicht UPD.

    …einfach nochmal die Zeile PROTP UDP kontrollieren bzw. anpassen – dann sollte es funktionieren…

    Viele Grüße

    Michael

    Antworten

Trackbacks & Pingbacks

  1. […] Raspberry Pi: OpenVPN VPN-Server installieren […]

  2. […] bin ich nach einer wirklich guten Anleitung im Internet vorgegangen, welche auch recht Problemlos geklappt hat. Entgegen der Anleitung muss […]

  3. […] Jan Kar­res habe ich eine sehr gute Anlei­tung gefun­den, mit der OpenVPN auf dem Raspberry Pi ein­fach zu instal­lie­ren ist. Die Anlei­tung ist so ein­fach, dass man den ein­zi­gen […]

  4. […] Wir können nun die Komponenten für die Verschlüsselung des OpenVPN Zugangs generieren. Nach der Eingabe des ersten Kommandos wird man nach dem Land als Abkürzung gefragt (DE = Deutschland; AT = Österreich; CH = Schweiz). Alle weiteren Angaben können einfach bestätigt werden, da sie für OpenVPN nicht relevant sind. Dasselbe gilt bei dem zweiten und dritten Kommando, wobei wir dort am Ende mit Y zwei mal bestätigen müssen. Quelle: https://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installieren/ […]

  5. […] lassen, wie ich mir das vorgestellt habe. Als Grundlage für die OpenVPN Installation habe ich die Anleitung von Jan Karres genutzt. Abweichungen habe ich bei der Konfiguration der […]

  6. […] OpenVPN Installation auf dem Raspberry Pi Zuerst folgt ihr der ausgezeichneten Anleitung von Jan (PDF) um OpenVPN auf dem Raspberry Pi zu […]

  7. […] die Installation möchte ich nun nicht weiter eingehen als auf einen Link zu verweisen, der mir an einer Stelle helfen konnte und das Verfahren in Gänze erklärt. […]

  8. […] ist, ist PPTP. Daneben gibt es noch OpenVPN, der ebenfalls beliebt ist und zu dem ich bereits eine Installationsanleitung veröffentlicht habe. Auf die Vor- und Nachteile beider VPN-Server möchte ich an dieser Stelle […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2016