Igel-Server dreambox openvpn

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 15.09.2013 17:55:09

Okay, dann ist alles dufte und wir haben uns einfach nicht verstanden. Jetzt kann es nur noch sein, dass scp, wenn du es aus deinem Skript aufrufst das known_hosts-Files nicht findet. Kannst du Skript noch einmal starten und pruefen, ob es weiterhin den known_hosts (y/n)-Fehler wirft oder sauber Dateien kopiert?

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 15.09.2013 18:04:08

Also das script funktioniert (über telnet ausgeführt) einwandfrei. Dateien werden geladen, auf der Box installiert, Box nei gestartet usw. Nur eben nicht über meine Ereiternung im Menü.

Da kommt besagter Fehler:

Code: Alles auswählen

Es kommt allerdings eine abfrage: Host xxx.xxx.xxx.x is not in trusted host file
fingerprint xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Do you want to contiune connecting y/n ? usr/bin/dbclient connection to xxx.xxx.xxx.x exited Didn`t validate host key
Es wird ja hier nur über eine Schaltfläche das gleiche script gestartet.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 15.09.2013 18:11:40

Wenn du dich per telnet anmeldest, dann sind Umgebungsvariable gesetzt. Tipp mal im Terminalfenster "export". Diese Variablen sind vermutlich nicht gesetzt, wenn du das Skript anders startest. Kannst du noch vor den Skriptaufruf ein "HOME=/home/root" packen. Damit stellst du sicher, dass die ~/.ssh/known_hosts gefunden wird. Wenn das Skript von einem anderen User ausgefuehrt wird, dann solltest du entsprechend ein Homeverzeichnis anlegen und eine known_hosts dort platzieren.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 15.09.2013 18:20:32

Hi,
habe Export und HOME=/home/root ausgeführt:

Code: Alles auswählen

root@dm800se:~# export                                                     
export EDITOR="/bin/vi"                                                    
export HOME="/home/root"                                                   
export HUSHLOGIN="FALSE"                                                   
export HZ="100"                                                            
export LOGNAME="root"                                                      
export OLDPWD                                                              
export OPIEDIR                                                             
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin" 
export PS1="\\u@\\h:\\w\\\$ "                                              
export PWD="/home/root"                                                    
export QPEDIR                                                              
export QTDIR                                                               
export SHELL="/bin/sh"                                                     
export SHLVL="1"                                                           
export TERM="xterm"                                                        
export USER="root"                                                         
root@dm800se:~# HOME=/home/root                                            
root@dm800se:~# HOME=/home/root                                            
                                                                           
Dann in /home ein Verzeichnis Test angelegt. was muss ich jetzt da einfügen?

Gruß Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 15.09.2013 18:23:10

Nein, du hast mich nicht ganz verstanden. Einmalig ausfuehren genuegt nicht. Irgendwo wirst du ja dein Skript eingebunden haben ueber welches wir gerade spreichen. Beim Aufruf dieses Skript gehoert ein "HOME=/home/root" davor. Beispiel:

Code: Alles auswählen

HOME=/home/root deinSkript.sh
Alternativ kannst du vor jeden der drei "scp"-Aufrufe im Skript ein HOME=/home/root voranstellen:

Code: Alles auswählen

HOME=/home/root scp -i usw....

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 15.09.2013 18:51:04

Hi,

DU BIST DER GRÖSSTE :mrgreen: Es hat funktioniert, kleiner Schönheitsfehler noch, nach aufruf von: scp kommt "/media/daten/www/settings/astra_e2/ not a regular File"

Aber es geht.

Ich habe nun nur das Problem, wenn ich dass bei meinen Clienten mache, muss ich ja auch die Box und mein Server "befreunden" wie kann ich das machen. Ist ja dann über I-Net

Kann man die Darstellung des scripte noch weiter begrenzen, es kommt ziemlich viel zeug wenn das durchläüft, mir würde es reichen wenn die wichtigen Dinge kommen:

- Aufbau der VPN-Verbindung
- Senderliste ist aktuell
usw.

Gruß Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 15.09.2013 19:16:01

Ich hatte dir am Anfang des Threads zu "-x" geraten. Das koenntest du wieder entfernen. Ausgaben einzelner Programme kannst du ausradieren, indem du sie nach >/dev/null umleitest. Beim "not a regular file"-Fehler scheinst du ein Verzeichnis zu kopieren und nicht eine einzelne Datei, kann das sein?

Du nutzt doch ein VPN, so dass du dich immer mit lokalen IPs verbindest. Da sollte das "einmale Befreunden per Hand" ebenfalls ausreichen. Probiers einfach aus und melde dich, wenns nicht klappt.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 15.09.2013 19:21:11

Hi,
also -x hab ich raus, das andere muss ich mir dann nochmal anschauen. Nach >/dev/null umleiten anstatt echo oder wo kommt das hin?

Ich nutze schon VPN, aber wenn man per telnet den befehl eingibt läuft der Dienst ja nicht. Muss man dann vorher openvpn händsich starten oder?

Also erstmal ein fettes DANKE, hast mir wirklich sehhhhhr geholfen.

Grüße Rooki

Bei dem Pfad verweise ich auf den Ordner /media/daten/www/settings/astra_e2 darin liegen die 2 Dateien die kopiert werden sollen.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 15.09.2013 19:36:59

Teste mal folgenden Code in einer Console:

Code: Alles auswählen

echo test123
echo test234 > /dev/null
Dann weisst du, was ich mit >/dev/null meine. Das funktioniert auch mit beliebigen Anwendungen, welche auf die Standard-Ausgabe schreiben.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 17.09.2013 07:10:07

Hi,
ich war wohl etwas voreilig, also das script funktioniert im Prinzip. Ich habe jetzt aber nochmal die openvpn.log angeschaut, da war zu lesen Network unreachebal TLS-Handshake failed oder so.

Die Dreambox hat sich zwar die Dateien geholt, aber eben nur über das Lan. Das script gibt im Prinzip keine Fehlermeldung aus, ob die VPN-Verbindung steht oder nicht. Es wird einfach 30s gewartet um diese aufzubauen, dann gehts weiter.
Ich habe ja auf meinem 2. Igel mit openvpn meine ganzen Schlüssel erzeugt. Diese liegen auf /etc/openvpn/easy-rsa2. Wie stelle ich es an, das ich auf Grundlage dieser Dateien noch einen ta.key
erzeuge?

Ich habe momentan in der server und client.ovpn bei tls-auth auf meine static.key verwiesen. Komisch mit meinem Handy funktioniert das auch, aber mit der Dreambox wohl nicht.

Ein weiterer Versuch wäre also einen ta.key zu erzeugen und dann auf diesen zu verweisen.

Gruß Rooki

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 18.09.2013 07:10:32

Moin,

also habe es hinbekommen, das Problem war das meine Dreambox in den Netzwerkeinstellungen keinen Gateway eingetragen hatte. Ich könnte aber schwören, das dies eigentlich drinn war. Sonst wären ka auch keine updates durchgelaufen.

Es hat gestern 1x geklappt das Senderlistenupdate über openvpn zu machen, das script ist dabei ganz durchgelaufen, auf meinem Server unter /var/log/auth.log habe ich die Anmeldung auch mit der IP angezeigt bekommen, die openvpn über Tunnel an die Dreambox einträgt.

Bei einem weiteren Versuch allerdings war wieder kein Download der "time.txt" möglich, ich tippe hier auf --keine Verbindung zum Server-- auf dem Bildschirm stand dann wieder etwas wie usr/bin/dbclient. Werde heute abend mal versuchen die openvpn-Verbindung manuell über Telnet herzustellen.

Gruß
Rooki

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 18.09.2013 18:29:36

Hi,

ich bekomm es nicht hin, habe jetzt mal das script im telnet gestartet, folgende Ausgabe:

Code: Alles auswählen



+ ENIGMA=enigma2
+ HOME=/home/root
+ scp -i /etc/openvpn/key root@192.168.178.xx:/media/daten/www/settings/astra_e2/ /

scp: /media/daten/www/settings/astra_e2: not a regular file

+ SERVERurl=ftp://192.168.178.xx
+ SERVERport=22
+ SERVERdir=astra_e2
+ USERNAME=
+ PASSWORD=
+ ST=time.txt
+ COLORED=1
+ VPN=1
+ '[' 1 = 1 ']'
+ echo 'VPN Verbindung wird aufgebaut'
VPN Verbindung wird aufgebaut
+ sleep 30
+ HOME=/home/root
+ /usr/script/vpn.sh start

+ case $SERVERurl in

++ echo ftp://192.168.178.xx
++ cut -d : -f 1
+ URLprot=ftp://
++ echo ftp://192.168.178.xx
++ cut -d : -f 2
++ tr -d //
+ URL=192.168.178.xx
+ '[' '!' -z '' ']'
+ '[' '!' -z 22 ']'
+ URL=192.168.178.xx:22
+ '[' '!' -z ftp:// ']'
+ URL=ftp://192.168.178.xx:22
+ TEMPdir=/tmp
+ WGETsettings=-q
+ FILES2='satellites.xml terrestrial.xml cables.xml timezone.xml'
+ '[' -z 1 ']'
+ '[' -z enigma2 ']'
+ '[' enigma2 '!=' enigma1 ']'
+ '[' enigma2 '!=' enigma2 ']'
+ BQ=enigma2.tar.gz
+ echo 'PRUEFE OB BEI xxxx EIN UPDATE VERFUEGBAR IST..'
PRUEFE OB BEI xxxx EIN UPDATE VERFUEGBAR IST..
+ cd /tmp
+ '[' -f /etc/timelu.txt ']'
++ cat /etc/timelu.txt
++ tail -n1
++ head -n1
+ timelu=1379447172
+ _error 0 'Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)'
+ '[' 0 -gt 0 ']'
+ _cleanup
+ rm -rf /tmp/enigma2
+ rm -f /tmp/time.txt
+ rm -f /tmp/enigma2.tar.gz
+ downtimetxt
+ sleep 15
+ HOME=/home/root
+ scp -i /etc/openvpn/key root@192.168.178.xx:/media/daten/www/settings/astra_e2/time.txt /tmp/time.txt
/usr/bin/dbclient: Exited: Error connecting: No route to host
+ _error 1 'Es ist ein Fehler aufgetreten (download time.txt)'
+ '[' 1 -gt 0 ']'
+ '[' -z 'Es ist ein Fehler aufgetreten (download time.txt)' ']'
+ message='Es ist ein Fehler aufgetreten (download time.txt)'
+ '[' 1 = 1 ']'
+ echo -e '\033[1;31;40mEs ist ein Fehler aufgetreten (download time.txt)\033[0m'
[1;31;40mEs ist ein Fehler aufgetreten (download time.txt)[0m
+ echo -e '\033[1;31;40mAbbruch\033[0m'
[1;31;40mAbbruch[0m
+ '[' 1 = 1 ']'
+ echo 'VPN Verbindung wird wegen eines Fehlers abgebaut'
VPN Verbindung wird wegen eines Fehlers abgebaut
+ /usr/script/vpn.sh stop
+ exit 1
root@dm800se:/usr/script# 
Ich krieg die Krise

Grüße Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 18.09.2013 18:44:59

Die dritte Zeile hat im Script an dieser Stelle nichts verloren. Der spaetere scp-Aufruf mosert darueber, dass der den Ziel-Server nicht erreichen kann:

Code: Alles auswählen

+ scp -i /etc/openvpn/key root@192.168.178.xx:/media/daten/www/settings/astra_e2/time.txt /tmp/time.txt
/usr/bin/dbclient: Exited: Error connecting: No route to host
Willst du uns eine IP verheimlichen oder steht dort in Wirklichkeit auch ein "xx" im Code? Koenntest du mal sicherstellen, ob ueberhaupt eine VPN-Verbindung zu Stande kommt? Ausserdem waere interessant, wie der Adressbereich des VPNs ist. Handelt es sich um ein Bridged-VPN oder wieso weiterhin das 178er Netz?

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 18.09.2013 19:22:27

Hi,
also die xx stehen natürlich da nicht drin :D , sorry aber ich war wohl etwas durcheinander es steht jier die 18. Die VPN-Verbindung kommt schon zustande, meine Dreambox erhält nach Eingabe
von openvpn /etc/openvpn/VPN-freetz.ovpn die 10.8.0.151, das steht in den Einstellungen drin. Standard der Dream ist 192.168.178.10.
Das Problem ist bei einem wechsel der IP auf 10.8.0.151 flieg ich natürlich auch mit dem Programm DCC raus.

Ich habe aber hier ein Log vom der Dreambox:

Code: Alles auswählen

Wed Sep 18 18:27:35 2013 OpenVPN 2.3.2 mipsel-oe-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [eurephia] [MH] [IPv6] built on Aug 19 2013
Wed Sep 18 18:27:35 2013 Control Channel Authentication: using '/etc/openvpn/static.key' as a OpenVPN static key file
Wed Sep 18 18:27:35 2013 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 18 18:27:35 2013 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 18 18:27:35 2013 Socket Buffers: R=[163840->131072] S=[163840->131072]
Wed Sep 18 18:27:35 2013 UDPv4 link local: [undef]
Wed Sep 18 18:27:35 2013 UDPv4 link remote: [AF_INET]84.56.129.97:1194
Wed Sep 18 18:27:35 2013 TLS: Initial packet from [AF_INET]xx.56.xxx.97:1194, sid=12a95dc6 7e9284f6
Wed Sep 18 18:27:35 2013 VERIFY OK: depth=1, C=DE, ST=BW, L=xxxxxxxx, O=Igel-Server, OU=Home, CN=Igel-Server, name=Igel-Server, emailAddress=xxxx@xx.de
Wed Sep 18 18:27:35 2013 VERIFY OK: nsCertType=SERVER
Wed Sep 18 18:27:35 2013 VERIFY OK: depth=0, C=DE, ST=BW, L=xxxxxxxx, O=Igel-Server, OU=Home, CN=Igel-Server, name=Home, emailAddress=xxxxx@xx.de
Wed Sep 18 18:27:36 2013 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Wed Sep 18 18:27:36 2013 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 18 18:27:36 2013 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Wed Sep 18 18:27:36 2013 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 18 18:27:36 2013 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Wed Sep 18 18:27:36 2013 [Igel-Server] Peer Connection Initiated with [AF_INET]84.56.129.97:1194
Wed Sep 18 18:27:38 2013 SENT CONTROL [Igel-Server]: 'PUSH_REQUEST' (status=1)
Wed Sep 18 18:27:38 2013 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 10.8.0.1,redirect-gateway,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'
Wed Sep 18 18:27:38 2013 OPTIONS IMPORT: timers and/or timeouts modified
Wed Sep 18 18:27:38 2013 OPTIONS IMPORT: --ifconfig/up options modified
Wed Sep 18 18:27:38 2013 OPTIONS IMPORT: route options modified
Wed Sep 18 18:27:38 2013 OPTIONS IMPORT: route-related options modified
Wed Sep 18 18:27:38 2013 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Sep 18 18:27:38 2013 ROUTE_GATEWAY 192.168.178.1/255.255.255.0 IFACE=eth0 HWADDR=00:09:34:2b:e4:d4
Wed Sep 18 18:27:38 2013 TUN/TAP device tap0 opened
Wed Sep 18 18:27:38 2013 TUN/TAP TX queue length set to 100
Wed Sep 18 18:27:38 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Sep 18 18:27:38 2013 /sbin/ifconfig tap0 10.8.0.151 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Wed Sep 18 18:27:40 2013 /sbin/route add -net 84.56.129.97 netmask 255.255.255.255 gw 192.168.178.1
Wed Sep 18 18:27:40 2013 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Wed Sep 18 18:27:40 2013 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.8.0.1
Wed Sep 18 18:27:40 2013 /sbin/route add -net 192.168.178.0 netmask 255.255.255.0 gw 10.8.0.1
Wed Sep 18 18:27:40 2013 Initialization Sequence Completed
Wed Sep 18 18:28:23 2013 event_wait : Interrupted system call (code=4)
Wed Sep 18 18:28:23 2013 /sbin/route del -net 192.168.178.0 netmask 255.255.255.0
Wed Sep 18 18:28:23 2013 /sbin/route del -net 84.56.129.97 netmask 255.255.255.255
Wed Sep 18 18:28:23 2013 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Wed Sep 18 18:28:23 2013 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.178.1
Wed Sep 18 18:28:23 2013 Closing TUN/TAP interface
Wed Sep 18 18:28:23 2013 /sbin/ifconfig tap0 0.0.0.0
Wed Sep 18 18:28:23 2013 SIGTERM[hard,] received, process exiting
Hier die conf vom server:

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
Hier die conf von der Dream:

Code: Alles auswählen

client
log /tmp/openvpn.log
float
comp-lzo
float
nobind
persist-key
persist-tun
dev tap
tun-mtu 1500
remote meinserver.dyndns.org 1194
proto udp
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/client1.crt"
key "/etc/openvpn/client1.key"
tls-auth "/etc/openvpn/static.key" 1
ns-cert-type server
mssfix
route-method exe
cipher AES-128-CBC
verb 3
route-delay 2
mute 20
und hier nochmal das script welches jetzt auf der dreambox ausgeführt wird:

Code: Alles auswählen

#!/bin/sh -x
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
HOME=/home/root scp -i /etc/openvpn/key root@192.168.178.18:/media/daten/www/settings/astra_e2/$BQ $TEMPdir/$BQ
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.178.18"
# Der Port eures Webservers (standard: 80)
SERVERport="22"
# 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="1"
# 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"
     HOME=/home/root /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
				HOME=/home/root scp -i /etc/openvpn/key root@192.168.178.18:/media/daten/www/settings/astra_e2/$ST $TEMPdir/$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
				HOME=/home/root scp -i /etc/openvpn/key root@192.168.178.18:/media/daten/www/settings/astra_e2/$BQ $TEMPdir/$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 BEI xxxx EIN UPDATE VERFUEGBAR 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. xxxx HAT KEIN UPDATE FUER DICH**************"
#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
Im script kann ich doch die interne ip des Servers angeben, ich bin ja über VPN quasi im LAN oder. Das komische ist daß es gestern einmal durchlief, ich hatte also auch auf meinem Server in der auth.log die Anmeldedaten der Dreambox als 10.8.0.151 drinn. key accept usw. Jetzt geht es nicht mehr ????? Ich bin echt am verzweifeln.

Grüße Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 18.09.2013 19:28:03

Das VPN ist ein 10er Netz. Wieso versuchst du per SSH/SCP eine 192.168.178er IP zu erreichen?

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 18.09.2013 19:30:26

Waer es nicht einfacher, wenn du dir die VPN-Verbindung sparst und deinen SSH-Server aus der Ferne erreichbar machst? Authentifizieren tust du dich in beiden Faellen per Key.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: AW: Igel-Server dreambox openvpn

Beitrag von rooki » 18.09.2013 19:58:25

Ich habe mich halt an das script angelehnt. Das ist ja nicht von mir.
Also ich verstehe das mit den IP Adressen so, das wenn die openvpn-Verbindung steht, ich mich doch der internen Ip-Adressen bedienen kann.
So mach ich das über mein Handy doch auch.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 18.09.2013 20:16:29

Ueberleg dir mal, welche beiden lokalen Netzwerke mit welchen Adressbereichen es ohne das VPN gibt. Dazwischen solltest du dir den VPN-Tunnel malen. Dieser hat einen eigenen Adressbereich. Danach solltest du dir ueberlegen, ob die einzelnen Netzwerke sauber ueber das VPN geroutet werden oder eigentlich nur die VPN-Endpunkte mit ihren VPN-IPs miteinander sprechen koennen uvm. Ich glaube ich steige an dieser Stelle aus.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 19.09.2013 06:45:07

Moin moin,

also du hast mich überzeugt. Ich glaub mittlerweile auch, es wäre besser das openvpn wegzulassen. Ich hatte mir das einfacher vorgestellt. Wenn ich das ganze rein über ssh mache, kann ich dann das Grund-Script nehmen? Ich meine "SERVERurl= ssh usw.

Wie wäre denn die syntax für eine Anmeldung mit key von außen ? Ich hatte mir ja einen puplickey für dropbear konvertiert.

Gruß
Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 19.09.2013 08:41:39

Zusaetzlich zur Portweiterleitung fuer OpenVPN richtest du eine fuer SSH (Port 22) ein. Danach sollte dein Server auch per SSH aus der Ferne ueber deine Dyndns-Adresse erreichbar sein. Die lokalen IPs in den SSH-Zeilen (192.168.178.xx) aenderst du in deine SSH-Adresse. Das Befreunden der Dreambox mit dem SSH-Server musst du erneut durchfuehren: Telnet zur Dreambox von dort SSH zu user@dydns-adresse und mit "y" bestaetigen. Die beiden "vpn.sh"-Zeilen (und das sleep danach) kommentierst du aus deinem Skript aus. Das sollte genuegen.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 19.09.2013 09:00:56

Hi,

mit syntax meinte ich: SERVERurl="ssh /etc/keyordner/key root@mein.server.de 22" wäre das ok so?

und noch 2 Fragen, wäre es besser einen anderen Port zu nehmen? wie hoch darf der maximal sein?

Wäre es ok wenn ich jedem client meinen konvertierten key reinkopiere oder sollte ich auf dem server user anlegen und jedem einen eigenen key machen?

Gruß Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 19.09.2013 10:37:43

rooki hat geschrieben:mit syntax meinte ich: SERVERurl="ssh /etc/keyordner/key root@mein.server.de 22" wäre das ok so?
Der Port 22 Hinweis war lediglich fuer die Port-Weiterleitung in deinem Router. Es ist der Standard-Port. Deine obige Syntax ist nicht okay. Die 22 hat an dieser Stelle nichts verloren. Ausserdem hatten wir uns doch drauf geeinigt, dass der SCP-Aufruf in der dritten Zeile deines Skripts dort *nichts* verloren hat.
rooki hat geschrieben:und noch 2 Fragen, wäre es besser einen anderen Port zu nehmen? wie hoch darf der maximal sein?
Hol dir doch nicht noch mehr Fehlerquellen ins Haus. Er muss kleiner 65536 sein.
rooki hat geschrieben:Wäre es ok wenn ich jedem client meinen konvertierten key reinkopiere oder sollte ich auf dem server user anlegen und jedem einen eigenen key machen?
Wenn du einzelne Clients irgendwann mal aussperren willst, dann solltest du mehrere Keys anlegen. Unterschiedliche User muessen es nicht unweigerlich sein. Man kann in der authorized_keys einen Key pro Zeile unterbringen.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 19.09.2013 11:21:09

Hi
also Port ist klar. SCP ?? ich dachte jetzt per ssh deswegen habe ich die syntax auch so geschrieben. Ich habe das jetzt so verstanden das scp wieder rauskommt??

Script konfiguration:

Code: Alles auswählen

#!/bin/sh -x
#
# 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="ssh /etc/keyordner/key root@mein.server.de" [b]######Ich muss doch hier auf den key verweisen#####[/b]
# Der Port eures Webservers (standard: 80)
SERVERport="22"
# 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="1"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="0"
#
## Ende der Konfiguration
Hab ich es falsch verstanden?

Gruß Rooki

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Igel-Server dreambox openvpn

Beitrag von syssi » 19.09.2013 11:46:04

Ja, hast du. SCP *ist* kopieren von Dateien über SSH. Dein Kommandozeilen-Programm "scp" macht also eine SSH-Verbindung und kopiert darueber eine Datei. Das machst du auch schon die ganze Zeit, jedoch gegen eine IP-Adresse im lokalen Netzwerk. Deshalb sollst du die IP-Adresse in den bisherigen scp-Aufrufen gegen deine dyndns-Adresse ersetzen (hinter welcher dein SSH-Server steht). Ist dieser SSH-Server ueber SSH erreichbar oder fehlt noch eine Portweiterleitung?

Du musst deshalb *nichts* am Skript aendern. Außer aus einer IP eine dyndns-Adresse zu machen. Und in x Betraegen habe ich dich schon gebeten die dritte Zeile des Skripts zu bereinigen. Da hast du einfach *Muell* eingetragen, der dort nicht hin gehoert.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: Igel-Server dreambox openvpn

Beitrag von rooki » 19.09.2013 12:20:26

Ok

ich hab in der Konfiguration jetzt:

Code: Alles auswählen

#!/bin/sh -x
#
# 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="ssh root@mein.server.de"
# Der Port eures Webservers (standard: 80)
SERVERport="22"
# 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="1"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="0"
#
## Ende der Konfiguration
und die scp Zeilen angepasst: HOME=/home/root scp -i /etc/openvpn/key root@mein.server.de:/media/daten/www/settings/astra_e2/$ST $TEMPdir/$ST

Wäre das so ok?

Gruß
Rooki

Antworten