OpenVPN

Aus Freifunk Potsdam | Wiki
Wechseln zu: Navigation, Suche

Ein VPN (virtuelles privates Netzwerk) baut einen verschlüsselter Tunnel von Deinem Rechner zu einer vertrauenswürdigen Gegenstelle im Internet auf. Sämtlicher Datenverkehr von Deinem Rechner wird durch den Tunnel geschickt. Damit ist automatisch alles verschlüsselt, auf der WLAN-Strecke sind die Daten also sicher.

Windows

OpenVPN runterladen und installieren

Open vpn gui installation 1.png
  • Lizenzen akzeptieren
Open vpn gui installation 2.png
  • Alle Optionen anwählen, bis auf "Hide the TAP-Win32 Virtual Ethernet Adapter". "My Certificate Wizard" wird unbedingt gebraucht.
Open vpn gui installation 3.png
  • Installationsordner auswählen
Open vpn gui installation 4.png
  • Ein bisschen warten ...
Open vpn gui installation 5.png
  • Der Treiber muss installiert werden, sonst funktioniert OpenVPN nicht...
Open vpn gui installation 6.png
  • Fertig :)
Open vpn gui installation 7.png
Open vpn gui installation 8.png

Schlüssel und Zertifikat

Für die sichere Kommunikation benötigst Du einen privaten Schlüssel und ein Zertifikat. Den Schlüssel erzeugst Du Dir auf Deinem Computer, das Zertifikat schicken wir Dir.

Starte die Schlüsselerzeugung unter Programme -> OpenVPN -> My Certificate Wizard. In trage in den Feldern folgendes ein:

Openvpn certificate wizard 1.png
  • Common Name (e.g. your name): vorname_nachname.vpn.freifunk-potsdam.de. Bitte trage Deinen richtigen Namen ein. Lasse unbedingt den Teil vpn.freifunk-potsdam.de intakt. Wenn Du mehrere Computer absichern willst, brauchst Du für jeden einzelnen Computer ein eigenes Zertifikat.
  • Mail-Address: deine@mail-adresse.de
  • Country Name: DE
  • State or Province: Brandenburg
  • Locality Name: Potsdam
  • Organisation Name: Freifunk Potsdam e.V.
  • Organisational Unit Name: VPN
  • Im Feld Passphrase musst Du ein Passwort für Deinen Schlüssel angeben. Damit wird der Schlüssel vor dem Zugriff anderer geschützt. Nur mit dem Passwort kannst Du Deinen Schlüssel benutzen.
  • Gib als Output Folder das Config-Verzeichnis von OpenVPN an, das ist i.d.R. C:\Programme\OpenVPN\config.

Jetzt kannst Du mit Create Request Deinen Schlüssel und einen Zertifikatsrequest erzeugen. Ein neues Fenster enthält den Request.

Openvpn certificate wizard 2.png

Wie im Fenster zu lesen ist, findest Du

  • Deinen privaten Schlüssel unter C:\Programme\OpenVPN\config\vorname_nachname_vpn_freifunk-potsdam_de.key
  • Deinen Zertifikatsrequest unter C:\Programme\OpenVPN\config\vorname_nachname_vpn_freifunk-potsdam_de.req

Kopiere den Request in die Zwischenablage (Knopf Copy to clipboard) und schicke uns diesen per E-Mail. Du kannst auch direkt die Datei vorname_nachname_vpn_freifunk-potsdam_de.req als Attatchment schicken. Schicke uns nicht Deinen privaten Schlüssel (*.key)!!!

Komm zu unserem Treffen und bring Deinen Personalausweis mit. Dort erhältst Du von uns eine Datei vorname_nachname_vpn_freifunk-potsdam_de.crt. Kopiere die in das Verzeichnis C:\Programme\OpenVPN\config\.

Konfiguration

