Autor Thema: VPN "on demand" via Email mit GoogleAuth und openVPN  (Gelesen 351 mal)

Offline KernSani

  • Hero Member
  • *****
  • Beiträge: 1439
VPN "on demand" via Email mit GoogleAuth und openVPN
« am: 15 März 2017, 21:30:00 »
Hi zusammen,

da ein/zwei Nachfragen kamen... Ich starte mein VPN nur, wenn ich es wirklich benötige... Wenn die Grundvoraussetzungen da sind, ist das ziemlich simpel.

Mein Szenario sieht so aus:
1.) VPN Server (openVPN) läuft auf dem FHEM-Raspi (ausreichend Anleitungen via Google)
2.) Google Authenticator Modul einrichten
3.) Mailcheck Modul einrichten.

Zum steuern des VPN's aus FHEM nutze ich zwei Dummies:

1.) Dummy zur Steuerung:
defmod SYS_vpn dummy
attr SYS_vpn alias VPN
attr SYS_vpn devStateIcon {if (Value("SYS_vpn_status") =~ /is running/) {".*:10px-kreis-gruen"} elsif (Value("SYS_vpn_status") =~ /not running/) {".*:10px-kreis-rot"} else {".*:10px-kreis-gelb"}}
attr SYS_vpn group VPN
attr SYS_vpn room System
attr SYS_vpn setList start:noArg stop:noArg status:noArg restart:noArg
attr SYS_vpn webCmd start:stop:restart:status

2. Dummy zur Statusanzeige:
defmod SYS_vpn_status dummy
attr SYS_vpn_status alias VPN Status
attr SYS_vpn_status group VPN
attr SYS_vpn_status room System

Ein DOIF dient zum schalten:
defmod ev_SYS_vpn DOIF ([SYS_vpn]) (\
{fhem("set SYS_vpn_status ".`sudo /etc/init.d/openvpn $EVENT`)},\
set SYS_vpn working\
)\
(\
{fhem("set SYS_vpn_status ".`sudo /etc/init.d/openvpn status`)},\
set SYS_vpn idle\
)\
attr ev_SYS_vpn do always
attr ev_SYS_vpn room System
attr ev_SYS_vpn wait 0,2

und zuguterletzt, das DOIF, das die eingehenden Mails bearbeitet:

defmod ev_inconingMail DOIF \
([SYS_MailCheck:From] =~ /<mySenderEmail>/i and [SYS_MailCheck:Subject] =~ /VPN start/ and gAuth("GoogleAuth",substr([SYS_MailCheck:Subject],11)) )\
  (set SYS_vpn start)\

attr ev_inconingMail do always
attr ev_inconingMail room System

Nun kann ich von <mySenderEmail> eine Email an FHEM senden mit dem subject "VPN start <token>" um das VPN zu starten. Da das token nur eine relative kurze Lebenszeit hat, muss das natürlich einigermaßen flott gehen. Zu Beginn habe ich mir noch eine Pushmsg geschickt, wenn das VPN gestartet war, ist aber eigentlich nicht notwendig. Stoppen kann man das VPN dann - wenn man fertig ist - direkt aus FHEM heraus über den Dummy.

Weitere Anregungen nehme ich natürlich gerne entgegen...

Grüße,

Oli 
RasPi: RFXTRX, HM, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...
Gefällt mir Gefällt mir x 2 Liste anzeigen

 

decade-submarginal