Sophos: SSL Netzanbindung mit Raspberry Pi

Sollte die Anbindung an einem Netz erforderlich sein, kann man zum einen ein gesamtes Netz mit einer RED oder einer Firewall realisieren. Selbst eine Anbindung mit einer Fritzbox ist möglich (Achtung: Dies ist jedoch nicht von Sophos supported!).

Sollte es jedoch absolut nicht klappen, kann man einen Raspberry Pi als Router umfunktionieren und diesen per OpenVPN verbinden. Über die Fritzbox verteilt man dann die Route zu dem entfernten Netz und versteckt das Netz per NAT hinter dem Raspberry. Somit kann das gesamte lokale Netz auf das Netz hinter der Sophos zugreifen (Achtung: Da dies keine Site-to-Site Anbindung ist, kann man nicht aus dem Netz hinter der Sophos auf das entfernte Netz zugreifen).

Ich nutze hier einen aktuellen Raspberry Pi in der Version 3B (dieser hat genug Power und ein Gigabit LAN Interface). Dieser kostet um die 35€, komplette Sets gibt es bei Amazon und vielen anderen für ca. 60€ inkl. Raspberry Pi, Netzteil, Gehäuse, SD Karte mit Adapter, HDMI Kabel und Anleitung.

SSL VPN Benutzer einrichten auf der Firewall

Aktivieren und richten Sie den SSL Fernzugriff ein auf der Sophos. Gehen Sie dazu auf Remote Access > SSL > New Remote Access Profile … und erstellen ein Profil wie folgt:

Erstellen Sie nun auf der Sophos einen User wie folgt (natürlich mit echten Daten):

Diesen User nun einer Gruppe hinzufügen die SSL VPN Rechte hat oder direkt in dem SSL Fernzugriff Profil hinzufügen.

Laden Sie nun die entsprechende ovpn Datei herunter (aus der Zip-Datei extrahieren).

Tipp: SSL-Konfigurationsdatei als Admin runterladen!

Installation Linux auf dem Raspberry

Als Basis setze ich ein aktuelles Raspberian Stretch Lite ein (Download).

Wie in der Anleitung beschrieben, entpacke ich die Datei nach dem Download und überspiele die entpackte ISO Datei mit dem Tool Etcher auf die SD Karte.

Anschließend kommt die Karte in dem Raspberry Pi und das Gerät wird gestartet.

Wenn das System gestartet ist, als User pi mit dem Passwort raspberry einloggen (beachtet bitte, das das Default Keyboardlayout US ist und somit das z statt dem y zu verwenden ist) und das System updaten wie folgt:

sudo apt-get update
sudo apt-get dist-upgrade

Als nächstes dann den Raspberry Pi einrichten mit dem folgenden Befehl:

sudo raspi-config

Stellt bitte nun ein neues Passwort ein, die IP Adresse und das Keyboard Layout auf DE. Ich aktiviere auch SSH, damit ich bequem per SSH und Copy&Paste von einem Rechner mit Internetanschluß die Konfiguration abarbeiten kann. Wenn Sie SSH nicht mehr benötigen, können Sie es wieder über raspi-config deaktivieren.

Ich habe die folgenden Einstellungen gewählt (Basis für mein ISO zur Verteilung):

  • Kennwort: RasRou!2019
  • Hostname: pi-gateway
  • Locales: de_DE ISO-8859-1, Default: de_DE
  • Timezone: Europe/Berlin
  • Keyboard Layout: Generic 105-Key (Intl) PC, Other: German, German, Default Key, No compose Key
  • Interface Options: SSH Enabled

Nach einem Neustart deaktivieren Sie noch WLAN und Bluetooth laut dieser Anleitung wie folgt:

sudo nano /boot/config.txt
 # turn wifi and bluetooth off  
 dtoverlay=pi3-disable-wifi  
 dtoverlay=pi3-disable-bt  

Anschließend noch den hciuart Dienst deaktivieren und neustarten:

sudo systemctl disable hciuart  
sudo reboot  

Einrichten VPN Client

Ich gehe hier grundsätzlich nach dieser Anleitung vor, habe jedoch ein paar kleine Änderungen.

Als erstes den VPN Client installieren mit:

sudo apt-get install openvpn

Diese eben kopierte VPN-Konfigurationsdatei bitte nach remote.conf umbennen und nach /etc/openvpn kopieren (z.B. mittels wget oder FTP auf dem Rechner kopieren).