Erstelle eine Textdatei C:\Programme\OpenVPN\config\freifunk-vpn.ovpn mit folgendem Inhalt (die Dateiendung muss .ovpn sein, nicht .txt!). Achte darauf den korrekten Dateinamen des Zertifikats und des Schlüssels anzugeben.


client
dev tun
proto udp
remote vpn.freifunk-potsdam.de 1192
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vorname_nachname_vpn_freifunk-potsdam_de.crt
key vorname_nachname_vpn_freifunk-potsdam_de.key
ns-cert-type server
comp-lzo
verb 3
  • Erstelle mit einem Texteditor eine Datei ca.crt und kopiere das CA-Zertifikat unten dort hinein. Die Datei gehört in das Verzeichnis c:\Programme\OpenVPN\config\.

Der Inhalt der Datei c:\Programme\OpenVPN\config\ca.crt sollte dieser sein:

-----BEGIN CERTIFICATE-----
MIIEQDCCA6mgAwIBAgIJAMvturRGeNfbMA0GCSqGSIb3DQEBBQUAMIHHMQswCQYD
VQQGEwJTSTERMA8GA1UECBMIU2xvdmVuaWExEjAQBgNVBAcTCUxqdWJsamFuYTEg
MB4GA1UEChMXdnBuLmZyZWlmdW5rLXBvdHNkYW0uZGUxITAfBgNVBAsUGGluZm9A
ZnJlaWZ1bmstcG90c2RhbS5kZTEjMCEGA1UEAxMadnBuLmZyZWlmdW5rLXBvdHNk
YW0uZGUgQ0ExJzAlBgkqhkiG9w0BCQEWGGluZm9AZnJlaWZ1bmstcG90c2RhbS5k
ZTAeFw0xMDA5MTgxOTE5MTRaFw0yMDA5MTUxOTE5MTRaMIHHMQswCQYDVQQGEwJT
STERMA8GA1UECBMIU2xvdmVuaWExEjAQBgNVBAcTCUxqdWJsamFuYTEgMB4GA1UE
ChMXdnBuLmZyZWlmdW5rLXBvdHNkYW0uZGUxITAfBgNVBAsUGGluZm9AZnJlaWZ1
bmstcG90c2RhbS5kZTEjMCEGA1UEAxMadnBuLmZyZWlmdW5rLXBvdHNkYW0uZGUg
Q0ExJzAlBgkqhkiG9w0BCQEWGGluZm9AZnJlaWZ1bmstcG90c2RhbS5kZTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqa8rQJMIjBXGAt9piGCJQGPPcMFqABHa
AoYdoiGsw4hpwyUzwwiV8CDfrCCrcYqHe3dl5KJjqnPaTUafDDyAobRnlli8/vbe
sVNtrhljYCGlGeEs+LYtB3O5VsFVEojPHV7ta8AEiNliT/kryUmgwp0JKglJAv1S
orijYZbW9J8CAwEAAaOCATAwggEsMB0GA1UdDgQWBBRF6wX9Z+7jV66UFCAxw0Mn
yKo5xTCB/AYDVR0jBIH0MIHxgBRF6wX9Z+7jV66UFCAxw0MnyKo5xaGBzaSByjCB
xzELMAkGA1UEBhMCU0kxETAPBgNVBAgTCFNsb3ZlbmlhMRIwEAYDVQQHEwlManVi
bGphbmExIDAeBgNVBAoTF3Zwbi5mcmVpZnVuay1wb3RzZGFtLmRlMSEwHwYDVQQL
FBhpbmZvQGZyZWlmdW5rLXBvdHNkYW0uZGUxIzAhBgNVBAMTGnZwbi5mcmVpZnVu
ay1wb3RzZGFtLmRlIENBMScwJQYJKoZIhvcNAQkBFhhpbmZvQGZyZWlmdW5rLXBv
dHNkYW0uZGWCCQDL7bq0RnjX2zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
A4GBAJeCZO4IcvcimpvCiohWzolAoYBV4mga2/ZcKcRjQNXYfuepVu1nPjDJzfVd
kT1XzCesLvlJK2ulcxdOgh6J/ULwStmu2zdOYD7Het4o2pFAewZacqA8y2FXKIVo
xFjvkROmtYrz53VXXkkpPuSbnS51M9JBT3Vwx3v1gokJogpW
-----END CERTIFICATE-----

