RASPBERRY PI VPN CLIENT AND FRITZBOX IPSEC

Für das offsite Backup war es vorteilhaft den Raspi per VPN in mein Netzwerk zu bekommen. Dises macht portforwarding und konfigurationen an der offsite Location unnötig.

Der bei mir eingesetze Router ist eine Fritzbox 7490

DynDNS sollte auf der FritzBox aktiviert sein, so das sie unter einer Statischen Adresse erreichbar ist. Hierfür bietet sich der MyFritz service von AVM an.

Einrichtung von VPN bei der Fritzbox

Zuerst wird unter System-> FRITZ!Box- Benutzer ein neuer User angelegt.

Hier muss der Zugang aus dem Internet gewährt werden und VPN (natürlich freigeschaltet werden, alles andere wird abgewählt.

wir merken uns die angaben aus den Iphone einstellungen:

  • Beschreibung:
  • Server:arpdggefuegr23723n.myfritz.net
  • Account:vpn_user
  • Kennwort:Kennwort des FRITZ!Box-Benutzers „vpn_user“
  • Zertifikat verwenden ist deaktiviert
  • Gruppenname:vpn_user
  • Shared Secret:TANrpS1y34hHHJGIS4
 Jetz geht es auf den Raspi weiter….

Installation:

sudo apt-get install vpnc

Config erstellen und anpassen:

sudo nano /etc/vpnc/fritzbox.conf

IPSec gateway arpdggefuegr23723n.myfritz.net
IPSec ID vpn_user
IPSec secret TANrpS1y34hHHJGIS4
IKE Authmode psk
Xauth username vpn_user
Xauth password <passwort>
local port 0
DPD idle timeout (our side) 0

erster test des tunnels:

sudo vpnc fritzbox.conf

Beenden der VPn Verbindung:

sudo vpnc-disconnect

Ich habe das starten des Scripts in der /etc/rc.local eingetragen damit die VPN verbindung beim booten aufgebaut wird.

vpnc fritzbox.conf

—- Update —-

da die VPN Verbindung teilweise unkontrolliert abbricht hat Abdelkader Wahb ein Script gemacht, das die Verbindung überwacht und bei bedarf neustartet. Das möchte ich euch nicht vorenthalten:

#!/bin/bash

# hier wird die Logfile-Datei definiert

LOGFILE=/data/log_vpnc/fritzbox.log

# hier wird die IP-Adresse von Fritzbox definiert. wenn die VPN Verbindung steht, dann sollte ping funktionieren.

myHost=“192.168.178.1″

# Wert -> wie oft soll gepingt werden

wert=4

# Ausgabe Wert für „count“ soll bei erfolgreichen ping 4 sein, bei erfolglosen ping 0.

count=$(ping -c $wert $myHost | grep ‚received‘ | awk ‚{print $4}‘)

if [ $count == 4 ]

then

# die kommenden echos sind die Info-Ausgaben in Logfile

echo „$(date +%Y-%m-%d:%T) :Fritzbox mit der IP $myHost  ist erreichbar und VPN Verbindung steht“ | tee -a $LOGFILE

else

echo „“ | tee -a $LOGFILE

echo „$(date +%Y-%m-%d:%T) :Fritzbox mit der IP $myHost ist nicht erreichbar“ |tee -a $LOGFILE

echo „$(date +%Y-%m-%d:%T) :VPN-Verbindung trennen“ |tee -a $LOGFILE

#hier wird das VPNC-Demon gestoppt, damit es nicht meherer im Hintergrund laufen

vpnc-disconnect

# oft ist die Wlan Verbindungen gebrochen. hier werden alle Netzwerkverbindungen neugestartet.

echo „$(date +%Y-%m-%d:%T) :Netzwerkverbindungen neu starten“ | tee -a $LOGFILE

/etc/init.d/networking restart

# 10 Sekunden warten

sleep 10

# auslesen von der Wlan Ip-Adresse

ipwlan=$(ifconfig wlan0 | grep „inet Adresse“ | cut -b 24-38)

echo „$(date +%Y-%m-%d:%T) :Netzwerkverbindungen wurde neugestart. WLAN IP-Adresse: $ipwlan “ | tee -a $LOGFILE

echo „$(date +%Y-%m-%d:%T) :VPN Verbindung neu aufbauen, der Skript vpnc_fritzbox starten“ | tee -a $LOGFILE

# starten von VPNC-Demon. PID und VPN-IP Adresse auslesen

vpnc fritzbox.conf

pid=$(pidof vpnc)

ipvpn=$(ifconfig tun0 | grep „inet Adresse“ | cut -b 24-38)

echo „$(date +%Y-%m-%d:%T) :Die VPN-Verbindung wurde erfolgreich aufgebaut. die VPN IP-Adresse ist: $ipvpn. VPNC-Demon ist aktiv unter id: $(pidof vpnc)“ | tee -a $LOGFILE

echo „“ | tee -a $LOGFILE

fi

 

Eintrag im /etc/crontab, damit es bei booten automatisch jede 3 Minuten durchgeführt werden:

*/3  *  * * *   root /etc/init.d/autovpncscript

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *