VPN vom RASPI zu einer Fritzbox aufbauen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,
    ich betreibe eine Fritzbox in meinem Ferienhaus via UMTS Stick um dort WLAN-fähige Kameras zu administieren. Leider erhalte ich via UMTS keine Public IP" und kann daher von außen nicht auf die Box zugreifen.

    Um aber genau das tun zu können habe ich gelesen, dass man entweder die FritzBox "Freetzed" und dazu konfiguriert das VPN selber aufzubauen oder einen Rechner im dortigen Heimnetz integriert, der das VPN selbständig aufbaut und damit den Zugriff in das lokale Netz erlaubt. Das Freezen funktioniert leider nur mit recht alten Fritzboxen und die können nicht mit UMTS Sticks umgehen.
    Daher war meine Idee einen RASPI im lokalen Netzwerk zu genau diesem Zweck zu integrieren.

    Hier nun meine Fragen:
    1. geht das mit dem RASPI, macht das so Sinn?
    2. Wenn, was muss ich installieren und konfigurieren? Gibt es eine Anleitung für diesen interessanten Anwendungsfall?

    Grüße,
    Hape

  • Hallo Radioshack,

    Dein Setup sieht tatsächlich ähnlich aus.
    Hast Du ein paar mehr Details?
    z.B eine Anleitung zur Einrichtung von PPTP?
    Gab es etwas zu beachten?

    Danke im voraus,
    Hape

  • Raspberry Pi als OpenVPN Client mit 3G Anbindung


    Der Raspberry Pi ist ein Kreditkartengroßer Einplatinencomputer, der von der Raspberry Pi Foundation entwickelt wurde.


      

    Inhaltsverzeichnis:
    1. Ersteinrichtung
    1.1 SD-Karte Vorbereiten
    1.2 Raspberry Pi Vorbereiten
    2. Einrichtung der 3G Verbindung
    3. Einrichtung der OpenVPN Verbindung
    4. Einstellen einer statischen IP Adresse

    Benötigte Hardware:

    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]Raspberry Pi
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]ggf. passendes Gehäuse
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]MicroUSB Kabel zur Stromversorgung
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]SD Karte min. 2GB
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]UMTS Stick ( z.B Huawei E169 mit CRC-9 Buchse für externer Antenne)
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]Je nach Bedarf eine Antenne mit CRC-9 Anschluss bzw. zzgl. CRC-9 Adapter


    Benötigte Hardware zum Einrichten des Raspberry Pi´s:

    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]SD Kartenleser
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]PC
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]Internetanbindung
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]LAN-Kabel

    Benötigte PC-Software zum Einrichten des Raspberry Pi´s:

    (Alle Programme befinden sich auf dem Netzlaufwerk unter:
    \Softwareentwicklung\_Austausch_\_Raspberry Pi_\OpenVPN with 3G\Software)

    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]win32DiskImager (zum erstellen der SD-Karte)
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]PuTTY (SSH Terminal zur Befehlsübertragung)
    [font="Wingdings 2"]ñ[font="Times New Roman"] [/font][/font]WinSCP (Zur Dateiübertragung)

    1. Ersteinrichtung

    Da der Raspberry keine eigene Festplatte hat, befindet sich das Betriebssystem (Linux) und alle nötigen Programme auf der SD Karte, dies hat den Vorteil, das bei Programmupdates nicht das ganze Gerät ausgetauscht werden muss, sondern nur die SD-Karte.

    Als Betriebssystem verwenden wir die offizielle Raspberry Distribution „Raspian Wheezy“ diese befindet sich auch auf dem Netzlaufwerk unter: \Softwareentwicklung\_Austausch_\_Raspberry Pi_\OpenVPN with 3G\Image.


    1.1 SD-Karte vorbereiten:

    Für Windows benötigen wir jetzt ein Tool um das Image auf die SD-Karte zu schreiben, dazu verwenden wir W32 Disk Imager.
    Die SD-Karte in einen Card-Reader stecken und das Programm starten.



    Das Image auswählen (1.), unter Device (2.) das Laufwerk mit der SD-Karte angeben und auf “Write” (3.) klicken.
    Ist der Vorgang beendet wird dies mit „write successful“ bestätigt.

    Die SD Karte kann nun aus dem Kartenleser entfernt werden und in den Raspberry gesteckt werden.




























    1.2 Raspberry Pi vorbereiten

    Den UMTS Stick in den Pi stecken.
    Den Raspberry Pi per LAN an das Netzwerk anschließen (PC und Raspberry müssen im selben Netzwerk sein und dieses muss über eine Internetverbindung verfügen)

    Nun mit dem MicroUSB Kabel den Pi mit Strom versorgen (An PC oder Steckdosen-USB-Netzteil)
    Der Pi fährt automatisch hoch (Led´s auf der Platine sollten blinken)

    Im Router kann man nun nachschauen welche IP Adresse er vom DHCP Server im Router bekommen hat. Alternativ kann man über die kostenlose iPhone App „Fing“ ebenfalls die IP Adresse finden, vorausgesetzt das iPhone ist per
    WLAN im selben Netzwerk.







    Nun öffnen wir PuTTY auf dem PC und tragen im Feld „Host Name“ die IP Adresse des Pi´s ein und drücken unten auf Open.
    Der Pi begrüßt und nun mit der Anmeldung „Login“. Nun geben wir den Benutzernamen „pi“ ein und bestätigen mit Enter. Danach wird nach dem Passwort „raspberry“ gefragt. Wieder mit Enter bestätigen. Nun können wir dem Pi Befehle übermitteln.

    Um Vollzugriff zu erhalten müssen wir ein Administrator einrichten, den sogenannten Root.
    (jeweils die grau hinterlegten Befehle eintippen und mit Enter bestätigen)

    sudo passwd root

    nun werden wir aufgefordert ein Passwort zu vergeben (z.B orange) und dies danach nochmal zu bestätigen. Ist dies erledigt, starten wir PuTTY neu und melden uns nun mit dem Loginname „root“ an und dem eben vergebenen Passwort.

    Nun ist die Ersteinrichtung abgeschlossen. PuTTY werden wir nun öfters brauchen, daher offen lassen.





    2. Einrichtung der 3G Verbindung

    Damit der Pi auch ohne DSL Anschluss ins Internet kommt, muss er sich über das Mobilfunknetz ins Netzwerk einwählen können.

    Wir geben in PuTTY ein (oder kopieren und mit rechter Maustaste in PuTTY einfügen):

    [font="monospace"]sudo apt-get install ppp[/font]

    [font="monospace"]wget "http://www.sakis3g.org/versions/latest/armv4t/sakis3g.gz"[/font]

    [font="monospace"]gunzip sakis3g.gz[/font]

    [font="monospace"]chmod +x sakis3g[/font]

    [font="monospace"]sudo ./sakis3g --interactive[/font]

    Damit haben wir die 3G Software installiert und es öffnet sich das Konfigurationsfenster (Beispielfotos)

      
    Wir wählen mit den Pfeiltasten den ersten Punkt aus und bestätigen mit Enter
      

    Das Programm dürfte den Provider schon von selbst gefunden haben und müsste unter Punkt 1. stehen. Falls nicht, muss die sogenannte APN unter Punkt5 manuell hinzugefügt werden. Wir gehen vom ersten Fall aus und bestätigen nochmals mit Enter. Nun sollte die 3G Verbindung aufgebaut werden und uns wird dies angezeigt:

      

    Nun müssen wir dem Raspberry erklären das er die Verbindung selbstständig beim Hochfahren aufbauen soll. Hierbei müssen wir etwas tricksen:

    Wir öffnen WinSCP und verbinden uns mit dem Pi. (IP Adresse und Root Anmeldedaten erforderlich)
    Danach Navigieren wir zum Ordner „etc“ und suchen die Datei „rc.local“ und bearbeiten die durch auswählen mit rechten Maustaste ->Bearbeiten

    Hier wird in die erste Zeile folgendes Kommando eingefügt und der Rest nach unten verschoben, wobei hierbei evtl. die APN angepasst werden muss.

    [font="Courier New"]sudo /usr/local/bin/sakis3g connect APN="web.vodafone.de"[/font]

    Nun speichern wir die Datei wieder ab und geben in PuTTY den Befehl „reboot“ ein. Nachdem der Pi wieder hochgefahren ist überprüfen wir ob die automatische Verbindung geklappt hat:


    Wir loggen uns wieder mit PuTTY ein:

    sudo /usr/local/bin/sakis3g connect info

    Als Antwort müssten wir sowas erhalten:

    E169 connected to Telco (26202).
    Connection Information


    ...usw


    [font="Arial, sans-serif"]Hiermit ist die 3G Konfiguration abgeschlossen.[/font]





    [font="Arial, sans-serif"]3. Einrichtung der OpenVPN Verbindung.[/font]


    [font="Arial, sans-serif"]Als erstes müssen wir die OpenVPN Software installieren:[/font]

    [font="Monaco"]sudo apt-get update[/font]

    [font="Monaco"]sudo apt-get install openvpn openssl[/font]

    [font="Arial, sans-serif"]Nun gehen wir wieder auf das dinotec Netzlaufwerk und gehen in den Ordner „Openvpn“ und erstellen eine Kopie des Ordners „Muster“. Die Ordnerkopie kann dann durch einen aussagekräftigen Namen umbenannt werden.[/font]
    [font="Arial, sans-serif"]
    Der Ordner enthält die fertigen Konfigurationsskripts sowie die Zertifikate die aus 3 Dateien bestehen.Diese werden benötigt um sich auf dem dinotec OpenVPN Server anzumelden. Hierbei müssen natürlich die Zertifikate durch die passenden ersetzt werden. Benjamin Wagner erstellt hierbei die jeweiligen Zertifikate.[/font]





    [font="Arial, sans-serif"]Nun müssen wir die Konfigurationsdateien noch anpassen.[/font]

    [font="Arial, sans-serif"]Wir öffnen mit einem Texteditor die Datei „dinotec.conf“ und müssen die Namen der Zertifikate auf die neuen ändern:[/font]



    [font="Arial, sans-serif"]Datei Speichern und die Datei „dinotec.up“ ebenfalls mit einem Texteditor öffnen.[/font]

    [font="Arial, sans-serif"]Hier müssen wir die IP Routen ändern damit wir später auch von Außerhalb auf das Gerät zugreifen können:[/font]



    [font="Arial, sans-serif"]Zeile 11 beschreibt den Vorgang schon recht gut:[/font]
    [font="Arial, sans-serif"] [/font]
    [font="Arial, sans-serif"]die IP Adresse die hier 172.17.4.0 lautet muss nach den Vorgaben von Benjamin Wagner umgeändert werden. Die zweite IP Range ist die Adresse des Kunden. Baut der Pi die Internetverbindung nicht über das Kundennetzwerk, sondern über 3G auf, so muss die zweite IP der, der LAN Schnittstelle des Raspberrys entsprechen. Wie wir dem Pi eine Statische IP Adresse vergeben, erkläre ich in Punkt 4.[/font]

    [font="Arial, sans-serif"]Nachdem die 3 Zertifikatsdateien ausgetauscht, die Namen in der dinotec.conf Datei geändert und die IP Adressen geändert wurden, verbinden wir uns wieder mit WinSCP und kopieren ALLE Dateien aus dem duplizierten Ordner nach „/etc/openvpn/“[/font]

    [font="Arial, sans-serif"]Nun müssen wir auch dem OpenVPN Programm sagen, das es automatisch nach dem Hochfahren starten soll:[/font]

    [font="Arial, sans-serif"]wir navigieren in WinSCP nach „/etc/default/“ und bearbeiten die Datei OpenVPN[/font]




    [font="Arial, sans-serif"]Hier muss nur die Raute vor „Autostart=“all“ entfernt werden. Datei Speichern und fertig.[/font]

    [font="Arial, sans-serif"]Als letztes müssen wir noch die Scripts ausführbar machen:[/font]

    [font="Arial, sans-serif"]In PuTTY geben wir ein:[/font]

    [font="Arial, sans-serif"]sudo chmod 777 /etc/openvpn/dinotec.up [/font]



    [font="Arial, sans-serif"]4. Einstellen einer statischen IP Adresse:[/font]

    [font="Arial, sans-serif"]Wir bearbeiten die Datei „interfaces“ unter „/etc/network/“ mit WinSCP[/font]

    [font="Arial, sans-serif"]Der Inhalt der Datei wird gelöscht und durch folgende Zeilen ersetzt:[/font]

    [font="Courier New"]auto lo[/font]
    [font="Courier New"]iface lo inet loopback[/font]
    [font="Courier New"]allow-hotplug wlan0[/font]
    [font="Courier New"]iface wlan0 inet manual[/font]
    [font="Courier New"]wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf[/font]
    [font="Courier New"]auto eth0[/font]
    [font="Courier New"]iface eth0 inet static[/font]
    [font="Courier New"] address 192.168.0.1[/font]
    [font="Courier New"] netmask 255.255.255.0[/font]
    [font="Courier New"] network 192.168.0.0[/font]
    [font="Courier New"] broadcast 192.168.0.255[/font]
    [font="Courier New"] gateway 192.168.0.1[/font]
    [font="Courier New"] dns-nameservers 192.168.0.1 [/font]
    [font="Courier New"] dns-search home.lan[/font]

    [font="Arial, sans-serif"]ggf. müssen hierbei die IP Adressen auf das jeweilige Netz angepasst werden. In diesem Beispiel ist die IP Adresse so angepasst, das er mit dem dinotec Net+ direkt kommunizieren kann. Datei Speichern nicht vergessen.[/font]

    [font="Arial, sans-serif"]Das fertige Szenario ist nun denkbar einfach: 3G → Raspberry mit OpenVPN → dinotec Net+[/font]

    [font="Arial, sans-serif"]Zum Schluss den Befehl „reboot“ in PuTTY eingeben und der Pi ist fertig.[/font]
    [font="Arial, sans-serif"]ACHTUNG! Der Raspberry ist jetzt unter der festen IP im Netzwerk erreichbar (In unserem Beispiel unter 192.168.0.1)[/font]

  • Die aktuellen Fritzen haben eine VPN Integration. Den PI sprichst Du intern über die von der Fritzen vergebene IP und von extern über einen DynDNS Server an. Portforwarding nicht vergessen. Das sollte eigentlich auch über UMTS gehen. Danach baust Du den VPN Tunnel über die FritzBox auf, indem Du nach Anleitung von AVM das interne VPN Tool nutzt.

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye


  • ...
    Daher war meine Idee einen RASPI im lokalen Netzwerk zu genau diesem Zweck zu integrieren.

    Hier nun meine Fragen:
    1. geht das mit dem RASPI, macht das so Sinn?


    Moin,

    ja, es geht!

    Weitere Hardware ausser dem RPi, einem UMTS Stick mit SIM und gegebenenfalls USB-HUB/WiFi-Stick, um die Cam´s/Sensoren einzubinden (im Ferienhaus) und einer (neueren) Fritzbox als DSL Router (am heimischen PC), wird nicht benötigt.
    Es muss nicht einmal ein VPN Server auf einem Rechner installiert werden.

    Der UMTS Stick baut via ppp, SSH, ike eine VPN Verbindung zur heimischen Fritzbox auf und kann per "Rückkanal" vollständig administriert werden. Ebenso von allen per VPN eingebundenen Geräten wie Handy, Notebook u.s.w. wenn ich unterwegs bin.

    Diese kann dauerhaft sein oder, wie bei mir, per cronjob, oder/und email, oder/und SMS Befehl aufgebaut werden.
    Die erste Hürde ist dem UMTS Stick die Boot/Treiber CD auszutreiben:
    Ich bevorzuge den direkten Weg, mittels AT Befehl werden bei meinem E1762 Treiber-CD und Speicherkartenslot ausgeschaltet (am Windoofs Rechner mittels MVconn)
    oder usb-modeswitch installieren
    damit linux überhaupt auf den Modemteil zugreifen kann.

    Der Installations.- und Konfigurationsaufwand ist bei einem "Neueinstig" nicht unerheblich aber ist bei mir schon fast zu einer Sucht geworden, prima Bike-Ersatz für die Winterzeit :helpnew:.

    Die nötigen Schritte:

    SSH per raspi-config einschalten, ppp installieren und konfigurieren,
    ike - Shrew Soft VPN client (und ike-qtgui - Shrew Soft VPN client wenn RPi ohne GUI läuft)
    Einen VPN user und Internetzugriff über HTTPS / DynDNS aktiviert bei der Fritzbox und die Zugangsdaten in der ike Konfiguration übernehmen.
    Sofern benötigt email z. B. sSMTP und SMS Steuerung z. B. smsd installieren.

    Bei Interesse stelle ich die benötigten Installationsschritte und Konfigurationen hier ein.
    Und witzig, meine UMTS 150 MB Flatrate hat letzten Monat mehr als 4 GB vom RPi zum Fritzboxserver übertragen, scheint so als ob eplus nur den UMTS download drosselt.

    Bye

    Jürgen

  • Stand 09.02.2014: VPN Teil ist abgeschlossen und mit der seit gestern verfügbaren Fritz!Box FW 6.03 getestet.
    In Bearbeitung sSMTP oder der RPi hat mir war mitzuteilen /Text & Anhänge z. B. Bilder per email. 


    Moin,

    vorab, der letzte Kontakt mit Linux war vor ca. 20 Jahren, bis dann der RPi für die Überwachung und Steuerung des FH angeschafft wurde.

    Es sollte anfangs nur die Temp.- Luftfeuchtigkeitswerte ermitteln und ein paar Bilder und per email versenden aber daraus ist deulich mehr geworden....

    Die Anschaffung:

    RPi Rev. 2 = 28 Euro, 64 GB Hama C10 SD = 25 Euro, RPi Kamera = 20 Euro, weitere Sensoren/Relais, Spannungswandler, Kabel u.s.w. 30 Euro, Unitek Funk Überwachungssystem 30 Euro, überschaubar.

    Die Aufgabe:
    Ermittlung und Übermittlung von Daten und Bildern per UMTS an meinen mailaccount und herstellen eines Rückkanals mittels VPN zu Administrationszwecken. Ferner sollten sich auch die Dreamboxen im @FH und @Home austauschen können :angel:
    Hinzu kam noch die vollständige Heizungs,- Lufttrocknersteuerung.
    Auf der todo-Liste: Bildtelefonie von der Haussprechanlage zum Handy, Gartenbewässerung.

    Die Umsetzung:
    Ich habe das Raspbian Image heruntergeladen und per raspi-config die Zeitzohne, Tastatur, die Kamera + SSH aktiviert und der GPU (memory split) 128 MB zugeteilt (sonst kann die RPi Kamera nicht in Betrieb genommen werden).
    OS und Firmware update & upgrade ausgeführt.

    Der UMTS-Stick:
    Bitte den UMTS Stick vorab am PC einrichten und gegebenfalls die PIN-Abfrage deaktivieren und eine SMS empfangen.
    Je nach Stick wird diese im SIM Speicher oder internen UMTS Stick Speicher abgelegt (wichtig für des spätere SMS handling).
    Bei mir ein Huawai E1762 mit UMTS Antennenanschluss, da der UMTS Empfang in Wittgenstein unterirdisch ist (Telekon, O2 = 0, eplus = erträglich)
    Die Krux bei den UMTS Sticks ist die vorgelagerte Treiber/Fake-CD, die die unmittelbare Modemnutzung für Linux und auch bei Routern verhindert.

    Hierfür bieten sich 2 Wege:
    Der "einfache" Wege dem UMTS Stick die Fake-CD (und SD-Laufwerk) auszutreiben ist z. B. unter Windows mit MVconn (Config) unter dem Reiter Gerät die entsprechenden AT Befehl an den UMTS Stick senden:
    beim E1762: AT^U2DIAG=0 (Fake-CD und SD Schacht deaktiviert, die Rücksetzung: AT^U2DIAG=276, dann sind Fake-CD und SD Schacht wieder aktiv). Der so bearbeitete UMTS Stick wird dann auch in sehr vielen Routern, die UMTS Unterstützung anbieten, nutzbar.

    Oder der, wie ich finde, umständlichere Weg: usb-modeswitch installieren und konfigurieren, darauf gehe ich hier nicht ein.

    Da der UMTS Stick dann doch deutliche Wärme entwickelt und viel Strom frisst steckt dieser bei mir in einem aktiven USB-Hub, kann aber auch in einem RPi USB Slot eingesteckt werden. Im USB Hub kann ich in nach Belieben ein/ausschalten, wohingegen er, im RPi steckend, diesen zum Absturz bringt.

    Anmerkung: Anmeldung erfolgt als user: pi und mein Raspberry hört auf den "Namen" RPiVPN.

    UMTS Stick einstecken und den RPI anschalten.
    Eingabe:

    Code
    lsusb

    Ausgabe:
    Device 006: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

    Prima wird erkannt.

    Ein Blick in die var/log/messages:

    ...USB Serial support registered for GSM modem (1-port)
    ...GSM modem (1-port) converter detected
    ...GSM modem (1-port) converter now attached to ttyUSB0
    ...GSM modem (1-port) converter detected
    ...GSM modem (1-port) converter now attached to ttyUSB1
    ...GSM modem (1-port) converter detected
    ...GSM modem (1-port) converter now attached to ttyUSB2

    oder:
    Eingabe:

    Code
    ls -l /dev/ttyUSB*

    Ausgabe:
    pi@RPiVPN ~ $ ls -l /dev/ttyUSB*
    crw-rw---T 1 root dialout 188, 0 Jän 1 1970 /dev/ttyUSB0
    crw-rw---T 1 root dialout 188, 1 Jän 1 1970 /dev/ttyUSB1
    crw-rw---T 1 root dialout 188, 2 Jän 1 1970 /dev/ttyUSB2


    Der UMTS Stick hat bei mir 3 devices (kann aber, auch je nach Stick, nur 1 oder 2 devices ausgeben):
    1) ttyUSB0 ( ppp0 für´s Internet )
    2) ttyUSB1 ( nix/diag)
    3) ttyUSB2 ( SMS handling )

    Anmerkung: da der SMS Empfang bei aktivem Datenmodem über nur einem GSM modem device z. B. ttyUSB0 blockiert wird (zumindest bei meinem Stick/Konfiguration) habe ich diese Aufgaben verteilt.

    Der Internet Zugang:

    sofern nicht vorhanden das ppp Paket(e) wie folgt installieren:
    Eingabe:

    Code
    sudo apt-get install ppp


    Hinweis: beim aktuellen Raspiimage vom Jan. 2014 kann die Fehlermeldung: insserv: warning: script 'mathkernel' missing LSB tags and overrides ausgegeben werden -> IGNORIEREN.

    Es müssen noch folgende Konfigurationen angepasst werden:

    Eingabe:

    Code
    sudo nano /etc/network/interfaces


    Und folgenden Textblock eintragen:


    ...... das stellt nur den ppp0 Teil der Config dar!!!!!

    Und speichern


    Eingabe:

    Code
    sudo nano /etc/ppp/peers/provider


    Die schon vorhanden Zeilen auskommentieren oder lösen und folgendes einsetzen:



    Und speichern


    Eingabe:

    Code
    sudo nano /etc/ppp/peers/umts


    (wird gegebenenfalls neu erstellt)

    Einfüge:


    Und speichern


    Sofern die SIM-Pinabfrage aktiv ist:

    Eingabe:

    Code
    sudo nano /usr/local/bin/pin.sh


    (Datei neu erstellen)

    Einfügen und bitte die eigene PIN anstelle der .... eintragen:

    Bash
    #!/bin/sh
    echo "AT+CPIN=....\n\r" > /dev/ttyUSB0


    .... ist die PIN, bitte die eigenen PIN verwenden !!!!!!!!! ansonsten sperrt die SIM nach 3maliger Fehleingabe!!!!!!!!

    Und speichern und Rechte der Datei pin.sh nach Bedarf setzen.

    Nach einem Neustart (sudo reboot) erfolgt der Aufbau zum Internet via UMTS.
    Die Verbindung kann wie folgt gesteuert werden:

    Code
    sudo poff -a


    = Trennung (-a für alle, sollten mehrere pid´s laufen)
    Aber Obacht, poff und killall ppp* u.s.w. veranlassen z. B. vnstat die Schnittstellenüberwachung und Protokollierung einzustellen.
    Nur ein sudo pon oder sudo reboot jucken vnstat wenig, es bleibt untätig
    , solange bis diese wieder aktiviert wurde ( bei vnstat = sudo vnstat --enable -i ppp0 ).


    Code
    sudo pon


    = Verbindung herstellen

    Überprüfen können wird das mit einem Ping
    Eingabe:

    Code
    ping 8.8.8.8


    Eine Überwachung des traffics sollte unbedingt erfolgen, hierzu nutze ich iftop (onlinemonitoring) und vnstat (Langzeitstatistik).
    Es ist erschreckend was für ein traffic erzeugt wird nur durch die Zeitserverabfrage.

    Installation iftop:
    Eingabe:

    Code
    sudo apt-get install iftop


    Aufruf iftop für ppp0 (UMTS) // eth0 für (LAN) // oder wlan0 für (WLAN):
    Eingabe:

    Code
    sudo iftop -i ppp0



    Und oh Backe was ist denn da los? Die Zeitserver"Unterhaltungen" mit den tina´s, heiko´s, as2, u.s.w. belasten die UMTS Flat unnötig.

    Bitte die etc/ntp.conf nachbessern (to be cont.)

    Es gibt viele "tools" um die ppp-Schnittstelle zu steuern, wie wvdail u.s.w..
    Für meinen Bedart nicht zweckmässig, da ich 2 UMTS Stick´s betreibe und bei Ausfall einer Komponente (Stick oder SIM),Script gesteuert, auf den 2. schalten kann.

    Der Fritz!Box VPN beibringen:

    Hierfür wird erst einmal eine Dynamic DNS eingerichtet damit diese aus dem WWW erreichbar ist:
    Ich realisiere das sowohl über ein Fritz!-Konto als auch über einen DynDNS-Weiterleiter:
    MyFRITZ-Konto
    und
    DynDNS

    Fritz!Box -> Heimnetz -> Netzwerk -> Reiter IP4-Einstellungen:
    Dann den DHCP Bereich der IP4-Adressen so konfigurieren das nicht alle zur Verfügung stehenden DHCP fähigen IP´s vom DHCP Server verwaltet werden können.
    Bei mir können alle IP´s ab 196.168.1.201 fest zugeteilt werden.
    Die dem RPi zugedachte IP darf sich nicht im DHCP-Adresspool befinden!

    Dann die Einrichtung des VPN Clients bei der Fritz!Box per Windowstool:
    AVM - VPN Einrichtung mit Windowssoftware

    Fritz!Box-Fernzugang einrichten ausführen,

    Neu (oder bestehende erweitern)

    Fernzugang für einen Benutzer einrichten:

    Neue Fritzbox hinzufügen (oder sofern schon ein VPN Zugang besteht diesen auswählen)

    PC mit Fritz!Fernzugang auswählen:

    Bitte den Benutzer (hier pivpn) durch eigenen ersetzen:


    Bitte die eigene DynDNS Adresse eintragen:

    Hier bitte keinen Mist bauen, es muss das eigene IP-Netzwerk / Subnet angegeben werden.
    Bei mir hat der Router die 192.168.1.1 also 192.168.1.0 und 24-255.255.255.0 eingetragen.
    Dann die IP des RPi, diese muss ausserhalb des vom DHCP Server verwalteten Adressraum liegen.
    Bei mir 192.168.1.251
    Und klar, bei einer VPN Sitzung soll der Verkehr vollständig über den Tunnel <-> Router ablaufen.

    Zum Abschluss gleich die Konfigurationsdatei für die Fritz!Box anzeigen lassen, die wird noch für die ike Konfiguration benötigt.

    Der Fritz!Box Fernzugang hat 2 Konfigurationsdateien angelegt, eine für die Fritz!Box und eine für den VPN Client. Bei meinem PC befinden sich diese im folgenden Path:
    C:\Users\.PC-Nutzername.\AppData\Roaming\AVM\FRITZ!Fernzugang\.123456.myfritz.net.\....
    (Rot = meine persöhnlichen Einstellungen wie PC-Nutzername, DynDNS ...)

    Bitte die soeben erstellte VPN Konfiguration in die Fritz!Box laden:

    Fritz!Box Oberfläche -> Internet -> Freigaben -> Reiter VPN -> VPN-Verbindung hinzufügen
    -> Eine VPN-Konfiguration aus einer vorhandenen VPN-Einstellungsdatei importieren und Weiter
    -> Durchsuchen und die Datei: fritzbox_123456_myfritz_net.cfg (diese sollte bei dir natürlich einen anderen Namen haben) öffnen und mit OK importieren.

    Bitte das Programm Fritz!Box-Fernzugang einrichten nicht schliessen, da Konfigurationsdatei noch benötigt wird für die Einrichtung von ike.

    Hinweis:
    Je nach FW der Fritz!Box kann die VPN Einrichtung auch über das WebIF der Fritz!Box erstellt werden.


    Nun wenden wir uns wieder dem RPi zu und installieren den VPN Client:
    Eingabe:

    Code
    sudo apt-get install ike

    Sofern ike / die VPN Verbindung ohne GUI oder mit GUI im Hintergrund laufen soll bitte noch xvfb ( Fake X-Server) installieren:
    Eingabe:

    Code
    sudo apt-get install xvfb

    Und weil wir schon mal dabei sind noch ein paar edit´s:

    Code
    sudo nano /etc/sysctl.conf

    Und diese beiden Zeilen suchen:

    #net.ipv4.conf.default.rp_filter=1
    #net.ipv4.conf.all.rp_filter=1

    die Raute # entfernen und 1 durch 0 ersetzen

    Das muss dann so aussehen:
    ....
    # Uncomment the next two lines to enable Spoof protection (reverse-path filter)
    # Turn on Source Address Verification in all interfaces to
    # prevent some spoofing attacks
    net.ipv4.conf.default.rp_filter=0
    net.ipv4.conf.all.rp_filter=0
    .....

    Und speichern.

    Nun noch folgende Verzeichnisse unter /root/ anlegen.

    Code
    sudo mkdir -p /root/.ike/sites

    und diese Datei erstellen:

    Code
    sudo nano /root/.ike/sites/fritz.vpn

    und folgenden Code einfügen:

    Achtung die 3 mit # versehenen Zeilen müssen mit den Daten aus der Fritz!Box vpn Konfigurationdatei ersetzt werden und alle weiteren Zeichen dahinter gelöscht werden (alle Leerzeichen, # und Text)

    Hier der entsprechenden Daten aus der (meiner) Fritz!Box-Fernzugangsconfig
    C:\Users\....\AppData\Roaming\AVM\FRITZ!Fernzugang\123456_myfritz_net\pivpn\vpnuser_pivpn.cfg
    (Hinweis: rot weicht natürlich bei dir ab)
    Bitte die entsprechenden Zeilen suchen und nur die (unten rot) markierten Zeichen übernehmen.

    .....
    policies {
    ...
    remotehostname = "123456.myfritz.net";
    localid {
    user_fqdn = "pivpn";
    }
    .....
    key = "g_>h-e??1__m";
    ....


    Und dran gedacht alle Zeichen (auch Leerzeichen, # und Text) hinter den 4 übernommenen Daten in den 4 Zeilen zu löschen?

    Und speichern.


    Bitte den RPi und auch die Fritz!Box neu starten.

    Zur Kontrolle schicken wir mal ping´s an unseren Router:


    Code
    sudo ping dei.ne.ip.123

    Klar läuft das erst mal ins Leere....

    Die VPN Verbindung herstellen (auf einer weiteren Konsole sollte ping laufen):

    Code
    sudo xvfb-run -a ikec -r fritz.vpn -a

    oder über die GUi unter Internet -> Shrew...

    So nun sollte ping vom Router "geechot" werden, die Verbindung steht:

    und der RPi kann über die IP 192.168.1.251 "angesprochen" werden:

    Die VPN Sitzung beenden, mit Strg + C oder sudo killall -15 ike oder sudo poff ................. viele Wege führen nach Rom.
    Aber Obacht, poff und killall ppp* u.s.w. veranlassen z. B. vnstat die Schnittstellenüberwachung und Protokollierung einzustellen, solange bis diese wieder aktiviert wurde ( bei vnstat = sudo vnstat --enable -i ppp0 ).

    Die Windowsprogramme WinSCP (Dateimanager) und PuTTY (Console) eignen sich um vom heimischen PC / Notebook u.s.w. von der Ferne auf den RPi zuzugreifen, selbst die GUi kann bedient werden z. B. mit UltraVNC.

    Wie nun die VPN Verbindung bedarfsgerecht hochfahren??

    Dauerhaft, für mich ein nogo, aber durchaus machbar.

    Per cronjob zu einer festen Uhrzeit/Tag..

    Per email..

    Oder per SMS..


    Sofern dieses per Script erfolgt ist es ratsam ike und die Fake-GUi mit einem abschliessenden & aufzurufen, damit diese im Hintergrund laufen.
    Bei Verwendung mittels cronjob sogar ein MUSS!!!


    Bash
    #!/bin/bash
    ....
    ....
    sudo xvfb-run -a ikec -r fritz.vpn -a &
    ....
    ....



    Nach in Bearbeitung: sSMTP, der RPi hat mir etwas mitzuteilen

    Ich nutze sSMTP um die vom RPi gesammelten Daten als auch von den Bewegungsmeldern / CAM´s aufgezeichnete Bilder/Videos zeitnah an meinen GMX Mailaccount zu übermitteln.
    Sofern ein Zutritt zum Grundstück erfolgt oder Schwellenwerte ( hier Temp/Luftfeuchtigkeit ) über/unterschritten werden.

    Und bitte dem Mailserver, hier GMX, die Spamfilter so konfigurieren das die vom RPi gesendeten Mail nicht aussortiert und auch gleich ans backend (z. B. Handy) "gepusht" werden.

    sSMTP ist kein vollwertiger MTA / Mailserver wie Postfix, Sendmail oder Exim und kann nur quatschen :cool: sprich Mails senden, dafür sehr schlank und einfach einzurichten und ja, auch Anhänge z. B. Bilder/Videos u.s.w. können mit sSMTP versendet werden. TLS ist ebenfalls kein Problem.

    Die Installation von sSMTP , zip und mpack.
    (Zip zum Packen und mpack um Anhänge/Dateien mit sSMTP zu versenden)
    Achtung exim wird dabei entfernt, sofern vorhanden:
    Die folgenden Pakete werden ENTFERNT:
    exim4 exim4-base exim4-config exim4-daemon-light


    Code
    sudo apt-get install ssmtp zip mpack

    Es müssen nur 2 edit´s ausgeführt werden:


    Code
    sudo nano /etc/ssmtp/ssmtp.conf

    neuer Inhalt: Deine Mailserver-Zugangsdaten, hier GMX (wahlweise Googelmail, Web.de, ....)
    Bitte deine eigenen Zugangsdaten einsetzten:

    Speichern und noch:


    Code
    sudo nano /etc/ssmtp/revaliases

    neuer Inhalt oder anhängen:


    Code
    root:DEINACCOUNT@gmx.de:mail.gmx.net:465
    ## weitere RPi user, sofern z. B. system-mails übermittelt werden sollen
    pi:DEINACCOUNT@gmx.de:mail.gmx.net:465

    Speichern.


    Gleich einmal eine Testmail mit der Anforderung die aktuelle Temp. der RPi CPU als Textbody zu senden mit dem mail-Betreff: Hier_aktuelle_die_RPI_CPU

    Code
    sudo /opt/vc/bin/vcgencmd measure_temp  | mail -s Hier_aktuelle_die_RPI_CPU DEINACCOUNT@gmx.de

    Zu beachten ist das der mail-Betreff aus einer Zeichenkette ohne Leerzeichen besteht.

    Hier ein Beispiel um mir die letzten 50 Zeilen mit 2014 und Temp aus meiner Datenbank als Textbody zukommen zu lassen mit dem Betreff: Daten

    grep -E '2014|Temp' /var/log/RAM/Daten/"$(date +%Y%m)".dat | tail -n 50 | mail -s Daten meingmxaccount@gmx.de

    Das sieht dann bei mir so aus:


    Sobald ein Bewegungsmelder anschlägt zeichnet die zugehörige 2.4 GHz CAM in 10 Sekunden Sequenzen auf und der RPi sendet die erste Videosequenz als Mail mit dem Betreff: ALARM_BEWEGUNG_AUSSEN und diese erste Videosequenz wird vor dem Versand mit zip gepackt, daher auch die Endung.zip

    mpack -s ALARM_BEWEGUNG_AUSSEN /var/log/RAM/senden/"$(date +%Y%m%d%H%M)".zip meingmxaccount@gmx.de

    amendment 10.12.2014:
    Sollte der Transport fehlschlagen mit Fehler: mail nicht gefunden bitte heirloom-mailx
    (vormals mailx) nachinstallieren:

    Code
    sudo apt-get install heirloom-mailx

    Diese Mails/Videos werden unverzüglich zum Handy "gepusht" und ich kann dann entscheiden ob weitere Schritte notwendig sind.
    (Per SMS/smsd und Aufruf des entsprechenden Scripts)
    z. B. Dreamboxen & Soundsystem hochfahren und entweder Hundegebell, bei z. B. Wildschweinen oder Alarmsound bei neugierigen Zweibeinern abzuspielen.
    Mein ex-Mieter wollte sich doch glatt am aussen am Haus lagernden Kaminholz vergreifen, au Backe, der hat sich so dermassen erschreckt dass ich daran dachte den Notarzt zu rufen.

    Zurück zu sSMTP, fehlgeschlagene Mails werden unter in der Datei dead.letter abgelegt und das handling unter /var/log/mail.log, -.info, -.warn, -.err und syslog geschrieben.

    Einmal editiert, zuletzt von rpivpn (10. Dezember 2014 um 09:18)

  • Hallo zusammen,

    langsam weiss ich keinen Rat mehr. Ich hab mich an das Howto gehalten wie in #9 beschrieben, nur mit der Ausnahme das ich noch kein UMTS-Stick einsetze, sondern über die LAN-Buchse des RPi. Von da geht es in eine Fritzbox und dann eine weitere Fritzbox (Gastzugang) extern zu meiner Homefritzbox, wo auch der VPN eingerichtet ist. Ich weiss etwas durchs Auge durch ins Knie aber das ist jetzt mal meine Testumgebung ohne Geld ins Netz zu stecken.:fies:

    Ich habe jetzt das Problem das ich die Konfig oben genommen habe und sie entsprechend angepasst an meine dyndns,Nutzername und Passwort. VPN ist natürlich in der Box anch einleitung eingerichtet. Box ist übrigens eine 6360 mit OS 6.04.

    Leider kommt beim starten diese Fehlermeldung:

    Code
    sudo xvfb-run -a ikec -r fritz.vpn -a
    invalid delimiter '
    ' between name and value ( line 34 )
    parse error in line 34

    Meine Config ist absolut identisch mit der oben. Hab sie erst kopiert gehabt und eingefügt. Ich dachte das ich da vielleicht ein Zeichen mitkopiert habe, was da nicht hingehört. Irgendwann habe ich sogar die config händisch abgetippt aber leider ist der Fehler immer noch da...:@

    ist da oben ein Fehler drin oder hat das jemand zum laufen gebracht...sollte die configdatei 755-Rechte haben? Ich arbeite übrigens unter pi und nicht unter root

    Wäre euch echt dankbar wenn ich das vielleicht mit euerer Hilfe zum laufen bekommen würde:helpnew:

    :danke_ATDE:

    Gruß
    YMCA72

  • Moin,

    Asche auf mein Haupt, ich habe da etwas geschlampt.

    Bitte die letzte Zeile der fritz.vpn löschen und durch folgende Zeilen ersetzten:

    Zitat


    s:phase1-hash:sha1
    s:phase2-transform:aes
    s:phase2-hmac:sha1
    s:ipcomp-transform:deflate
    s:policy-list-include:192.168.1.0 / 255.255.255.0

    In die letzte Zeile bitte dein Netzwerk eintragen.

    Sorry

    Jürgen

  • Hallo,

    Naja kann mal passieren[SMILING FACE WITH OPEN MOUTH AND SMILING EYES].

    Ich hab die Änderungen eingefügt, die Fehlermeldung ist auch nicht mehr gekommen aber wenn ich aufrufe wie du schrieben hast tut sich nichts mehr und ein Tunnel wird leider nicht aufgebaut. Ich kann dann über Ctrl_C an den RPi.

    Weil beim Aufruf bekomme ich sogar keine Rückmeldung wie aufgebaut oder Fehler oder ähnliches...

    Hinweise oder Tipps? War jetzt den ganzen Nachmittag dran gehangen und komme nicht mehr weiter

    Danke und Gruß
    YMCA72

    Einmal editiert, zuletzt von ymca72 (20. September 2014 um 22:22)


  • ... noch kein UMTS-Stick einsetze, sondern über die LAN-Buchse des RPi.
    .... meine Testumgebung ohne Geld ins Netz zu stecken.


    Moin,

    ich hab´s eben erst gelesen, übers LAN geht es deutlich einfacher und wird auch nicht von mir beschrieben!

    SIM`s zum Testen kriegst Du für NULL hinterhergeschmissen:

    t-mobile 2x5GB LTE for free
    Netzclub freies Internet
    ....
    und noch viele Andere.

    Bye

    Jürgen

  • Hallo,

    ich habe ssmtp nach Deiner Anleitung installiert.


    Die Installation von sSMTP , zip und mpack.
    [...]

    Code
    sudo apt-get install ssmtp zip mpack


    Es müssen nur 2 edit´s ausgeführt werden:

    Jetzt hänge ich an dem schlichten Problem, dass mein Raspbian das mail- Komando nicht kennt.

    Code
    pi@raspberrypi ~ $ ls /media/usb |mail -s test weju@meineDomain.de
    
    
    -bash: mail: Kommando nicht gefunden.



    Was muss ich zusätzlich installieren?

    Mit

    Code
    pi@raspberrypi ~ $ ls /media/usb |ssmtp weju@meineDomain.de


    habe ich mir zweimal eine Email an meine Adresse senden können und diese auch erhalten. Abgesehen davon, dass beide Mails leer waren scheinen die conf-Dateien also korrekt zu sein.
    Blöderweise meldet mein Provider seit der dritten Mail einen "internen Fehler". Ich hoffe einfach mal, dass das ein Zufall ist, dann aktuell kann ich nicht einmal mehr über sein Webinterface Nachrichten versenden.

    Grüße
    Werner
    (blutiger Anfänger)

  • bitte diesen Beitrag löschen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (10. Dezember 2014 um 08:58)


  • Hallo,

    ich habe ssmtp nach Deiner Anleitung installiert.

    Da fehlt noch was :

    Zitat


    apt-get install mailutils

    Dann geht auch mail
    Alternativ, weil du MPACK installiert hast, ersetze einfach mail duch mpack.

    Code
    pi@raspberrypi ~ $ ls /media/usb |mpack -s test weju@meineDomain.de

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (10. Dezember 2014 um 10:23)


  • Da fehlt noch was : .......
    Dann geht auch mail
    ........
    Alternativ, weil du MPACK installiert hast, ersetze einfach mail duch mpack.

    Moin,

    fehlen, nicht unbedingt wenn man das Sytem schlank halten möchte.
    Ohne die utils ist die Funktion ebenfalls gegeben und ca. 30 mb weniger Ballast auf der SD.

    mpack....
    In der Syntax wirst Du Trauer haben, da kommt nix bei rum ausser einer Fehlermeldung.

    Soweit mir bekannt ist mpack "nur" für das handling von attachments zu gebrauchen.

    Bye

    Jürgen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!