Verbindungsaufbau

  • Wähle im Kontextmenü der OpenVPN GUI die Option connect.
Openvpn connecting.png
  • Nach ein paar Sekunden sollte die Farbe des OpenVPN-Icons von gelb nach grün wechseln und das Fenster ausgeblendet werden. Du bist jetzt sicher im Freifunk-Netz unterwegs :-)
Openvpn connected.png

Fehlersuche

  • Nur das Root-Zertifikat:

VERIFY ERROR: depth=0, error=unable to get local issuer certificate: /CN=vpn.freifunk-potsdam.de

  • Nur das class3-Zertifikat

VERIFY ERROR: depth=1, error=unable to get issuer certificate: /O=CAcert_Inc./OU=http://www.CAcert.org/CN=CAcert_Class_3_Root

Windows

  • Unbedingt darauf achten, daß alle Config-/Zertifikats-/Text-Dateien "without Byte Order Mark (BOM)" (also am besten als reines UTF-8) im Editor abgespeichert werden, sonst regnet's unplausibel klingende Fehlermeldungen.

Mac OS X

... bitte die Doku für Mac OS ergänzen :)

Linux

Konfiguration

  • Erzeuge Dir einen privaten Schlüssel
$ openssl genrsa -out vorname_nachname.key 2048
  • Erzeuge Dir einen Certificate Request
$ openssl req -new -key vorname_nachname.key -out vorname_nachname.req
  • Die Konfiguration liegt unter /etc/openvpn/client.ovpn
  • kopiere die Dateien vorname_nachname.cert und vorname_nachname.key in dieses Verzeichnis
  • Lade das class3 und class1 Root-Zertifikat von cacert.org herunter:
$ wget http://www.cacert.org/certs/root.crt
$ wget https://www.cacert.org/certs/class3.crt
  • Kopiere beide Zertifikate in eine Textdatei:
$ cat root.crt class3.crt > ca.crt

Routing

  • wenn du unter Linux den Konsolen OpenVPN Client nutzt, kann es sein, dass er die Routen nicht automatisch setzen kann. Falls das so ist, ändere die Konfigurationszeile remote vpn.freifunk-potsdam.de 1194 durch remote 78.47.210.100 1194 (halt die IP von iggy) und gebe folgendes in die Shell ein:
  • lösche alte default Route (in dem Beispiel ppp0, was eine Modemschnittstelle ist). wenn ihr nicht wisst was eure default Route ist schaut mit 'route -n' nach
route del default ppp0 
  • Den Weg zu iggy (VPN Server) weisen:
route add -host 78.47.210.100 dev ppp0 
  • Nun das VPN starten (yourConfig ist eure Konfigurationsdatei):
openvpn --config [yourConfig].ovpn  
  • Default Route für alle INet Anfragen auf den VPN Tunnel zeigen lassen:
route add default tun0
  • Wenn man wie in meinem Fall durch Einwählen über das Handy im VPN des Netzbetreibers seid, dann ist dessen DNS natürlich nicht mehr erreichbar. Damit der Rechner weiterhin Domains auflösen kann gibt man ein:
echo "nameserver 141.1.1.1" > /etc/resolv.conf

Nun sollte es funktionieren. Bei Problemen meldet euch bei uns - am Besten bei einem Treffen oder auf der Mailingliste

Eigener Server

Das Funktionsprinzip und einige Hinweise zum Aufsetzen eines eigenen Servers erfahrt ihr unter OpenVPN-Server