Sophos: SSL Netzanbindung mit Raspberry Pi

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


„Kleine“ Sonos (Play 1 oder 3) mit Airplay bedienen

Airsonos

Ich nutze zuhause einen Sonos Play 1. Diese haben einen klasse Sound und sind Prima per App zu bedienen.

Doch leider bieten diese kein Airplay, so das ich mal eben mit dem iPhone z.B. Musik von Youtube wiedergeben könnte.

Nun gab es ein Update von Sonos welches Airplay unter zuhilfenahme eine Airport Express nachrüstet. Das würde zwar in diesem einen speziellen Szenario passen, da ich im Wohnzimmer einen Airport Express verwende (bietet sich an, da man mit diesem Gerät ein öffentliches und ein Internes Netzwerk erstellen kann auch mit mehreren Accesspoints, doch dazu mehr in einem anderen Artikel).

Doch leider setzt das am Sonos einen Klinkenstecker voraus, welche erst ab dem Sonos Play 5 enthalten ist.

Von meinem Kollegen Norbert habe ich den Tip erhalten, das es eine Art Bridge gibt (Software: Airsonos).

Also habe ich mir schnell auf meinem ESXI eine VM aufgesetzt mit Ubuntu Server (LTS 14.04) mit folgender Ausstattung:

  • 2 Cores
  • 512 MB Ram
  • 40 GB HDD (Thin Provisioning)

Installiert habe ich Standardmäßig mit der Option SSHServer (Über den Terminal sind die Befehle einfacher einzugeben als in der ESXI Konsole abzutippen).

Installiert habe dann wie folgt:

$ sudo apt-get install libavahi-compat-libdnssd-dev libasound2-dev
$ sudo apt-get install npm git
$ sudo apt-get install nodejs
$ sudo apt-get install nodejs-legacy
$ git clone https://github.com/stephen/airsonos.git && cd airsonos
$ sudo npm install -g
$ adduser --no-create-home --disabled-login airsonos

 

$ sudo apt-get install daemontools daemontools-run
$ sudo mkdir /etc/service/airsonos
$ sudo nano /etc/service/airsonos/run

Im Nano dann folgendes Script erstellt und gespeichert (Strg + o, Strg + x):

#!/bin/sh
exec setuidgid airsonos sh -c '
  exec airsonos
'

Danach noch anpassen:

$ sudo chmod a+x /etc/service/airsonos/run
$ sudo initctl start svscan

Danach noch feste IP zuordnen und neustarten (sudo init 6).

Sollte man keinen ESXI haben, könnte man die Funktion auch von einem RaspberryPI (Raspi) ausführen lassen: http://hypedefender.de/2014/08/airsonos-airplay-fuer-dein-sonos-system-mittels-raspberry-pi/

Weitere Informationen:

http://stadt-bremerhaven.de/airsonos-airplay-unterstuetzung-sonos/

http://blog.widdi.eu/airsonos-ubuntu-14.04.html

 

Erfahrungen:

Airsonos ist empfindlich was Codecs angeht. Am stabilsten läuft es, wenn es nur als „Tonquelle“ angesprochen wird. Hat man einen Codec genutzt der nicht unterstützt ist oder Airsonos als Videoziel angesprochen (z.B. Mirroring), dann wird es nicht mehr angezeigt in der Auswahl.

Am einfachsten ist es, wenn ihr dann etwas einstellt was nur Audio wiedergibt (z.B. Musikapp) – dann könnt ihr wieder das Airplayziel auswählen und ansprechen.

Das Ziel kann auch Umlaute enthalten, ich hatte damit keine Probleme.

Update:

Mittlerweile gibt es ein weiteres Produkt auf der selben Basis – AirSonos. Damit kann man einfach ohne weitere Tools oder virtuelle Machine von einem Mac aus direkt die Sonos Player ansprechen. Die Lösung ist jedoch auch noch im Beta Stadium.

Hier die Downloadadresse: http://sonoair.mihosoft.eu/index.html#


RasPi überwachen

Um einen Raspberry PI zu überwachen gibt es eine schicke kleine Webgut, die Info über den aktuellen Status gibt.

Hier ein Auszug aus http://www.ollis-place.de/category/anleitungen/

 

Wenn man den Raspberry Pi als Server laufen hat, ist es gut zu wissen wie es dem Kleinen geht bzw. was dieser gerade macht. dafür gibt es einige Tools, manche brauchbar, manche eher weniger. Das einfachste Programm für diesen Zweck ist Raspcontrol. Das kleine Tool gibt Informationen über den Status des Raspberry Pi wie RAM und Speicherauslastung, aktuelle Temperatur und Status über einige Services über eine Webinterface aus. Ein Webserver mit PHP wird benötigt, den wir ja bereits haben.

Als erstes benötigt man den Git Clienten um Software direkt vom GitHub runterzuladen.

sudo apt-get install git

Danach holen wir uns Raspberry Control von GitHub ins Serververzeichnis

cd /var/www

sudo git clone https://github.com/Bioshox/Raspcontrol.git

Raspberry Control benötigt einen Benutzer mit dazugehörigen Passwort. Beides muss man erstellen und in einer Konfigurationsdatei abspeichern.

Verzeichnis erstellen:

sudo mkdir /etc/raspcontrol

öffnen die Konfigurationsdatei

sudo nano /etc/database.aptmnt

und fügen einen Benutzer sowie ein Password hinzu

{
"user":       "IhrNutzername",
"password":   "IhrPasswort"
}

Nun kann man Raspberry Control per Browser aufrufen.

 

 

Originalartikel: http://www.ollis-place.de/category/anleitungen/