Hi,
ich habe zum Testen mal versucht mit meiner Dreambox (zu Hause) extern eine VPN-Verbindung auf meinen Igel herzustellen.
Irgendwie scheint das aber nicht so recht zu klappen. Ich habe eine 7270 auf der openvpn läuft. Hierüber kann ich mich mit meinem Handy (opoenvpn) verbinden und mich auch von auswärts im LAN bewegen. Das klappt einwandfrei.
Versuche ich das jetzt mit meiner Dreambox über DCC per telnet kommt nach einer Weile "Verbindung abgebrochen" ich habe das mal mitgeloggt:
Code: Alles auswählen
Sun Sep 8 09:42:34 2013 OpenVPN 2.3.2 mipsel-oe-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [eurephia] [MH] [IPv6] built on Aug 19 2013
Sun Sep 8 09:42:34 2013 Control Channel Authentication: using '/etc/openvpn/static.key' as a OpenVPN static key file
Sun Sep 8 09:42:34 2013 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Sep 8 09:42:34 2013 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Sep 8 09:42:34 2013 Socket Buffers: R=[163840->131072] S=[163840->131072]
Sun Sep 8 09:42:34 2013 UDPv4 link local: [undef]
Sun Sep 8 09:42:34 2013 UDPv4 link remote: [AF_INET]xx.xx.xxx.54:1194
Sun Sep 8 09:42:35 2013 TLS: Initial packet from [AF_INET]xx.xx.xxx.54:1194, sid=2079fc93 0d52ca42
Sun Sep 8 09:42:35 2013 VERIFY OK: depth=1, C=DE, ST=BW, L=xx, O=Igel-Server, OU=Home, CN=Igel-Server, name=Igel-Server, emailAddress=xxx@x.de
Sun Sep 8 09:42:35 2013 Validating certificate key usage
Sun Sep 8 09:42:35 2013 ++ Certificate has key usage 00a0, expects 00a0
Sun Sep 8 09:42:35 2013 VERIFY KU OK
Sun Sep 8 09:42:35 2013 Validating certificate extended key usage
Sun Sep 8 09:42:35 2013 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sun Sep 8 09:42:35 2013 VERIFY EKU OK
Sun Sep 8 09:42:35 2013 VERIFY OK: depth=0, C=DE, ST=BW, L=xxxxx, O=Igel-Server, OU=Home, CN=Igel-Server, name=Home, emailAddress=xxx@x.de
Sun Sep 8 09:42:35 2013 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Sun Sep 8 09:42:35 2013 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Sep 8 09:42:35 2013 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Sun Sep 8 09:42:35 2013 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Sep 8 09:42:35 2013 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Sun Sep 8 09:42:35 2013 [Igel-Server] Peer Connection Initiated with [AF_INET]xx.xx.xxx.54:1194
Sun Sep 8 09:42:37 2013 SENT CONTROL [Igel-Server]: 'PUSH_REQUEST' (status=1)
Sun Sep 8 09:42:37 2013 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 10.8.0.1,redirect-gateway,route 10.8.0.1,route-gateway 10.8.0.1,topology subnet,route 192.168.178.0 255.255.255.0 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.151 255.255.255.0'
Sun Sep 8 09:42:37 2013 OPTIONS IMPORT: timers and/or timeouts modified
Sun Sep 8 09:42:37 2013 OPTIONS IMPORT: --ifconfig/up options modified
Sun Sep 8 09:42:37 2013 OPTIONS IMPORT: route options modified
Sun Sep 8 09:42:37 2013 OPTIONS IMPORT: route-related options modified
Sun Sep 8 09:42:37 2013 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Sun Sep 8 09:42:37 2013 ROUTE_GATEWAY 192.168.178.1/255.255.255.0 IFACE=eth0 HWADDR=00:09:34:2b:e4:d4
Sun Sep 8 09:42:37 2013 TUN/TAP device tun0 opened
Sun Sep 8 09:42:37 2013 TUN/TAP TX queue length set to 100
Sun Sep 8 09:42:37 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sun Sep 8 09:42:37 2013 /sbin/ifconfig tun0 10.8.0.151 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Sun Sep 8 09:42:37 2013 /sbin/route add -net xx.xx.xxx.54 netmask 255.255.255.255 gw 192.168.178.1
Sun Sep 8 09:42:37 2013 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Sun Sep 8 09:42:37 2013 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.8.0.1
Sun Sep 8 09:42:37 2013 /sbin/route add -net 10.8.0.1 netmask 255.255.255.255 gw 10.8.0.1
Sun Sep 8 09:42:37 2013 /sbin/route add -net 192.168.178.0 netmask 255.255.255.0 gw 10.8.0.1
Sun Sep 8 09:42:38 2013 Initialization Sequence Completed
Sun Sep 8 09:43:40 2013 event_wait : Interrupted system call (code=4)
Sun Sep 8 09:43:40 2013 /sbin/route del -net 192.168.178.0 netmask 255.255.255.0
Sun Sep 8 09:43:40 2013 /sbin/route del -net 10.8.0.1 netmask 255.255.255.255
Sun Sep 8 09:43:40 2013 /sbin/route del -net xx.xx.xxx.54 netmask 255.255.255.255
Sun Sep 8 09:43:40 2013 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Sun Sep 8 09:43:40 2013 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.178.1
Sun Sep 8 09:43:40 2013 Closing TUN/TAP interface
Sun Sep 8 09:43:40 2013 /sbin/ifconfig tun0 0.0.0.0
Sun Sep 8 09:43:40 2013 SIGTERM[hard,] received, process exiting
Code: Alles auswählen
# OpenVPN 2.1 Config, Sun Sep 8 08:45:17 CEST 2013
proto udp
dev tun
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-server
tls-auth /tmp/flash/openvpn/static.key 0
port 1194
push "dhcp-option DNS 10.8.0.1"
push "redirect-gateway"
mode server
ifconfig-pool 10.8.0.150 10.8.0.165
push "route 10.8.0.1"
route 10.8.0.0 255.255.255.0
ifconfig 10.8.0.1 255.255.255.0
push "route-gateway 10.8.0.1"
client-config-dir /clients_openvpn
topology subnet
push "topology subnet"
max-clients 10
push "route 192.168.178.0 255.255.255.0 10.8.0.1"
route 192.168.88.0 255.255.255.0 10.8.0.150
route 192.168.88.1 255.255.255.0 10.8.0.151
tun-mtu 1500
mssfix
verb 3
daemon
cipher AES-128-CBC
comp-lzo
keepalive 10 120
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
Code: Alles auswählen
client
log /tmp/openvpn.log
auth SHA1
comp-lzo
dev tun
proto udp
comp-lzo
pull
persist-key
persist-tun
tun-mtu 1500
remote mein.dyndns.org 1194
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/client1.crt"
key "/etc/openvpn/client1.key"
tls-auth "/etc/openvpn/static.key" 1
cipher AES-128-CBC
verb 3
remote-cert-tls server
nobind
Code: Alles auswählen
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="http://mein.dyndns.org"
# Der Port eures Webservers (standard: 80)
SERVERport="1194"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="astra_e2"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME=""
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD=""
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung wird aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETsettings="-q"
FILES2="satellites.xml terrestrial.xml cables.xml timezone.xml"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -rf $TEMPdir/$ENIGMA
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQ
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
sleep 15
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time.txt-variable in timelu.txt
savetimetxt() {
echo "$timen" > /etc/timelu.txt
}
#download and install Bouquets
downinstBQ() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
if [ "$ENIGMA" = "enigma2" ]; then
PakValidated=0
for file in $FILES2; do
if [ -f "$TEMPdir/$ENIGMA/$file" ]; then
mv -f $TEMPdir/$ENIGMA/$file /etc/tuxbox/
PakValidated=1
fi
done
#prüfen ob der inhalt des enigma2 archives korrekt ist
[ $PakValidated = 0 ] && _error 1 "Das Archive $BQ entspricht nicht den Anforderungen!"
cd /etc/$ENIGMA
rm -f *.tv
rm -f *.radio
rm -f blacklist
rm -f lamedb
mv -f $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
else
cd /var/tuxbox/config/enigma/
rm -f *.tv
rm -f *.radio
rm -f *.epl
rm -f bouquets
rm -f services
rm -f services.locked
mv -f /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
fi
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "/etc/enigma2/" ] && ENIGMA="enigma2"
[ -d "/var/tuxbox/config/enigma/" ] && ENIGMA="enigma1"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo "Senderliste aktuell. Kein Update noetig"
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird beendet"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
exit 0
Ich denke laut log dass die Verbindung schon zustandekommt, dann aber abbricht. Ich muss mich dann auch mit DCC neu Verbinden.
Könnte es sein, dass es ein Problem ist daß ich auf dem Igel nur anmeldung per auth-key erlaube, ich hatte mir damals mit puyttygen eine "Putty key.ppk" erzeugen lassen, auf die ich in z.B Winscp verweise. Wie müsste ich das script umschreiben dass es klappt.?
Kann sich das mal jemand anschauen?
Danke
Grüße Rooki