{"id":1839,"date":"2020-03-25T13:10:33","date_gmt":"2020-03-25T11:10:33","guid":{"rendered":"https:\/\/ulibauer.de\/blog\/?p=1839"},"modified":"2020-03-25T18:03:49","modified_gmt":"2020-03-25T16:03:49","slug":"raspberry-pi-als-vpn-server","status":"publish","type":"post","link":"https:\/\/blog.ulibauer.de\/?p=1839","title":{"rendered":"Raspberry Pi als VPN-Server"},"content":{"rendered":"\n<p>VPN-Verbindungen  (Virtual Private Network) sind praktisch. In \u00f6ffentlichen WLANs erh\u00f6hen sie die Sicherheit, im Home Office erm\u00f6glichen sie die sichere Verbindung zum Firmenserver und bei Auslandsaufenthalten den Zugriff auf durch Geoblocking gesch\u00fctzte Inhalte. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Viele Jahre habe ich eine \u00e4ltere Fritzbox als VPN-Server genutzt. Vor einiger Zeit habe ich von Unitymedia\/Vodafone eine <a rel=\"noreferrer noopener\" aria-label=\"ConnectBox (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.internetanbieter.de\/ratgeber\/unitymedia-connectbox\/\" target=\"_blank\">ConnectBox<\/a> f\u00fcr meinen Kabelzugang erhalten. Entgegen seinem Ruf funktioniert der Kabelrouter zuverl\u00e4ssig und gut. Allerdings sind die Funktionen der ConnectBox arg eingeschr\u00e4nkt; so verf\u00fcgt sie auch \u00fcber keine M\u00f6glichkeiten, einen VPN-Zugang einzurichten.<\/p>\n\n\n\n<p>Deshalb habe ich mich dazu entschlossen, einen Raspberry Pi als VPN-Server einzurichten. Als Software-Paket habe ich<a rel=\"noreferrer noopener\" aria-label=\" PiVPN (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.pivpn.io\/\" target=\"_blank\"> PiVPN<\/a> ausgew\u00e4hlt, welches besonders einfach zu installieren und einzurichten ist.<\/p>\n\n\n\n<p>Es gibt einige gute und ausf\u00fchrliche Anleitungen zu ViVPN im Internet. Ich beschr\u00e4nke mich deshalb im Folgenden auf die wesentlichen Schritte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Raspberry Pi einrichten<\/h2>\n\n\n\n<p>Geeignet ist jeder beliebige Raspberry Pi; es kann sein, dass der Pi 1 etwas lahm ist. Als Betriebssystem ist Raspbian zu empfehlen. Soll der Raspberry Pi lediglich als VPN-Server herhalten, gen\u00fcgen Raspbian Buster Lite und eine 4GB SD-Card.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\"Raspbian Buster Lite (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\" target=\"_blank\">Raspbian Buster Lite<\/a> herunterladen und die Zip-Datei mit <a rel=\"noreferrer noopener\" aria-label=\"balenaEtcher (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.balena.io\/etcher\/\" target=\"_blank\">balenaEtcher<\/a> auf eine SD-Card schreiben. Die Karte in den Raspberry Pi einlegen, Monitor, Tastatur, Netzwerkkabel und ein Netzteil anschlie\u00dfen. Nach dem erfolgreichen Start des Betriebssystem als User &#8222;pi&#8220; mit dem Passwort &#8222;raspberry&#8220; einloggen und &#8222;raspi-config&#8220; aufrufen, um einige Einstellungen wie beispielsweise Change User Password, Localisation Options und Interfacing Options vornehmen. Unter Interfacing Options sollte unbedingt SSH ausgew\u00e4hlt werden, damit der Raspberry Pi k\u00fcnftig ohne Monitor und Tastatur von einem anderen Rechner aus gesteuert werden kann. Den Raspi neu booten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PiVPN installieren und einrichten<\/h2>\n\n\n\n<p>Es wird hier davon ausgegangen, dass die IP-Adresse des Raspberry Pi bekannt ist und per SSH von einem anderen Rechner aus auf den Raspi zugegriffen wird (&#8222;ssh pi@xxx.xxx.xxx.xxx)&#8220;. Au\u00dferdem sollte man im Router einstellen, dass sich die IP-Adresse des Raspberry Pi nicht \u00e4ndert. <\/p>\n\n\n\n<p>Die Installation von PiVPN erfolgt mit einem einzigen Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -L https:\/\/install.pivpn.io | bash<\/code><\/pre>\n\n\n\n<p>Darauf erfolgt die Einrichtung von PiVPN mit einer ganzen Reihe von &#8222;Abfragefenstern&#8220; im Terminal. Diese <a rel=\"noreferrer noopener\" aria-label=\" (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.dennis-henss.de\/2017\/12\/05\/installation-pivpn-den-raspberry-pi-einfach-zum-vpn-server-ausbauen\/\" target=\"_blank\">Anleitung<\/a> f\u00fchrt Schritt f\u00fcr Schritt durch den Prozess der Einrichtung. Allerdings ist sie nicht ganz aktuell und bezieht sich nur auf die Einrichtung eines OpenVPN-Servers. Hilfreich sind auch <a rel=\"noreferrer noopener\" aria-label=\"Anleitung (englisch) (\u00f6ffnet in neuem Tab)\" href=\"http:\/\/kamilslab.com\/2017\/01\/22\/how-to-turn-your-raspberry-pi-into-a-home-vpn-server-using-pivpn\/\" target=\"_blank\">Anleitung (englisch)<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Grundlagen WireGuard (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.thomas-krenn.com\/de\/wiki\/WireGuard_Grundlagen\" target=\"_blank\">Grundlagen WireGuard<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Ratgeber PiVPN (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.pcwelt.de\/ratgeber\/VPN_mit_dem_Raspberry_Pi_-_so_geht_s-Sicher_surfen-8640499.html\" target=\"_blank\">Ratgeber PiVPN<\/a>.<\/p>\n\n\n\n<p>Ich habe mich f\u00fcr das neuere WireGuard-VPN entschieden. Man kann bei der Einrichtung von PiVPN zwischen WireGuard und OpenVPN ausw\u00e4hlen. Zahlreiche Voreinstellungen kann man bei der Einrichtung von PiVPN einfach \u00fcbernehmen. Besondere Aufmerksamkeit verlangen die folgenden Punkte:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Default Port: Vorgegebenen Standardport \u00fcbernehmen oder einen anderen Port eintragen und notieren (empfohlen). Diesen Port im heimischen Router <a href=\"https:\/\/praxistipps.chip.de\/portweiterleitung-am-router-einrichten-so-klappts_31304\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"freigeben\/weiterleiten (\u00f6ffnet in neuem Tab)\">freigeben\/weiterleiten<\/a>.<\/li><li>Public IP or DNS: Nur wer eine statische IP-Adresse vom Provider erh\u00e4lt oder dessen IP sich sehr selten \u00e4ndert, sollte hier &#8222;Public IP&#8220; w\u00e4hlen. Alle anderen\/die meisten m\u00fcssen &#8222;Use a public DNS&#8220; ausw\u00e4hlen.<\/li><li> Im folgenden Fenster ist der DynDNS-Name einzutragen.<\/li><\/ul>\n\n\n\n<p>Einen DynDNS-Namen kann man bei zahlreichen Diensten bekommen, kostenlos oder kostenpflichtig. Dieser <a rel=\"noreferrer noopener\" aria-label=\"Artikel (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.ionos.de\/digitalguide\/server\/tools\/dyndns-anbieter-im-ueberblick\/\" target=\"_blank\">Artikel<\/a> bietet einen \u00dcberblick. <\/p>\n\n\n\n<p>Zum Schluss m\u00fcssen noch Profile f\u00fcr alle Ger\u00e4te eingerichtet werden, mit denen auf den VPN-Server zugegriffen werden soll. Dies geschieht mit dem Befehl<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pivpn add<\/code><\/pre>\n\n\n\n<p>Danach einen Benutzernamen und ein Passwort eingeben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WireGuard Clients einrichten<\/h2>\n\n\n\n<p>Pcs, Laptops, Smartphones usw. k\u00f6nnen erst dann Verbindung mit dem heimischen WireGuard-Server aufnehmen, wenn sie \u00fcber einen WireGuard-Client verf\u00fcgen. Solche <a rel=\"noreferrer noopener\" aria-label=\"Clients (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.wireguard.com\/install\/\" target=\"_blank\">Clients<\/a> gibt es f\u00fcr MacOS, Linux und Windows sowie f\u00fcr Android und iOS.<\/p>\n\n\n\n<p>Ich zeige die Einrichtung Beispiel der Android\/iOS-Clients, die man im <a rel=\"noreferrer noopener\" aria-label=\"Playstore (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.wireguard.android&amp;hl=de\" target=\"_blank\">Playstore<\/a> bzw. <a rel=\"noreferrer noopener\" aria-label=\"AppStore (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/apps.apple.com\/de\/app\/wireguard\/id1441195209\" target=\"_blank\">App Store<\/a> kostenlos herunterladen kann. Ihre Einrichtung ist beispielhaft einfach.<\/p>\n\n\n\n<p>Damit die Einrichtung klappt ist auf dem Raspberry Pi zuerst ein Befehl einzugeben, der einen QR Code f\u00fcr die einfache Registrierung der Clients am Server zur Verf\u00fcgung stellt (Bitte den Name der conf-Datei anpassen):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>qrencode -t ansiutf8 \/home\/pi\/configs\/android.conf<\/code><\/pre>\n\n\n\n<p>Es wird ein QR-Code angezeigt; das klappt auch \u00fcber eine SSH-Verbindung. <\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/03\/pivpn_qrcode.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/03\/pivpn_qrcode.png\" alt=\"qr code\" class=\"wp-image-1850\" width=\"192\" height=\"184\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/pivpn_qrcode.png 766w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/pivpn_qrcode-300x288.png 300w\" sizes=\"auto, (max-width: 192px) 100vw, 192px\" \/><\/a><\/figure>\n\n\n\n<p>Den WireGuard Client auf das Smartphone herunterladen\/installieren, auf das + Zeichen gehen und &#8222;Create from QR code&#8220; ausw\u00e4hlen. Dann den QR Code einscannen. Das war es auch schon.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"300\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1-150x300.png\" alt=\"wireguard\" class=\"wp-image-1849\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1-150x300.png 150w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1-768x1536.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1-512x1024.png 512w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/03\/Screenshot_20200325-102738-1.png 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Testen<\/h2>\n\n\n\n<p>Um im heimischen Netz zu testen, ob der VPN-Tunnel funktioniert, muss WLAN am Smartphone unbedingt abgeschaltet werden. Im heimischen Netz wird die Verbindung nur \u00fcber Mobilfunk funktionieren.  Au\u00dferdem muss die Portweiterleitung\/Portfreigabe im Router aktiv sein.<\/p>\n\n\n\n<p>In den Smartphone-Einstellungen zu &#8222;Netzwerk und Internet&#8220; gehen, WLAN abschalten und unter &#8222;Erweitert&#8220; VPN ausw\u00e4hlen. Anschlie\u00dfend VPN in der WireGuard App aktivieren (Android 9). Unter iOS geht es so: &#8222;Einstellungen&#8220; &#8211; &#8222;WLAN&#8220; aus &#8211; &#8222;VPN&#8220; an. Im Browser eine beliebige Internet-Adresse aufrufen oder eine App starten. Wenn alles normal funktioniert hat die Einrichtung des VPN geklappt.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VPN-Verbindungen (Virtual Private Network) sind praktisch. In \u00f6ffentlichen WLANs erh\u00f6hen sie die Sicherheit, im Home Office erm\u00f6glichen sie die sichere Verbindung zum Firmenserver und bei Auslandsaufenthalten den Zugriff auf durch Geoblocking gesch\u00fctzte Inhalte.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1839","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1839"}],"version-history":[{"count":16,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1839\/revisions"}],"predecessor-version":[{"id":1859,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1839\/revisions\/1859"}],"wp:attachment":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}