© by T. Kling 2009. This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License. To view a.

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau eines Netzwerkes
Advertisements

für das Schulnetz der BS Roth
Die Firewall Was versteht man unter dem Begriff „Firewall“?
Konfiguration eines VPN Netzwerkes
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Martin MauveUniversität Mannheim1 3.6 User Datagram Protocol (UDP) RFC 768. J. Postel. User Datagram Protocol unzuverlässiges Transportprotokoll.
Virtual Private Network (VPN)
Virtual Private Networks
Virtual Private Networks
Virtual Private Networks
VPN Virtual Private Network
Installationsdiskette booten Startdiskette und CD-1 einlegen und den Rechner starten Auswahl: Deutsch Auswahl: Farbbildschirm Auswahl: Deutsch Auswahl:
Mit Schülern ein internetfähiges Netzwerk aufbauen
SecureSocketLayer „Sicherheit in Datennetzen“
VPN Virtual Private Network
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Philipp Jeschke | Mai 2007 OpenVPN / Zertifikate.
Präsentation von Lukas Sulzer
Warum gibt es Netzwerke?
Netzwerke.
1 (C)2006, Hermann Knoll, HTW Chur, FHO teKRY407 Geheimhaltung, Authentikation, Anonymität Protokolle: Übersicht Referat Santos: Hash-Funktionen.
Meldungen über Ethernet mit FINS/UDP
Virtual Private Network
VPN – Virtual Private Network
->Prinzip ->Systeme ->Peer – to – Peer
Was wäre wenn….. SNMP (Simple Network Managment Protocol)
Fernzugriff auf Unternehmensnetze in Zeiten von Windows 7 Möglichkeiten und Grenzen der verschiedenen Windows-Bordmittel für Remote-Access Jürgen Höfling,
Walter Langmann Sichere Authentifizierung von W-LAN in einer Windows 2003 Server Umgebung 5AIH Diplomarbeit im Fach Technische Informatik.
TCP/IP.
Schutzvermerk nach DIN 34 beachten TCP / IP. Schutzvermerk nach DIN 34 beachten TCP / IP und das OSI-Referenzmodell Process / Application Host-to-Host.
Virtual Private Network
Network Address Translation (NAT)
Hans Laubisch Expert Student Partner Microsoft Student Partners DE e Windows Azure Windows Azure VPN (mit Windows Server)
Virtual Private Network
(Virtual Private Network)
Netzwerke und Systemintegration
Netzwerke. IPv4 Rechner/Server werden im Internet eindeutig durch IP Adressen identifiziert Adressen sind 32-Bit-Zahlen, die in viermal acht Bit aufgeteilt.
NiederwangenWinterthurBaselMünchenFrankfurt Ralf Fachet Das M2M Kochbuch Fernzugriff mit Mobilfunk.
VPN/IPsec Grundlagen und praktische Erfahrungen in der Kopplung von Linux (FreeS/WAN) und Windows 2000 Holm Sieber Alexander Schreiber.
LINUX II Harald Wegscheider
Faiumoni e. V. IPv6 für Server Hendrik Brummermann.
Systems Architecture Comparison SSL/TLS, TLS for multiple virtual hosts Dominik Oepen, Dennis Reinert
IP version 6 The next Generation Konrad Rosenbaum, 2009.
LINUX II Samba Verbindung mit Windows. Samba Übersicht ● Samba dient zur Verbindung von Linux-Clients mit Windows Rechnern ( samba-client ) sowie von.
Hubert Feyrer 1 1 home.meinedomain.de DynDNS für Strato-Domains im Eigenbau Hubert Feyrer.
Netzwerke und Netzwerktools Franz Schäfer LV Linux: Effiziente Anwendung anhand von Fallbeispielen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
LINUX II Unit 9 Network File Server NFS. NFS Überblick ● Zugriff von lokalen Rechner über Netzwerk auf Dateien oder Ordnern auf entfernten Servern ● Entwickelt.
IP-ADRESSIERUNG ● IP = Internet Protokoll ● dient zur Kommunikation zwischen Netzwerkteilnehmern ● zwei Versionen ● ipV4: 32 bits ● ipV6: 128 bits.
LINUX II Unit Remote Zugriff via SSH.
ICMP Internet Control Message Protocol Michael Ziegler Universität Freiburg Michael Ziegler.
Netzwerkgrundlagen Franz Schäfer LV Linux: Effiziente Anwendung an Hand von Fallbeispielen.
Othmar GsengerErwin Nindl Christian Pointner. Inhalt Was ist Anycast? Secure Anycast Tunneling Protocol (SATP) Was ist Anytun Verschlüsselung Live Demo.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
“Nobody knows …” On the internet, nobody knows you're a dog.
Crashkurs Computernetzwerke
ISO / OSI Referenzmodell
Othmar Gsenger Erwin Nindl Christian Pointner
Camil Bartkowiak Serhat Cinar Leonardo Di Lella Jan Finsel
• Projektdialog paralleler Plagiatschutz- projekte
VPN (Virtual private Network)
Verbindung zu einem Netzwerk
Netzwerke Netzwerkgrundlagen.
Ich brauche eine Web-Seite vom Server im Internet
Security Labor MitM-Demonstration
Datenbanken online sowie offline verfügbar machen
Routing … … die Suche nach dem Weg..
 Präsentation transkript:

