sicherenetzemitopenvpn–open sourcevpnintheorieundpraxis · agenda vorstellungb1systems...
TRANSCRIPT
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
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
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
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
Was ist ein VPN?
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 5 / 34
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
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
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
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
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
OpenVPN
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 11 / 34
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
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
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
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
OpenVPN – Server-Konfiguration
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 16 / 34
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
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
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
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
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
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
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
OpenVPN – Client-Konfiguration
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 24 / 34
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
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
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
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
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
Live Demo
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 30 / 34
Weitere Informationen
B1 Systems GmbHSichere Netze mit OpenVPN – OpenSource VPN in Theorie und Praxis 31 / 34
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
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
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