Einrichten eines Virtual Private Network auf Basis eines
Einrichten eines Virtual Private Network auf Basis eines Linux Routers Copyright by Olaf Strauß, Bert Peters, Michael Krüger, Sebastian Hofmann 16. Juli 2004 HFI 402 Betriebssysteme / Netzwerke Virtual Private Network 1 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Gliederung der Präsentation • Allgemein – – – • Open. VPN – – – – • Was ist VPN? Was ist Verschlüsselung? Was ist ein Tunnel? Tunnelszenarien Softwareübersicht Übersicht Pre-shared secret keys Open. SSL (Asymmetrische Kryptographie) Installation des Linux VPN-Servers Funktionsskizze Konfiguration: pre-shared-key – Variante Firewall- und Routing- Konfiguration des Servers Installation eines Clients Konfiguration des Clients Free. S/WAN – – – – Übersicht Funktionsskizze Anatomie Installation Server Config Client Config Verschlüsselung bei Free. S/WAN • Zusammenfassung • Demonstration Virtual Private Network 2 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Was ist VPN? • Virtuel Private Network (VPN) ist ein Computernetz, das zum Transport privater Daten ein öffentliches Netzwerk (z. B. Internet) nutzt. • Verbindung kann verschlüsselt werden. • Verbindung erfolgt über einen Tunnel zwischen VPN-Client und VPN-Server Allgemein 3 von 29 Open. VPN Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Was ist Verschlüsselung? • Umcodierung der Daten in kryptische Datenblocks • Sichere Kommunikation wird gewährleistet (auch über unsichere Netze) Allgemein 4 von 29 Open. VPN Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Was ist ein Tunnel? • Verbindung zweier Gebiete durch ein fremdes Gebiet • Die verbundenen Gebiete bilden eine Einheit • A und B haben keinen Kontakt zu F und umgekehrt. F A B • Beispiele: – – IPX-Netze über IP-Netz koppeln Firmennetze über das Internet/Intranet verbinden „Road Warriors“ den Zugang zum Intranet gewähren Gesicherte Verbindung zwischen Hosts (innerhalb eines LANs) Allgemein 5 von 29 Open. VPN Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Tunnelszenarien • Folgende Verbindungen sind möglich – Netzwerk (Router) <-> Netzwerk (Router) – Host <-> Host – Host <-> Netzwerk (Router) • Probleme können auftreten – bei zwischenliegenden NAT-Routern – bei zwischenliegenden Firewalls / Proxys – wechselnde IPs durch Einwahlrouting / DHCP Allgemein 6 von 29 Open. VPN Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Softwareübericht Software Windows Verschlüsselung Komprimierung Trafficshaping Open. VPN X X Free. S/WAN X X X Vtun Cipe X X PPTP X X Nur IP Proxy X X *Trafficshaping –Paketlaufzeiten und Bandbreiten pro VPN sind definierbar Allgemein 7 von 29 Open. VPN Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Gliederung der Präsentation • Allgemein – – – • Open. VPN – – – – • Was ist VPN? Was ist Verschlüsselung? Was ist ein Tunnel? Tunnelszenarien Softwareübersicht Übersicht Pre-shared secret keys Open. SSL (Asymmetrische Kryptographie) Installation des Linux VPN-Servers Funktionsskizze Konfiguration: pre-shared-key – Variante Firewall- und Routing- Konfiguration des Servers Installation eines Clients Konfiguration des Clients Free. S/WAN – – – – Übersicht Funktionsskizze Anatomie Installation Server Config Client Config Verschlüsselung bei Free. S/WAN • Zusammenfassung • Demonstration Virtual Private Network 8 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Übersicht • Tunneling von IP oder Ethernet über UDP • kann auf Open. SSL aufsetzen • nutzt Shared-Key-Verfahren – Blowfish, DES, 3 DES, … • nutzt Public-Key-Verfahren und Zertifikate – auf Open. SSL basierend • läuft auf den meisten Plattformen – Linux (kernelunabhängig) – *BSD, Windows, Mac. OS X • Traffic. Shaping und Kompression möglich • Verwendet tun-Tunneldevice (TUN/TAP-Driver) • DHCP-fähig – Änderungen der IP während der Session wird erkannt – Paket muß nur Authentizitätstest bestehen Allgemein Open. VPN 9 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Pre-shared secret keys • Auf dem Server erzeugte Keys, die an die Clients verteilt werden. – Nachteil: Verteilung kann nicht über die VPNVerbindung erfolgen – Vorteil: Sehr einfach zu implementieren Allgemein Open. VPN 10 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Open. SSL (Asymmetrische Kryptographie) • Open. SSL wird für den dynamischen Schlüsselaustausch und die Authentifizierung der Gegenseite genutzt. • Basiert auf public-key Kryptographie. – Vorteil: Keine Probleme beim Schlüsselaustausch über „unsichere“ Medien. • Der public-key wird zusätzlich von einer Certificate Authority (CA) signiert, um die Authenzität des Gegenübers zu gewährleisten • Für den Open. SSL-Modus benötigt Open. VPN zwei Kanäle: Einen Kontrol- und einen Daten-Kanal. Allgemein Open. VPN 11 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Installation des Linux VPN-Servers • Alternative 1: (liegt der Distribution schon bei) – Open. VPN, Open. SSL und davon abhängige Pakete über jeweilige Software-Paket-Verwaltung (z. B. YAST bei Suse) installieren. • Alternative 2 (Download des Pakets von openvpn. sourceforge. org) – Das entpackte Paket wird über die bekannten Befehle configure, make und make installiert. Allgemein Open. VPN 12 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Funktionsskizze Allgemein Open. VPN 13 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Konfiguration: pre-shared-key - Variante • Erzeugen eines pre-shared-keys: openvpn –genkey –secret /etc/openvpn/user. key • Beispiel: /etc/openvpn/user. conf # openvpn conf Datei # Schnittstelle dev tun # Verbindungspunkte ifconfig 10. 0. 0. 1 10. 0. 0. 2 255. 0 link-mtu 1544 # openvpn Key secret /etc/openvpn/user. key # Kompression LZO # comp-lzo # Port port 5000 # normales loggen verb 3 Allgemein Open. VPN 14 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Firewall- und Routing- Konfiguration des Servers • iptables – Script (Teil 1) # eth 0 = NIC extern # eth 1 = NIC intern # Variablen PRIVATE=192. 168. 3. 0/24 VIRTUEL=10. 0/24 # Alle Regeln loeschen iptables -t nat -F iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD # per Default alles blocken iptables -P OUTPUT DROP iptables -P INPUT DROP iptables -P FORWARD DROP Allgemein Open. VPN 15 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Firewall- und Routing- Konfiguration des Servers • iptables – Script (Teil 2) # Inputs iptables definieren -A INPUT -p udp --dport 5000: 5001 -i eth 0 -j ACCEPT -A INPUT -s $PRIVATE -i eth 1 -j ACCEPT -A INPUT -s $VIRTUEL -i tun+ -j ACCEPT # Outputs definieren iptables -P OUTPUT –p udp –dport 5000: 5001 –o eth 0 –j ACCEPT iptables –P OUTPUT –s $PRIVATE –o eth 1 –j ACCEPT iptables –P OUTPUT –d $VIRTUEL –o tun+ -j ACCEPT # Forwards definieren iptables -A FORWARD -s $VIRTUEL -i tun+ -o eth 1 -d $PRIVATE -j ACCEPT iptables -A FORWARD -s $PRIVATE -i eth 1 -o tun+ -d $VIRTUEL -j ACCEPT # Masquarading iptables -t nat -A POSTROUTING -o eth 1 -j MASQUERADE Allgemein Open. VPN 16 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Installation eines Clients • Beispiel anhand eines Windows Clients – Installation über das ausführbare exe-Setup – Setup legt automatisch eine virtuelle Netzwerkschnittstelle an, welche einen eindeutigen Bezeichner erhalten sollte. – Open. VPN Startmöglichkeiten • automatisch als Dienst • manuell Allgemein Open. VPN 17 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Konfiguration des Clients • Die Konfigurationsdatei: Pfad: …Open. VPNconfiguser. ovpn # Open. VPN Config Client dev tun remote 194. 1. 2. 2 ifconfig 10. 0. 0. 2 10. 0. 0. 1 route-gateway 10. 0. 0. 1 redirect-gateway dev-node My. VPN link-mtu 1544 port 5001 secret user. key Allgemein Open. VPN 18 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Gliederung der Präsentation • Allgemein – – – • Open. VPN – – – – • Was ist VPN? Was ist Verschlüsselung? Was ist ein Tunnel? Tunnelszenarien Softwareübersicht Übersicht Pre-shared secret keys Open. SSL (Asymmetrische Kryptographie) Installation des Linux VPN-Servers Funktionsskizze Konfiguration: pre-shared-key – Variante Firewall- und Routing- Konfiguration des Servers Installation eines Clients Konfiguration des Clients Free. S/WAN – – – – Übersicht Funktionsskizze Anatomie Installation Server Config Client Config Verschlüsselung bei Free. S/WAN • Zusammenfassung • Demonstration Virtual Private Network 19 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Übersicht • IPSec-Struktur für Linux • IPSec: – Ist standardisiertes Protokoll für IPv 4 und IPv 6 – Nutzt diverse Verschlüsselungsverfahren – Beinhaltet Schlüsselverwaltung (Internet-Key-Exchange) • kompatibel mit Hardware- und Softwareimplementierungen, z. B: – Router mit IPSec-Unterstützung – Windowsimplementierung • standardisiert und weitverbreitet, aber hoher Verwaltungsaufwand • Sehr komplex und vielseitige Software Allgemein Open. VPN 20 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Funktionsskizze Allgemein Open. VPN 21 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Anatomie • Pluto – Daemon zur Verwalltung der VPN Kanäle – Kann mehrere VPNs zur gleichen Zeit hosten – Stellt Werkzeuge zum Aufbau und Unterhalt zur Verfügung • IPSec – – – Ziel: Sichere Kommunikation über das Internet zu gewährleisten Integrität der Daten sicherstellen Authentifikation der Daten unterstützen Vertraulichkeit der Daten und der Verbindung gewährleisten Zugriffskontrolle auf Benutzerebene ermöglichen • IKE – – Internet Key Exchange Protokoll Zur Verwaltung der Schlüsselaustausch der Kommunikationspartner Bereitstellen der nötigen Parameter Allgemein Open. VPN 22 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Installation • Free. S/WAN. rpm installieren • IPSec Tools installieren • XFRM_USER Modul Laden • Pluto starten • Config Einstellungen vornehmen Allgemein Open. VPN 23 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Server Config # Add connections here. conn road left=194. 1. 2. 3 # leftid=@swan. fhdw. de # leftsubnet=192. 168. 3. 0/24 # leftrsasigkey=0 s. AQN 0 J…. . right=%any # rightid=@road. fhdw. de # rightrsasigkey=0 s. AQOBag+Wdxa. Xrjf…. auto=start # # authby=rsasig Allgemein Open. VPN 24 von 29 Free. S/WAN Zusammenfassung Gateway's information Wildcard: we don't know the laptop's IP authorizes but doesn't start this connection at startup Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Client Config • Screenshot Client # Add connections here. conn road left = 194. 1. 2. 33 leftid = @road. fhdw. de leftrsasigkey = 0 s. AQOBag+Wdxa…. right = 194. 1. 2. 3 rightsubnet = 192. 168. 3. 0/24 rightid = @swan. fhdw. de rightrsasigkey = 0 s. AQN 0 JLEj 01 zp. FO…. auto=add # Picks up our dynamic IP # Local information # Remote information # # # authorizes but doesn't start this # connection at startup authby = rsasig Allgemein Open. VPN 25 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Verschlüsselung bei Free. S/WAN • Authentifizierung – Asymetrische verschlüsselte RSA-keys • Nutzdaten – Verschlüsselung über ESP (Encapsulated Security Payload) – Ohne Authentifizierung auf ISO/OSI-Schicht 3 – Jeder Datentransfer kann verschlüsselt werden. Allgemein Open. VPN 26 von 29 Free. S/WAN Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Gliederung der Präsentation • Allgemein – – – • Open. VPN – – – – • Was ist VPN? Was ist Verschlüsselung? Was ist ein Tunnel? Tunnelszenarien Softwareübersicht Übersicht Pre-shared secret keys Open. SSL (Asymmetrische Kryptographie) Installation des Linux VPN-Servers Funktionsskizze Konfiguration: pre-shared-key – Variante Firewall- und Routing- Konfiguration des Servers Installation eines Clients Konfiguration des Clients Free. S/WAN – – – – Übersicht Funktionsskizze Anatomie Installation Server Config Client Config Verschlüsselung bei Free. S/WAN • Zusammenfassung • Demonstration Virtual Private Network 27 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Zusammenfassung • VPN ist ein Tunnel für verschiedene Zwecke: – – – Kopplung zweier Netze über ein inkompatibles Netz Verschlüsselte Kommunikation über unsicheren Bereich Absichern von Application-Level-Protokollen Umgehen bzw. Durchbrechen von Firewalls/Proxies Umgehen von NAT-Problemen • Auswahlkriterien: – – Beteiligte Betriebssysteme Anwenderkreis Einsatzzweck Abwägung: Nutzen-Konfigurationsaufwand Allgemein Open. VPN Free. S/WAN 28 von 29 Zusammenfassung Virtual Private Network © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
Gliederung der Präsentation • Allgemein – – – • Open. VPN – – – – • Was ist VPN? Was ist Verschlüsselung? Was ist ein Tunnel? Tunnelszenarien Softwareübersicht Übersicht Pre-shared secret keys Open. SSL (Asymmetrische Kryptographie) Installation des Linux VPN-Servers Funktionsskizze Konfiguration: pre-shared-key – Variante Firewall- und Routing- Konfiguration des Servers Installation eines Clients Konfiguration des Clients Free. S/WAN – – – – Übersicht Funktionsskizze Anatomie Installation Server Config Client Config Verschlüsselung bei Free. S/WAN • Zusammenfassung • Demonstration Virtual Private Network 29 von 29 © by Sebastian Hofmann, Michael Krüger, Bert Peters, Olaf Strauß
- Slides: 29