© by T. Kling This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License. To view a copy of this license, visit Virtual Private Network mit OpenVPN

Seite 2 6 Fragen/Aufgaben zum Einstieg:  Beschreiben Sie kurz was man unter einem VPN versteht.  Warum benötigen wir überhaupt VPNs?  Erklären Sie die folgenden Ziele, die man bei einer „sicheren“ Kommunikation verfolgt: Vertraulichkeit Datenintegrität Nachweisbarkeit Authentifikation  Was bedeutet: Host-to-Host-, Host-to-Site- und Site-to-Site-VPN  Nennen Sie 4 Varianten zur Realisierung (Protokolle) von VPNs und machen Sie sich mit deren prinzipiellen Funktionsweise vertraut.  Welche Problemstellungen ergeben sich beim Einsatz von VPNs?

Seite 3 Virtual Private Network ?!?  Ziele sicherer Kommunikation: Vertraulichkeit, Authentisierung, Integrität, Nachweisbarkeit  VPN verbindet Rechner und/oder Netzwerke miteinander, indem es andere (öffentliche) Netze als Transportweg nutzt.  Varianten: RAS PPTP L2TP IPSec SSL-VPN SSH-Tunnel Client VPN-Gateway VPN-Netz Internet Firmennetz

Seite 4 OpenVPN - Übersicht  „Dass das freie VPN-Tool einen derat großen Funktionsumfang mit einer simplen Konfiguration bei gleichzeitig hoher Sicherheit kombiniert, scheint wie die Quadratur des Kreises“ ( Linux-Magazin 05/09 )  Implementierung eines SSL-basierten VPN Anwendungsneutralität „Sichere“ Netzwerkerweiterung bzgl. OSI Layer 2 und 3 2 Betriebsmodi: Routing und Bridging Arbeitet über die Transportprotokolle TCP und UDP  Authentifizierung erfolgt auf Basis von: Benutzername/Passwort Smartcards PreShared Keys Zertifikatsbasiert

Seite 5 Funktionsweise phy. Verbindung eth eth tun tun Tunnel Verschlüsselung Server Client Entschlüsselung Virtuelle Verbindung Physikalischer Netzwerkadapter Virtueller Netzwerkadapter

Seite 6 Virtuelle Netzwerkschnittstellen: Das Tunnelprinzip Problem der Portierung von VPN-Lösungen, welche die Verschlüsselung und damit Modifikation der Datenpakete im Betriebsystemkern durchführen, auf andere Systeme! Ansatz von OpenVPN: Nutzt die sogenannten virtuellen Netzwerkschnittstellen und verknüpft diese mit einer Verschlüsselung im Userspace. virt. Schnittstellen bilden die Verknüpfung zwischen den über den Tunnel übertragenen Daten, dem OpenVPN-Prozess und dem OS. Protokollverschachtelung in Tunneln mit einem Trick: IP-Paket als Payload eines IP-Pakets. virtuelle Netzwerkschnittstellen sind Endpunkte des Tunnels. IP-Header Anwendungsdaten.... virtuelle Schnittstellephy. Schnittstelle TCP/UDPSSL

