NEWS
VPN Verbindung Fritzbox / einbinden entferntes Device / Debian 9.5
-
Hallo!
Ich habe mir eine VPN Fernbindung von meinem ioBroker Server auf Debian 9.5 zu einer entfernten FritzbBox eingerichtet, um das in dem Netz befindliche Device im ioBroker einzubinden. Ich habe das Routing so angepasst das nur das der Traffic zum entfernten Netz über die VPN Verbindung läuft. Das ist sicher alles noch verbesserungsfähig doch läüft es sehr stabil inkl. automatischen Reconnect.
Ich hatte mir im Internet die Fragmente zusammen gesucht und für meine Bedürfnisse / System angepasst. Das Ursprungs script habe ich hier: http://www.kuemmel.wtf/?p=363 gefunden. Da fehlte aber noch das Routing und eben "Debiansyntax" (Kein route / ifconfig etc.).
Vielleicht braucht das ja noch jemand, hier mal alle notwendige Schritte:
!ACHTUNG: Die VPN Daten liegen dann im Klartext im Script. Nicht das ich es nicht erwähnt habe..
Install VPNC:
apt-get install vpnc
Konfig erstellen
nano /etc/vpnc/<meinevpn>.conf</meinevpn>
Das muss da rein:
IPSec gateway <hostname>.myfritz.net IPSec ID <gruppenname>IPSec secret <shared secret="">IKE Authmode psk Xauth username <username>Xauth password <userpassword>local port 0 DPD idle timeout (our side) 0</userpassword></username></shared></gruppenname></hostname>
Verbindung aufbauen:
vpnc <meinevpn>.conf</meinevpn>
Verbindung abbauen:
vpnc-disconnect
Script zum automatischen Aufbau:
(Wird durch Crontab das erste mal 3 Min nach Boot gestartet, kann auch zusätzlich bei Boot in /etc/rc.local)
nano /etc/init.d/auto-<meinevpn>-vpn.sh</meinevpn>
#!/bin/bash # set -x auskommentieren für den Debug Modus. Die Ausgabe erscheint in der Kommandozeile. #set -x Version=1.1 Client= <name>LOGFILE=/home/$Client-vpn.log #Lokale IP LocalGateway=192.168.0.1 #Entfernter Router / Test IP RemoteHost=192.168.99.1 #Entferntes Netz RemoteNet=192.168.99.0/24 #Namen des lokalen Devices ens18 bei Debian unter VM / Proxmox DeviceLocal=ens18 #Namen des VPN Devices / Default tun0 DeviceVPN=tun0 wert=4 echo "" | tee -a $LOGFILE echo "$(date +%Y-%m-%d:%T) :VPN Version $Version Check $RemoteHost" |tee -a $LOGFILE count=$(ping -c $wert $RemoteHost | grep 'received' | awk '{print $4 }') if [ $count -eq 4 ] then wan=$(curl ipinfo.io/ip) pid=$(pidof vpnc) ip=$(ip a s $DeviceVPN | grep "inet " | cut -b 10-23) echo "$(date +%Y-%m-%d:%T) :VPN OK IP $ip WAN $wan PID $pid" | tee -a $LOGFILE else echo "$(date +%Y-%m-%d:%T) :VPN Reconnect" |tee -a $LOGFILE /usr/sbin/vpnc-disconnect # oft ist die Wlan Verbindungen unterbrochen. hier werden alle Netzwerkverbindungen neugesta$ ## echo "$(date +%Y-%m-%d:%T) :Netzwerkverbindungen neu starten" | tee -a $LOGFILE ## /etc/init.d/networking restart sleep 12 /usr/sbin/vpnc $Client.conf ip route del default ip route add default via $LocalGateway dev $DeviceLocal ip route add $RemoteNet dev $DeviceVPN wan=$(curl ipinfo.io/ip) pid=$(pidof vpnc) ip=$(ip a s $DeviceVPN | grep "inet " | cut -b 10-23) echo "$(date +%Y-%m-%d:%T) :VPN OK IP $ip WAN $wan PID $pid" | tee -a $LOGFILE fi</name>
Damit es auch ausfürhrbar ist:
chmod +x /etc/init.d/auto-<meinevpn>-vpn.sh</meinevpn>
Und rein in den Cron:
nano /etc/crontab
*/3 * * * * root sh /etc/init.d/auto-<meinevpn>-vpn.sh >/dev/null 2>&1</meinevpn>
Da kann man noch viel verbessern, ich bin noch lange kein Linux Spezi. Aber es funktioniert einwandfrei. Auch die Zwangstrennung der eigenen und Remote Anbindung wird problemlos wieder hergestellt.
Malc