Tipp: Man kann auch die Datei auf die /boot Partition kopieren, da sie FAT Dateisystem ist. Bitte jedoch nicht vergessen, die Datei später zu löschen!

Hinweis: Wenn die Datei anders heißen soll, bitte unten bei Systemctl diese Datei entsprechend anpassen. Die Endung sollte jedoch .conf sein – nicht .ovpn, da sonst Systemctl nicht den Dienst starten kann – es wird kein kompletter Dateiname angegeben und .conf automatisch angehangen!

Dann eine Datei mit dem Namen login mit Zugangsdaten erstellen (in der erste Zeile ist der Username und in der zweiten Zeile das Passwort):

sudo nano /etc/openvpn/login

Dann an der Datei die Rechte anpassen, das nur root sie einsehen kann:

sudo chmod 600 /etc/openvpn/login

Editieren Sie die ovpn-Datei, das hinter auth-user-pass noch der Dateinamen Login steht und speichern diese:

auth-user-pass /etc/openvpn/login

Mit dem folgenden Befehl können Sie sehen, ob die Einwahl erfolgreich war (diese müsste dann in der Sophos unter Fernzugriff angezeigt werden):

sudo openvpn --config /etc/openvpn/remote.conf

Nun wird das VPN so eingestellt, das es direkt nach dem Boot läuft (Achtung: Der Dateiname OHNE .ovpn):

sudo systemctl enable openvpn@remote

Den Raspberry zum Router umfunktionieren

Nun muss noch IP Forwarding aktiviert werden:

echo -e '\n#Enable IP Routing\nnet.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Anschließend noch NAT aktivieren:

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Die Regeln speichern:

sudo apt-get install iptables-persistent

Anpassungen am vorhandenem Internetrouter

Weiterhin müssen sie der Raspberry stets die selbe Adresse zuordnen, dies können sie über die Fritzbox einstellen (sofern diese den DHCP Server stellt). Gehen Sie dazu unter Heimnetz > Netzwerk > Rapberry auswählen und auf das Stiftsymbol klicken. Kontrollieren sie Namen und IP Adresse und machen Sie einen Hacken bei Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.

Damit auch die anderen Rechner im LAN das VPN Netz finden, muss auf dem Internetrouter noch eine Route bekanntgegeben werden – hier anhand einer Fritzbox, gehen Sie unter Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv4 Routen:

Masterimage

Falls sie möchten, können Sie ein fertiges Image runterladen und dieses nur noch anpassen. Das Image hat folgende Konfiguration:

  • Username: pi
  • Passwort: RasRou!2019
  • IP: DHCP
  • SSH: Aktiviert

Das Image können Sie hier herunterladen. Es wurde gezippt, damit es weniger Platz und Bandbreite spart. Entzippt es (z.B. mit 7-Zip) und kopiert es dann mit einem Imagetool (z.B. mit Win32Diskimager) auf eine neue SD Karte und startet damit euren Raspberry. Mit den Tools könnt ihr euch auch selber jederzeit ein Backup erstellen (z.B. Sicherungskopie wenn alles funktioniert).

Wenn Sie das Image einsetzen, sollten Sie unbedingt das Kennwort ändern und gegebenenfalls die IP anpassen! Um das VPN nutzen zu können, müssen Sie natürlich eine OpenVPN Konfigurationsdatei einspielen. Wenn Sie SSH nicht benötigen, deaktivieren Sie es. Beachten Sie, das nun alle Rechner im Netzwerk (auch im WLAN) Zugriff auf das entfernte VPN Netz haben – auch eventuell Virenverseuchte Rechner!

Eine Vorlage zur Dokumentation können Sie hier herunterladen (Word | PDF).

Weitere Möglichkeiten

Site-to-Site statt Einzelanbindung: https://www.foxplex.com/sites/sophos-utm-site-to-site-vpn-mit-openvpn/

Raspberry als VPN Server verwenden: http://www.pivpn.io/

WLAN Hotspot bereitstellen über Raspberry:
https://www.datenreise.de/raspberry-pi-3-wlan-verbindung-herstellen/

Bekannte Probleme

  • Feste IP zuordnen klappt noch nicht. Lösung über Fritzbox eingerichtet.
  • Wenn die Verbindung mehrfach neu aufgebaut wurde, funtkoonierte zeitweise Ping nicht stabil – entfernte Dienste konnten jedoch ohne Problem genutzt werden.

Achtung

Ich übernehme keine Haftung, weder für die Dokumentation noch für das fertige Masterimage!!!

Stand 23.01.2019