Seite 7 Bsp: Einfacher Tunnel ohne Verschlüsselung Server: openvpn --dev tun0 --remote ifconfig Client: openvpn --dev tun0 --remote ifconfig ifconfig eth0Protokoll:Ethernet Hardware Adresse 00:0F:B0:75:76:08 inet Adresse: Bcast: Maske: tun0 Protokoll:UNSPEC Hardware Adresse inet Adresse: P-z-P: Maske: UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metric:1

Seite 8 Routing und Bridging: tun- und tap-Geräte Betriebsmodus: Routing Tunnel zwischen den Gegenstellen auf OSI-Schicht 3. Gegenstellen erhalten IP-Adressen eines fiktiven Subnetzes. Zugriff auf die hinter den VPN-Gateways liegenden Netze nicht direkt möglich. Jeweiligen Gegenstellen müssen per IP-Forwarding und Einträgen in den Routingtabellen weitervermitteln. Betriebsmodus: Bridging Transparentes Tunneln von Ethernetframes (OSI-Schicht 2). Clients erhalten IP's aus dem Netz hinter dem VPN-Server. Notwendig für Broadcast-basierenden Diensten (NetBIOS, etc.). Verwendete virt. Schnittstelle wir über über eine Netzwerkbrücke mit dem realen Netzwerk verbunden.

Seite 9 Betriebsmodi: Point-to-Point ➢ Für Verbindungen von Host zu Host ➢ spezifische Konfigurationsdatei pro VPN-Verbindung ➢ Default-Modus von OpenVPN Client_1 UDP/119 4 OpenVPN- Prozess UDP/119 4 OpenVPN- Prozess VPN-Server Client_2 UDP/119 5 OpenVPN- Prozess UDP/119 5 OpenVPN- Prozess

Seite 10 Betriebsmodi: Server Mode ➢ Ansatz für Remote-Access-Verbindungen ➢ Ein Prozess auf dem Server verwaltet alle VPN-Verbindungen ➢ Point-to-Multipoint Modus Client_1 UDP/119 4 OpenVPN- Prozess UDP/119 4 OpenVPN- Prozess VPN-Server Client_2 UDP/119 4 OpenVPN- Prozess

Seite 11 PreShared Key Authentifizierung Verwenden einer symmetrische Verschlüsselung! Erzeugen eines gemeinsamen Schlüssels: openvpn –-genkey –-secret static.key „Sicherer“ Austausch dieses Schlüssels!?! Vorteil: Sehr einfache Konfiguration: server.conf: dev tun #remote ifconfig secret static.key client.conf: dev tun remote ifconfig secret static.key

Seite 12 Schlüsselaustausch mit Transport Layer Security Zertifikatsbasierte Authentifizierung über TLS-Protokoll. SSL ursprünglich von Netscape beschriebenes Protokoll: Ziel: Absicherung von HTTP-Verbindungen Versionen SSLv1, SSLv2 bis SSLv3 SSL setzt auf ein verlässliches Transportprotokoll auf (TCP/UDP). SSL besteht aus zwei Verbindungskanälen: SSL Record Protocol SSL Handshake Protocol: ► Gegenseitige Authentifizierung von Server und Client. ► Verschlüsselungsalgorithmus aushandeln und zugehörige Schlüssel austauschen (Diffie-Hellmann Key Exchange). TLS (RFC 2246) basiert auf SSLv3: TLS bietet Fallback auf SSLv3 (Kom. zw. TLS-Hosts und SSL-Clients). Authentifizierung bei TLS gegenüber SSL mit Zertifikaten Pflicht.

Seite 13 Zertifikatserstellung Aufbau einer PKI OpenVPN bietet mit EasyRSA bereits vorgefertigte Skripte zur Erstellung der CA, Server- und Clientzertifikate. (OpenSSL-Paket muß hierfür installiert sein) Vorgehensweise in der Dokumentation unter oder im beschrieben. CA- und Zertifikatserstellung direkt mit OpenSSL. Ein auf OpenVPN ausgerichtetes Tutorial findet sich unter: tutorials.net/security/openssl-tutorial/tutorials-t html tutorials.net/security/openssl-tutorial/tutorials-t html PKI-Verwaltung mit OpenSSL oder entsprechenden grafischen Frontends wie z.B. TinyCA, roCA (Linux BootCD mit TinyCA als Keymanagement unter ).

