34
Sichere Netze mit OpenVPN – Open Source VPN in Theorie und Praxis CLT 2014 15. März 2014 Roman Geber Linux Consultant B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

  • Upload
    hadan

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Sichere Netze mit OpenVPN – OpenSource VPN in Theorie und PraxisCLT 2014 15. März 2014

Roman GeberLinux Consultant

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Agenda

Vorstellung B1 Systems

Was ist ein VPN?

OpenVPN

OpenVPN – Server-Konfiguration

OpenVPN – Client-Konfiguration

Live Demo

Weiteren InformationenB1 Systems GmbH

Sichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 2 / 34

Page 3: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Vorstellung B1 Systems

gegründet 2004primär Linux/Open Source-Themennational & international tätigüber 60 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 3 / 34

Page 4: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)Konfigurationsmanagement (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (OpenStack & SUSE Cloud)Hochverfügbarkeit (Pacemaker)Shared Storage (GPFS, OCFS2, DRBD & CEPH)Dateiaustausch (ownCloud)Paketierung (Open Build Service)Administratoren oder Entwickler zur Unterstützung des Teamsvor Ort

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 4 / 34

Page 5: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Was ist ein VPN?

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 5 / 34

Page 6: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Physikalische Netze

kontrollierte Umgebung mit begrenztem Zugangeigene Infrastruktur (Kabel, Router, Switches, Firewalls, etc.)verschlüsselte Funknetze für sicheren DatenaustauschMöglichkeit zur kompletten Trennung von externen Netzwerken

Datenverkehr im eigenen, physikalischen Netzwerk ist nur untergroßem Aufwand abzufangen. Es ist erstrebenswert, zumindestkritische Daten nie aus der eigenen Infrastruktur „entkommen“ zulassen.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 6 / 34

Page 7: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Reality Check

Isolierte Netze sind die AusnahmeDatenzugriff von externen Clients wird immer wichtiger(Teleworking, Außendienst, Reise, Vorträge)Verwaltung von Online-Auftritten über Web-Oberflächen (CMS)Zugang zu Test- und DemonstrationsumgebungenSynchronisation von mobilen Geräten

Den Zugang zu Daten auf das physikalische Netz zu beschränken istnicht immer möglich. Zunehmend müssen private Daten und Diensteüber das Internet erreichbar sein.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 7 / 34

Page 8: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Risiken und Nebenwirkungen

Unverschlüsselte Dienste sind leichte Beute für„Man in the Middle“-AttackenVerschlüsselung einzelner Dienste bedeutet erhöhtenInstallations- und WartungsaufwandIndividuelle Sicherheitslücken im Code der jeweiligenAnwendung können zu Einbrüchen führenGestohlene Benutzerdaten erlauben Zugriff auf Diensteund Daten

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 8 / 34

Page 9: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

VPN – Virtual Private Network

Erweiterung des physikalischen Netzwerks über unsichere Kanälekompletter Datenverkehr ist SSL-verschlüsseltClients verwenden interne IP-AdressenBenutzer werden mittels SSL-Zertifikaten und optional durchBenutzername und Passwort angemeldet

VPN steht für „Virtual Private Network“, könnte aber genau so gut für„Virtual Physical Network“ stehen. Kritische Daten verlassen zwar dasphysikalische Netzwerk, bleiben aber auf vertrauenswürdigen Bahnen.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 9 / 34

Page 10: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Konkrete Einsatzbeispiele für VPN

Zugang zu Intranet und Remote Desktop Arbeitsplätzenanonymisiertes Web-Browsing über VPN-DiensteVerschlüsselung des Datenverkehrs über öffentliche NetzeClient-zu-Client Kommunikation ohne Firewall-Konfigurationzusätzliche Absicherung von WLAN-NetzenZusammenführen vieler kleiner Netze und verteilter Clientsteilweise Abschirmung von Web-Anwendungen

VPN vereinfacht die Administration verteilter Netze und erhöht dieSicherheit um ein Vielfaches.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 10 / 34

Page 11: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 11 / 34

Page 12: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Das OpenVPN-Projekt

offizielle Website: http://www.openvpn.netfreie Software, GNU GPL v2 Lizenzerstes Release: April 2002aktuelle Version: 2.3.2Clients für Linux, Mac OS X, Windows, Android und iOS

OpenVPN erfreut sich einer großen Anwenderbasis. Eine Vielzahl vonSystemen wird unterstützt, die Einrichtung von Server und Client istunproblematisch.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 12 / 34

Page 13: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN – Komponenten

OpenVPN ServerDer OpenVPN Server-Prozess verwaltet Benutzer, Authentifizierung,Tunneling, Daten Routing, etc. Clients erreichen ihn standardmäßigunter Port 1194.

OpenVPN ClientClients verwenden SSL-Zertifikate und Schlüssel und ggf. optionaleAuthentifizierungsmethoden, um sich am Server anzumelden. DieKonfiguration findet in einer Textdatei oder ggf. über eine Client-GUIstatt.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 13 / 34

Page 14: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN installieren

LinuxAlle gängigen Linux-Distributionen pflegen OpenVPN-Pakete überdie jeweiligen Paketmanager. Das Paket trägt meist den Namen„openvpn“.Beispiel für die Installation auf Debian / Ubuntu:# sudo apt-get install openvpn

WindowsFür Windows stehen auf der OpenVPN-Website Installationspaketebereit:https://openvpn.net/index.php/open-source/downloads.html

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 14 / 34

Page 15: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN installieren

Mac OS XFür Mac OS X steht mit „Tunnelblick“ ein komfortabler Client zurVerfügung. Es ist möglich, Tunnelblick als Server einzusetzen.In „Paket und Port Managern“ für Mac OS X steht OpenVPN ebensozur Verfügung.Beispiel für die Installation mit MacPorts:# sudo port install openvpn2

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 15 / 34

Page 16: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN – Server-Konfiguration

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 16 / 34

Page 17: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Schritte

1 Installation der „easy-rsa“-Werkzeuge2 Erstellung einer SSL CA (Certificate Authority)3 Erstellung des Server-Zertifikats4 Erstellung eines Client-Zertifikats5 Anpassung der Konfigurationsdatei6 Start des OpenVPN-Daemons

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 17 / 34

Page 18: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Installation von easy-rsa

Installation von easy-rsaeasy-rsa ist eine Sammlung von Skripten, die das Erstellen vonSchlüsseln und Zertifikaten für OpenVPN vereinfacht undautomatisiert.

Installation unter Debian/Ubuntu# mkdir -p /etc/openvpn/easy-rsa/# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* \

/etc/openvpn/easy-rsa/

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 18 / 34

Page 19: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

SSL-Konfiguration

/etc/openvpn/easy-rsa/vars[...]export KEY_COUNTRY=’’DE’’export KEY_PROVINCE=’’Saxony’’export KEY_CITY=’’Chemnitz’’export KEY_ORG=’’Technische Universität’’export KEY_EMAIL=’’[email protected]’’export KEY_CN=’’client1’’export KEY_NAME=’’client1-key’’export KEY_OU=’’Linux Tage’’[...]

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 19 / 34

Page 20: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Server-Zertifikat und Schlüssel

Erstellung von Server-Zertifikat und Schlüssel# cd /etc/openvpn/easy-rsa/# source vars # Einlesen der SSL-Konfiguration# ./clean-all # Schlüsselverzeichnis initialisieren# ./build-ca # CA erstellen# ./build-key-server servername # Server-Schlüssel# ./build-dh # Diffie-Hellman-Parameter erzeugen

# cd keys/# cp servername.crt servername.key ca.crt \

dh1024.pem /etc/openvpn/ # Schlüssel in Konfigurations-# verzeichnis kopieren

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 20 / 34

Page 21: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Server-Konfigurationsdatei

Standard-Konfiguration kopieren# cd /usr/share/doc/openvpn/examples/sample-config-files# cp server.conf.gz /etc/openvpn/# gunzip /etc/openvpn/server.conf.gz

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 21 / 34

Page 22: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Server-Konfigurationsdatei

/etc/openvpn/server.conf – Auszuglocal 192.168.56.100proto udpdev tunca ca.crtcert servername.crtkey servername.keyserver 10.8.0.0 255.255.0.0tls-auth ta.key 0

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 22 / 34

Page 23: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Server starten

Server starten# service openvpn start

TroubleshootingOpenVPN schreibt sehr verständliche Meldungen in das System-Log.Lässt sich der Daemon nicht starten, verfolgen Sie dieLog-Meldungen (Beispiel für Ubuntu):

# tail -f /var/log/syslog

In den meisten Fällen sind Pfade zu den Zertifikaten falsch gesetzt.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 23 / 34

Page 24: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

OpenVPN – Client-Konfiguration

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 24 / 34

Page 25: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Schritte

Client-Zertifikate auf den Client kopierenErstellung einer Client-Konfiguration*Einrichtung der Verbindung über NetworkManager*

* Mehrere MöglichkeitenDas Vorgehen unterscheidet sich je nach verwendetem Client.NetworkManager stellt eine benutzerfreundliche GUI zur Verfügung, dochviele Clients erwarten eine Konfigurationsdatei.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 25 / 34

Page 26: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Client-Zertifikate kopieren

Client-Zertifikate kopierenKopieren Sie die Client-Zertifikate, das CA-Zertifikat und denTLS-Schlüssel aus dem easy-rsa keys Verzeichnis. Beispiel:# mkdir -p ~/vpn# chmod 700 ~/vpn# cd ~/vpn# scp vpnserver:/etc/openvpn/easy-rsa/keys/ca.crt .# scp vpnserver:/etc/openvpn/easy-rsa/keys/ta.key .# scp vpnserver:/etc/openvpn/easy-rsa/keys/client1.crt .# scp vpnserver:/etc/openvpn/easy-rsa/keys/client1.key .

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 26 / 34

Page 27: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Client-Konfigurationsdatei

client1.ovpnclientdev tunproto udpremote 192.168.56.100 1194resolv-retry infinitenobindpersist-keyca /home/user/vpn/ca.crtcert /home/user/vpn/client1.crtkey /home/user/vpn/client1.keyns-cert-type servertls-auth /home/user/vpn/ta.key 1comp-lzoverb 3cipher BF-CBC

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 27 / 34

Page 28: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Client-Konfigurationsdatei Windows

client1.ovpn (Windows)clientdev tunproto udpremote 192.168.56.100 1194resolv-retry infinitenobindpersist-keyca C:\\Users\\user\\vpn\\ca.crtcert C:\\Users\\user\\vpn\\client1.crtkey C:\\ Users\\ user\\ vpn\\client1.keyns-cert-type servertls-auth C:\\Users\\user\\vpn\\ta.key 1comp-lzoverb 3cipher BF-CBC

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 28 / 34

Page 29: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Client verbinden

Client verbinden# openvpn ~/vpn/client1.ovpn

TroubleshootingBei Problemen finden Sie aussagekräftige Log-Meldungen im Syslog desClients und Servers.

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 29 / 34

Page 30: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Live Demo

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 30 / 34

Page 31: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Weitere Informationen

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 31 / 34

Page 32: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Offizielle Ressourcen

Projekt Website: http://openvpn.net/OpenVPN Quellcode: http://sf.net/projects/openvpn/Binaries: http://openvpn.net/index.php/download.htmlTunnelblick (Mac Client):http://code.google.com/p/tunnelblick/

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 32 / 34

Page 33: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Howtos

Ubuntu 12.04 Howto:https://help.ubuntu.com/12.04/serverguide/openvpn.html

Mac OS X Client Howto Tunnelblick:http://code.google.com/p/tunnelblick/wiki/UsingTunnelblick

Windows Client Howto: http://goo.gl/hQrqg

B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 33 / 34

Page 34: SichereNetzemitOpenVPN–Open SourceVPNinTheorieundPraxis · Agenda VorstellungB1Systems WasisteinVPN? OpenVPN OpenVPN–Server-Konfiguration OpenVPN–Client-Konfiguration LiveDemo

Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an [email protected]

oder +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development