• Keine Ergebnisse gefunden

OpenVPN. ( Virtuelle Private Netzwerke) Tiroler Linuxtag, am Memelink Michael

N/A
N/A
Protected

Academic year: 2022

Aktie "OpenVPN. ( Virtuelle Private Netzwerke) Tiroler Linuxtag, am Memelink Michael"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

OpenVPN

( Virtuelle Private Netzwerke)

Memelink Michael

09.09.2006 Tiroler Linuxtag, am

(2)

Inhaltsverzeichnis:

Inhaltsverzeichnis:

1.Einführung

• Was ist VPN

• Was ist OpenVPN

2.Vorbereitung

• Was benötige ich?

• Zertifikaterstellung

3.Einrichtung

• Server

• Client

(3)

Einführung:

Einführung:

1. 1. Was sind VPNs:Was sind VPNs:

• VPNs sind „Virtuelle Private Netzwerke“, die die Herstellung eines vertraulichen und sicheren Netzwerkes über öffentliche und unsichere Netzwerke wie z.B. das Internet ermöglichen.

• Bei einem VPN wird ein Tunnel zwischen VPN-Client und VPN-Server aufgebaut.

Es gibt verschiedene Möglichkeiten dies zu realisieren.

- Site-to-Site VPN …

z.B. Unternehmensnetzwerke zusammenschließen - End-to-Site VPN …

z.B. Anbindung der Aussendienstmitarbeiter an internes Firmennetz - End-to-End VPN …

z.B. Arbeitsrechner direkt miteinander verbinden

(4)

Einführung:

Einführung:

2. 2. Was ist OpenVPN:Was ist OpenVPN:

• OpenVPN ist ein OpenSource Programm zur Herstellung eines VPN's

• Es verwendet wahlweise UDP oder TCP als Protokoll

• Zur Verschlüsselung und Authentisierung werden Bibliotheken des Programms OpenSSL* verwendet

*… OpenSSL ist ein Toolkit, welches das SSL v2/v3 Protokoll und das TSL v1 Protokoll implementiert und zudem noch eine gute Kryptographie Library besitzt.

• Anwender können zwischen verschiedenen Authentisierungsmöglichkeiten wählen:

- Preshared-Keys - Preshared-Keys - Zertifikate

- Zertifikate

- Authentisierungsplugins - Authentisierungsplugins

(5)

Einführung:

Einführung:

Preshared-Keys …

Preshared-Keys … eignen sich für kleine VPN-Verbindungen mit wenigen Teilnehmern, wenn es nicht von großer Bedeutung ist, dass mehrere Personen den gleichen Schlüssel haben;

Zertifikate …

Zertifikate … sind eine wesentlich sichere Methode zur Authentisierung.

Der Client muss ein gültiges Zertifikat vorweisen, um sich am VPN-Server anmelden.

Authentisierungs-Plugins … Authentisierungs-Plugins …

hiermit kann auf zusätzliche Authentisierungsmöglichkeiten zurückgegriffen werden, wie z.B. Benutzername und Passwort auf einem RADIUS oder LDAP Server zu überprüfen

Im Vortrag wird nur auf Zertifikate näher eingegangen.

(6)

Einführung:

Einführung:

3. 3. OpenVPN im Detail:OpenVPN im Detail:

• OpenVPN benutzt den Client/Server Ansatz, d.h. der OpenVPN Client initiiert eine Verbindung zum OpenVPN Server.

• Dabei wird das X.509 Zertifikat vom Server beim Client auf Echtheit überprüft.

• Wurde der Server auf Echtheit überprüft, dann wird die 1. Stufe der Client Authentisierung gestartet.

• Steht das Zertifikat nicht in der „Certificate Revocation List“ (CRL)

und es ist gültig, dann ist die 1. Stufe der Authentisierung abgeschlossen und die verschlüsselte Verbindung kann starten.

• Standardmäßig werden mit SSL/TLS die Session-Keys dynamisch ausgehandelt.