Seite 14 OpenVPN installieren Installationspakete sind in der Regel in den Softwarerepositories der verschiedenen Linuxdistributionen vorhanden. Installation aus den Sourcedateien von Unterstützung der virt. Netzwerkschnittstellen tun/tap in aktuellen Betriebssystemkernen bereits enthalten. Für Windows/Mac stehen ebenfalls entsprechende Programmpakete (OpenVPN-GUI) zur Verfügung. Diese beinhalten auch den benötigten win32tap-Treiber für die virtuelle Netzwerkschnittstelle. Hilfen zur Installation:

Seite 15 OpenVPN – Konfiguration / Start Erstellen/Editieren einer Konfigurationsdatei: z.B server.conf, client.conf, vpngate-sifi.conf, etc. Starten des VPN-Tunnels mit der entsprechenden Konfig-Datei: openvpn –-config server.conf Verwendung des Network-Managers:

Seite 16 Windows: OpenVPN - GUI  Konfigurationsdatei mit Dateiendung *.ovpn im Verzeichnis..openvpn\config\  abspeichern und anschließend aus der Taskleiste heraus starten.

Seite 17 Beispielnetz eth eth ClientServer eth /24 VPN-Netz: /24

Seite 18 Serverkonfiguration server.conf #Benötigte Zertifikate der CA und des Servers selbst ca /etc/openvpn/keys/root.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem #Netzwerkeinstellungen – Port, Protokoll, Schnittstelle port 1194 proto udp dev tun #Betriebsmodus Server und IP-Bereich für VPN-Netz mode server server #Server „pingt“ Client alle 10s an (wichtig bei UDP). #Neu-Aufbau der Verbindung nach 120s Inaktivität. keepalive #Logdatei und Log-Level status openvpn-status.log verb 3

Seite 19 Clientkonfiguration client.conf #Benötigte Zertifikate der CA und des Clients ca /etc/openvpn/keys/root.crt cert /etc/openvpn/keys/client.crt key /etc/openvpn/keys/client.key #Netzwerkeinstellungen port 1194 proto udp dev tun remote #Tunneloptionen: Client bezüglich des Server-Mode client

Seite 20 Start des OpenVPN-Prozesses beim Server openvpn --config server.conf Sat Nov 1 08:34: OpenVPN 2.1_rc7 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] built on Jun Sat Nov 1 08:34: Diffie-Hellman initialized with 1024 bit key Enter Private Key Password: Sat Nov 1 08:34: /usr/bin/openssl-vulnkey -q -b m Sat Nov 1 08:34: TLS-Auth MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ] Sat Nov 1 08:34: TUN/TAP device tun0 opened Sat Nov 1 08:34: TUN/TAP TX queue length set to 100 Sat Nov 1 08:34: ifconfig tun pointopoint mtu 1500 Sat Nov 1 08:34: route add -net netmask gw Sat Nov 1 08:34: Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ] Sat Nov 1 08:34: Socket Buffers: R=[ >131072] S=[ >131072] Sat Nov 1 08:34: UDPv4 link local (bound): [undef]:1194 Sat Nov 1 08:34: UDPv4 link remote: [undef] Sat Nov 1 08:34: MULTI: multi_init called, r=256 v=256 Sat Nov 1 08:34: IFCONFIG POOL: base= size=62 Sat Nov 1 08:34: Initialization Sequence Completed

Seite 21 Verbindungsaufbau aus Sicht des Servers: Zertifikatsüberprüfung Sat Nov 1 08:35: MULTI: multi_create_instance called Sat Nov 1 08:35: :1194 Re-using SSL/TLS context Sat Nov 1 08:35: :1194 Control Channel MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ] Sat Nov 1 08:35: :1194 Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ] Sat Nov 1 08:35: :1194 Local Options hash (VER=V4): '239669a8' Sat Nov 1 08:35: :1194 Expected Remote Options hash (VER=V4): ' b' Sat Nov 1 08:35: :1194 TLS: Initial packet from :1194, sid=80a0f634 0a68125c Sat Nov 1 08:35: :1194 VERIFY OK: depth=1, /C=DE/ST=Baden-Wuerttemberg/L=Sindelfingen/O=GDS2/CN=Tobias_Kling Sat Nov 1 08:35: :1194 VERIFY OK: depth=0, /C=DE/ST=Baden-Wuerttemberg/O=GDS2/CN=Testuser