•Wenn die Authentisierung mit einem X.509 Client Zertifikat erfolgt, dann prüft der Server das vom Client übermittelte Zertifikat anhand des Public-Keys

der ausgegeben Certificate Authority.

(7)

Einführung:

Einführung:

3. 3. Wesentlicher Aufbau des X.509 Standards:Wesentlicher Aufbau des X.509 Standards:

- Zertifikat - Version

- Seriennumner - Algorithmen ID - Aussteller

- Gültigkeit - von - bis - Subject

- Subject Public Key Info

- Public Key Algorithmus - Subject Public Key

- Eindeutige ID des Ausstellers (optional) - Eindeutige ID des Inhabers (optional) - Erweiterungen

....

- Zertifikat Signaturalgorithmus - Zertifikat Signatur

X.509

X.509 ist ein ITU-T-Standard für eine Public-Key-Infrastruktur und derzeit der wichtigste Standard für digitale Zertifikate.

Die aktuelle Version ist X.509v3.

(8)

Vorbereitung:

Vorbereitung:

Software: Die neueste Software von OpenVPN finden Sie unter

http://openvpn.net/download.html

OpenVPN braucht folgende libary's, damit es erfolgreich kompiliert werden kann:

1. Was benötige ich?Was benötige ich?

- OpenSSL library … notwendig für die Verschlüsselung - LZO library … notwendig für die Link-Kompression - Pthread libary

tar xzvf openvpn-2.0_Version.tar.gz cd openvpn_Version

./configure --prefix=/usr/local make

make install Code:

Unter Debian Systeme reicht ledigleich ein simples „apt-get install openvpn“

(9)

Vorbereitung:

Vorbereitung:

Zertifikaterstellung:

Zertifikaterstellung:

Das erstellen der Zertifikate ist dank vorgefertigter Skripte die im „easy-rsa“-Verzeichnis liegen, schnell erledigt.

Wir wechseln ins Verzeichnis „/etc/openvpn/easy-rsa“ und öffnen die VARS-Datei.

In der VARS-Datei befinden sich die allgemeinen Einstellungen für die Zertifikate.

export D=`pwd`

export KEY_CONFIG=$D/openssl.cnf export KEY_DIR=$D/keys

export KEY_SIZE=1024 export KEY_COUNTRY=AT export KEY_PROVINCE=TIROL export KEY_CITY=HALL

export KEY_ORG=„umit"

export KEY_EMAIL=" mein@email"

Code:

Vorgabefelder für die Erstellung des Zertifikates. Alle Felder müssen Ausgefüllt sein!

Ziel der zu erstellenden Schlüssel Stärke der Verschlüsselung,

hier 1024BIT, geht natürlich auch mehr!

(10)

Vorbereitung:

Vorbereitung:

Zertifikaterstellung:

Zertifikaterstellung: Erstellen des Wurzelzertifikates

Als erstes muss die PKI vorbereitet werden und das Wurzel-Zertifikat erstellt werden.

. ./vars ./clean-all ./build-ca Befehle:

initialisiert die VARS-Datei die wir eben geändert haben Leert das Verzeichnis „keys“, das in der VARS-Datei spezifiziert wurde

erstellt das Zertifikat und den Schlüssel für certificate authority, das root-certificate bzw. das Wurzel-Zertifikat.

Erstellen des Server-Zertifikates und Schlüssels:

Mit dem Befehl: ./build-key-server server wird das Zertifikat und der Schlüssel generiert.

Dabei wird dem Skript der Parameter „server“ übergeben, der den Dateinamen für Schlüssel und Zertifikat festlegt.

CN muss einzigartig sein!!!

(11)

Vorbereitung:

Vorbereitung:

Zertifikaterstellung:

Zertifikaterstellung: Erstellen des Client-Zertifikates und Schlüssels

Nun werden noch schnell die Schlüssel und Zertifikate für die Clients erstellt, mit:

./build-key client1

Dabei stellt der übergebene Parameter client1 wieder den Namen

für das Zertifikat und den Schlüssel da. Wiederum muss unter Common Name ein einzigartiger Name gewählt werden, der bislang nicht verwendet wurde.