Seite 22 Verbindungsaufbau aus Sicht des Servers: Verschlüsselungsparameter aushandeln Sat Nov 1 08:35: :1194 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Sat Nov 1 08:35: :1194 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Sat Nov 1 08:35: :1194 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Sat Nov 1 08:35: :1194 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Sat Nov 1 08:35: :1194 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA

Seite 23 Verbindungsaufbau aus Sicht des Servers: Übergabe der Tunnelparameter an Client Sat Nov 1 08:35: :1194 [Testuser] Peer Connection Initiated with :1194 Sat Nov 1 08:35: Testuser/ :1194 MULTI: Learn: > Testuser/ :1194 Sat Nov 1 08:35: Testuser/ :1194 MULTI: primary virtual IP for Testuser/ :1194: Sat Nov 1 08:35: Testuser/ :1194 PUSH: Received control message: 'PUSH_REQUEST' Sat Nov 1 08:35: Testuser/ :1194 SENT CONTROL [Testuser]: 'PUSH_REPLY,route ,topology net30,ping 10,ping-restart 120, ifconfig ' (status=1)

Seite 24 Verbindungsaufbau aus Sicht des Clients

Seite 25 IP-Konfiguration beim Server ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:58:66:9e inet addr: Bcast: Mask: tun0 Link encap:UNSPEC HWaddr inet addr: P-t-P: Mask: UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric: netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface UH tun U eth UG tun UG eth0 ping PING ( ) 56(84) bytes of data. 64 bytes from : icmp_seq=1 ttl=128 time=0.771 ms

Seite 26...und beim Client:

Seite 27 Zugriff auf das Firmennetz hinter dem VPN-Server Notwendige Ergänzung in server.conf #Setzten der Route zum Firmennetz beim Client push „route “ Routing auf dem VPN-Server aktivieren Linux: sysctl -w net.ipv4.ip_forward=1 Windows: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters" setzen auf "IPEnableRouter=1 Im Firmennetz muss eine Route zum virtuellen Tunnelnetz ( ), aus dem ja die Anfragen eines VPN-Clients kommen, existieren.

Seite 28 Managementinterface OpenVPN stellt über einen TCP-Socket ein Managementinterface zur Verfügung, welches externe Programme zur Administration des VPN-Servers nutzen können. Aktivierung in der Konfigurationsdatei: management IP-Adresse Port [passwortdatei] Zugriff: Datenübertragung momentan noch im Klartext (später SSL/TLS) ► Abhilfe: SSH-Tunnel auf Telnet-Interface. telnet Trying Connected to Escape character is '^]'. >INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info

Seite 29 Weitere Features.... ein kleiner Auszug :-) Bandbreitenoptimierung (comp-lzo) Bandbreitenlimitierung (shaper) Benutzerprofile und Adresspools Parameterübergabe/-anforderung an/vom Tunnelpartner (IP-Konfigurationen mit push/pull) push „route “ push „redirect-gateway“ Authentifizierung gegenüber einem RADIUS-Server Redundante VPN-Server Erhöhung der Sicherheit durch Versch. TLS-/Kanalverschlüsselungsoptionen chroot-Umgebung Unterstützung durch Firewalls

Seite 30 Optionen für den TLS-Modus Konfiguration als TLS-Server/Client beim Verbindungsaufbau tls-server bzw. tls-client Akzeptierte CN für Zertifikate festlegen tls-remote Zusätzlich Zertifikatsinformationen abfragen ns-cert-type

Seite 31 OpenVPN im IPCop  Mit Zerina ( existiert ein OpenVPN-Plugin für die weit verbreitete Firewall-Lösung IPCop.

Seite 32 Installation/Konfiguration von Zerina ● Aktuelle Version (ZERINA-0.9.5b-Installer.tar.gz) mit WinSCP, etc. in das /tmp-Verzeichnis auf dem IPCop kopieren). ● Dort auspacken: tar -xvzf./ZERINA-0.9.5b-Installer.tar.gz ●..und anschließend mit./install installieren ● Auf der Hompage von Zerina gibt es div. Konfigurations- HOWTO's für unterschiedliche Szenarien. ● Prinzipielle Vorgehensweise: ● Globale Einstellungen vornehmen ● Root/Host-Zertifikat erzeugen. ● Clientzertifikat(e) erzeugen ● ZIP-Paket (Konfigdatei+Zertifikat *.p12) für Clients downloaden ● Entpacken im config-Verzeichnis und Starten der VPN-Verbindung