Wenn weitere Clients ein Zertifikat und einen Schlüssel erhalten sollen, muss der entsprechende Befehl erneut aufgerufen werden.

./build-key clientXYZ

Erstellen der Diffie-Hellmann-Parameter:

Nun müssen noch die Diffie-Hellmann-Parameter für den Server erstellt werden:

./build-dh

Der Vorgang dauert einige Zeit - insbesondere bei langsamen PCs

(12)

Einrichtung:

Einrichtung:

Nun erfolgt die Einrichtung des eigentlichen VPNs.

Zunächst werden wir den Server konfigurieren:

dev tun proto udp

server 192.168.4.0/24 255.255.255.0 mode server

ca /etc/openvpn/easy-rsa/keys/ca.crt

cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh1024.pem cipher AES-128-CBC

tls-server

tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 comp-lzo

Keepalive 10 60 status openvpn.log verb 6

persist-key persist-tun tun-mtu 1452

Angaben zur Verschlüsselung

Key und Zertifikat

werden im Speicher behalten Logs

Geräte für den Tunnel festlegen und das Protokoll bestimmen

Kompression

(13)

Einrichtung:

Einrichtung:

Einrichtung des Clients:

remote meineAdresse.dyndns.org dev tun

port 1194 client proto udp tls-client

tls-auth /etc/openvpn/easy-rsa/keys/ta.key 1 ca /etc/openvpn/easy-rsa/keys/ca.crt

cert /etc/openvpn/easy-rsa/keys/client1.crt key /etc/openvpn/easy-rsa/keys/client1.key cipher AES-128-CBC

comp-lzo tun-mtu 1452

Verschlüsselung

Maximum Transfer UNIT muss auf Client und Server identisch sein Ziel des Tunnels, also der VPN-Server, als Beispiel hier die DynDNS-Adresse

(14)

Einrichtung:

Einrichtung:

Firewall noch schnell einrichten:

# Protokoll ist UDP und Port ist 1194

iptables -A INPUT -p udp --dport 1194 -j ACCEPT

# Erlaube Pakete der TUN/TAP Schnittstelle.

iptables -A INPUT -i tun+ -j ACCEPT

iptables -A FORWARD -i tun+ -j ACCEPT iptables -A INPUT -i tap+ -j ACCEPT

iptables -A FORWARD -i tap+ -j ACCEPT

(15)

Vielen Dank für Ihre Aufmerksamkeit

Mail: michael.memelink@umit.at

Referenzen

ÄHNLICHE DOKUMENTE

Professionelle Marktteilnehmer setzen in sich abzeichnenden Seitwärtsmärkten häufig auf eine bewährte Vorgehensweise: Durch die Einbettung einer Ertragsobergrenze (Cap) kann

Bei Express-Zertifikaten der Raiffeisen Centrobank wird die Barriere ausschließlich am Letzten Bewertungstag mit dem Schlusskurs des Basiswerts verglichen: Ist die Barriere am

On execution of the confidentiality agreement, the financial adviser distributes one or several bid process letters and an information memorandum to prospective bidders, inviting

/ Clé pour la série ROYAL (niveau de sécurité B) unique- ment en tant que clé coupée contre un échantillon. Disponible avec ou

Diese Methode liefert, bei gegebenem Socket Objekt, den lokalen Port des Hosts, der mit einem remote Host eine Verbindung aufgebaut hat, beziehungsweise.. Programm Fragment

Bei Verdacht auf ein Poly- oder Schädel-Hirn- Trauma muss daher vom Tier- arzt eine rasche Notfallver- sorgung durchgeführt werden..

Diese unter ESPRIT ge- förderten Projekte waren aber nur der Beginn der ESSI-Initiative (European System and Soft- ware Initiative), deren Ziel es ist, den Bedarfan neuen Methoden

Ein Mitglied einer Organisation bekommt einfach über den Netzwerkanschluss seines Rechners Verbindung zum Internet (falls die Organisation das zulässt). Klassische Anschlüsse