Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Autostart von EIBD mit Debian Squeeze

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Der eibd läuft dort als root. Bisher sah ich kein grosses Problem darin, denn das "kritischste" was an Diensten/Daten dort überhaupt vorhanden ist (klaut jemand Temperaturwerte?), ist hier der KNX-Bus selbst - und der ist ohnehin so aktiviert - im LAN für jederman offen zugänglich. Das ist aber ein KNX, kein eibd-Problem..

    Jedenfalls, das liesse sich ja ändern, wenn es dazu ein ordentliches Konzept gibt, darauf will ich glaube ich hinaus also user eib, group eib, umask 0660 und die Pakete anderer fügen sich entsprechend der Gruppe eib hinzu (? mal als Vorschlag)
    linknx, misterhouse, ... laufen nämlich beim gemeinen User auch als root, das fände ich erheblich bedenklicher..

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #17
      Grundsätzlich gebe ich Makki schon recht, trotzdem läuft bei mir MH in einer eigenen Gruppe, der eibd solange ich noch kein Wiregate hatte. Ist ja eigentlich kein großer Aufwand und beruhigt mein Gewissen

      Am Ende läuft es aber bei all solchen Sachen darauf hinaus eine ordentliche Bedrohungsanalyse zu erstellen und dann angemessene Sicherheitsmaßnahmen zu ergreifen. 100% sicher geht eh nicht, man kann die Latte nur so hoch legen, dass es für den Angreifer nicht mehr attraktiv wird. Im Extrem bricht er halt ein.

      Soll heißen, im Privathaus hätte ich mit einem als root gestartetem eibd keine Probleme, wenn das Wiregate zur Prozessvisualisierung verwendet wird sind die Temperaturdaten für einen Angreifer aber vielleicht schon interessant.

      Am Ende lieber etwas sicherer als unsicher und Linux hat (leider) noch ganz andere Probleme bevor es wirklich für den unbedarften Endanwender tauglich wird.

      Kommentar


        #18
        Was ich meine: wenn jemand unauthorisierter irgendwie Zugriff auf den eibd hat (API-Port, KNXnet/IP), um einen möglichen Exploit zu nutzen, hat man doch auch schon ohne (noch unbekannte) Exploits ein ganz, ganz anderes Problem, nämlich Vollzugriff auf den KNX.
        Ergo ist das gesamte System sowieso entsprechend abzuschotten (je nach Anforderungen eben, dafür ist auch ein VPN-Server mit X.509-CA und pipapo drauf), mit welchem Rechten der eibd - auf den sowieso nur vertraute kommen dürfen/sollten - dann läuft halte ich daher eben zwar für eine theoretisch Diskussionswürdige Sache, praktisch allerdings für relativ sekundär..

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #19
          Zitat von Jockel Beitrag anzeigen
          ... bevor es wirklich für den unbedarften Endanwender tauglich wird.
          Was ist für den schon geeignet? Da reicht es ja schon als Administrator angemeldet im Internet zu surfen...

          Zitat von makki
          Was ich meine: wenn jemand unauthorisierter irgendwie Zugriff auf den eibd hat (API-Port, KNXnet/IP), um einen möglichen Exploit zu nutzen, hat man doch auch schon ohne (noch unbekannte) Exploits ein ganz, ganz anderes Problem, nämlich Vollzugriff auf den KNX.
          Eben, den KNX schützt es in keiner Weise, wenn der eibd nicht als root läuft. Es schützt lediglich die anderen Dienste und Daten auf dem eibd-Rechner. Für einen Rechner im Heim-LAN also ziemlich belanglos.
          Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
          Amazon: KNXnet/IP Router
          , KNXnet/IP Interface

          Kommentar


            #20
            "Geeignet" ist IMHO was funktioniert und trotzdem sicher ist
            Also, wo liegt der gangbare Mittelweg zwischen meinem (zugegebenermassen provokanten) Ansatz (a+rw) und der Realität?
            Ich wollte mein Ubuntu für jedes mal erschlagen, wo es mich nach meinem pwd für ein Updates frägt, auch wenn ich verstehe warum..

            Jedenfalls, dann sollte es dazu ein .deb und ein Init-script geben, das das einfach macht - wiegesagt ich wirke daran gerne mit.

            IMHO besser als 1x in der Woche einen Thread zu "wie starte ich den eibd jetzt so genau" zu beantworten

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #21
              Da ist man mal ne Woche unterwegs und schon kommt man kaum noch mit
              Also der Reihe nach:

              Zitat von makki Beitrag anzeigen
              Denke auch das es das ist, bei mir steht da:
              # Required-Start: $local_fs $remote_fs $network

              und danach update-rc.d ..

              Makki
              Das war eigentlich völlig plausibel und hatte ich auch in anderen Scripts so drin. Leider hat es rein gar nichts gebracht. update-rc.d hat exakt die selben Links erzeugt und auch sonst hatte es leider keinerlei Effekt.
              Wenn ich wieder zuhause bin werde ich weiter suchen. Vielleicht gibt es ja auch keine andere Lösung in meinem Fall als sleep zu benutzen. Wär ja nicht weiter schlimm. Es geht mir ja wie gesagt mehr um's Verständnis.

              Gruß, Martin

              Kommentar


                #22
                Zitat von makki Beitrag anzeigen

                Jedenfalls, dann sollte es dazu ein .deb und ein Init-script geben, das das einfach macht - wiegesagt ich wirke daran gerne mit.

                IMHO besser als 1x in der Woche einen Thread zu "wie starte ich den eibd jetzt so genau" zu beantworten

                Makki
                Da stimme ich Dir und allen anderen vollständig zu! Ich denke, das wäre nicht nur für Anfänger und Fortgeschrittene gut. Auch für die Profis wäre das bequemer. Warum das Rad n-mal erfinden?

                Gruß, Martin

                Kommentar


                  #23
                  Zitat von makki Beitrag anzeigen
                  IMHO besser als 1x in der Woche einen Thread zu "wie starte ich den eibd jetzt so genau" zu beantworten
                  Einfach eine Zeile am Ende der rc.local (oder wie auch immer die Datei für eigene Dienste bei Debian gerade heisst) einfügen und es sollte gut sein Mach ich immer wenn ich zu faul bin ein richtiges Paket mit Initskript zu erstellen und funktioniert genauso.
                  Andererseits ist ein Initskript auch schnell erstellt.
                  Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                  Amazon: KNXnet/IP Router
                  , KNXnet/IP Interface

                  Kommentar


                    #24
                    Zitat von Sipple Beitrag anzeigen
                    Wenn ich wieder zuhause bin werde ich weiter suchen.
                    Um mehr sagen zu können, was schief geht: "-t 1023 -d /tmp/eibd.log" zu den optionen dazu und das Logfile vom fehlgeschlagen Start posten. Dann kann ich sagen, wo es Probleme gibt.

                    Kommentar


                      #25
                      Hallo Martin

                      So werde ich das am Wochenende wenn ich wieder zuhause bin machen und das Ergebnis posten.

                      Zitat von mkoegler Beitrag anzeigen
                      Dann wird die -d Option an den EIBD wahrscheinlich nicht übergeben.
                      Ansich sollte es kein Problem sein - bei der Verwendung von start-stop-daemon (wie im oben angeführten Skript) müßte man einfach nur --chuid und --group angeben.
                      Genau so habe ich das gemacht. Der Userwechsel hat auch funktioniert, das konnte ich über die Remoteverbindung sehen. Der EIBD lief unter der gewünschten Userkennung/Gruppe. Telegramme senden und empfangen, Busmonitor, alles augenscheinlich einwandfrei. Nur stand die "Bootkonsole" still und lief erst nach dem Beenden des EIBD weiter als wenn nichts gewesen wäre. Sobald ich --chuid etc. aus dem Script gestrichen hatte, ging das Booten wieder, aber halt mit EIBD als root.
                      User und Gruppe habe ich so erzeugt:


                      addgroup –-system knx
                      adduser –-system –-home /var/run/knx -–gid 107 knx

                      Das war allerdings noch mit Lenny. Bei Squeeze habe ich es noch gar nicht versucht.
                      Das Problem gehe ich aber erst nochmal an nachdem ich das erste abgeschlossen habe.

                      Gruß, Martin

                      Kommentar


                        #26
                        Zitat von Sipple Beitrag anzeigen
                        Genau so habe ich das gemacht. Der Userwechsel hat auch funktioniert, das konnte ich über die Remoteverbindung sehen. Der EIBD lief unter der gewünschten Userkennung/Gruppe. Telegramme senden und empfangen, Busmonitor, alles augenscheinlich einwandfrei. Nur stand die "Bootkonsole" still und lief erst nach dem Beenden des EIBD weiter als wenn nichts gewesen wäre. Sobald ich --chuid etc. aus dem Script gestrichen hatte, ging das Booten wieder, aber halt mit EIBD als root.
                        User und Gruppe habe ich so erzeugt:
                        Sieht für mich aus, wie wenn die -d Option vom eibd nicht verwendet worden wäre.

                        Kommentar


                          #27
                          Zitat von mkoegler Beitrag anzeigen
                          Um mehr sagen zu können, was schief geht: "-t 1023 -d /tmp/eibd.log" zu den optionen dazu und das Logfile vom fehlgeschlagen Start posten. Dann kann ich sagen, wo es Probleme gibt.
                          Hier das LOG vom eibd nach dem Booten, wenn ich im Startscript das sleep 5 weg lasse (eibd startet nicht korrekt):

                          Code:
                          Layer 2(085F8668,4DC527FD) Open
                          initialisation of the backend failed
                          Mit sleep 5 kommt dann das:

                          Code:
                          Layer 2(0939A668,4DC52AC9) Open
                          Layer 0(0939AB30,4DC52AC9) Open
                          Layer 0(0939AB30,4DC52AC9) Openend
                          Layer 2(0939A668,4DC52AC9) Opened
                          Layer 3(093BB278,4DC52AC9) Open
                          Layer 8(0939AC10,4DC52AC9) OpenInetSocket 6720
                          Layer 8(0939AC10,4DC52AC9) InetSocket opened
                          Layer 8(093DB960,4DC52AC9) Open
                          Layer 0(093DB9D0,4DC52AC9) Open
                          Layer 0(093DB9D0,4DC52AC9) Openend
                          Layer 3(093BB278,4DC52AC9) registerBroadcast 093DB960
                          Layer 3(093BB278,4DC52AC9) registerBroadcast 093DB960 = 1
                          Layer 3(093BB278,4DC52AC9) registerGroup 093DB960
                          Layer 3(093BB278,4DC52AC9) registerGroup 093DB960 = 1
                          Layer 3(093BB278,4DC52AC9) registerIndividual 093DB960 0
                          Layer 3(093BB278,4DC52AC9) registerIndividual 093DB960 = 1
                          Layer 8(093DB960,4DC52AC9) Opened
                          Layer 4(093FC130,4DC52AC9) GroupCacheInit
                          Layer 1(0939AB30,4DC52AC9) Send(020): 08 01 C0 A8 B2 3A 0E 58 08 01 C0 A8 B2 3A 0E 58 04 04 02 00
                          Layer 0(0939AB30,4DC52AC9) Send(026): 06 10 02 05 00 1A 08 01 C0 A8 B2 3A 0E 58 08 01 C0 A8 B2 3A 0E 58 04 04 02 00
                          Layer 0(0939AB30,4DC52AC9) Recv(020): 06 10 02 06 00 14 4B 00 08 01 C0 A8 B2 27 0E 57 04 04 11 56
                          Layer 1(0939AB30,4DC52AC9) Recv(014): 4B 00 08 01 C0 A8 B2 27 0E 57 04 04 11 56
                          Layer 0(0939AB30,4DC52AD1) Recv(023): 06 10 04 20 00 17 04 4A 2F 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 0(0939AB30,4DC52AD1) Recv(023): 06 10 04 20 00 17 04 4B 00 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52AD1) Recv(017): 04 4A 2F 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939A668,4DC52AD1) Not for us
                          Layer 1(0939AB30,4DC52AD1) Recv(017): 04 4B 00 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52AD1) Send(004): 04 4B 00 00
                          Layer 0(0939AB30,4DC52AD1) Send(010): 06 10 04 21 00 0A 04 4B 00 00
                          Layer 1(0939A668,4DC52AD1) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 2(0939A668,4DC52AD1) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 3(093BB278,4DC52AD1) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 0(0939AB30,4DC52AD2) Recv(023): 06 10 04 20 00 17 04 4A 2F 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52AD2) Recv(017): 04 4A 2F 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939A668,4DC52AD2) Not for us
                          Layer 0(0939AB30,4DC52ADB) Recv(023): 06 10 04 20 00 17 04 4A 30 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 0(0939AB30,4DC52ADB) Recv(023): 06 10 04 20 00 17 04 4B 01 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 1(0939AB30,4DC52ADB) Recv(017): 04 4A 30 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 1(0939A668,4DC52ADB) Not for us
                          Layer 1(0939AB30,4DC52ADB) Recv(017): 04 4B 01 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 1(0939AB30,4DC52ADB) Send(004): 04 4B 01 00
                          Layer 0(0939AB30,4DC52ADB) Send(010): 06 10 04 21 00 0A 04 4B 01 00
                          Layer 1(0939A668,4DC52ADB) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 00 00
                          Layer 2(0939A668,4DC52ADB) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 00 00
                          Layer 3(093BB278,4DC52ADB) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 00 00
                          Layer 0(0939AB30,4DC52ADC) Recv(023): 06 10 04 20 00 17 04 4A 30 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 1(0939AB30,4DC52ADC) Recv(017): 04 4A 30 00 29 00 BC E0 11 33 31 02 03 00 80 00 00
                          Layer 1(0939A668,4DC52ADC) Not for us
                          Layer 0(0939AB30,4DC52ADD) Recv(023): 06 10 04 20 00 17 04 4B 02 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52ADD) Recv(017): 04 4B 02 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52ADD) Send(004): 04 4B 02 00
                          Layer 0(0939AB30,4DC52ADD) Recv(023): 06 10 04 20 00 17 04 4A 31 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939A668,4DC52ADD) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 0(0939AB30,4DC52ADD) Send(010): 06 10 04 21 00 0A 04 4B 02 00
                          Layer 2(0939A668,4DC52ADD) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 3(093BB278,4DC52ADD) Recv L_Data low from 1.1.51 to 6/1/2 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01 68
                          Layer 1(0939AB30,4DC52ADD) Recv(017): 04 4A 31 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939A668,4DC52ADD) Not for us
                          Layer 0(0939AB30,4DC52ADE) Recv(021): 06 10 04 20 00 15 04 4B 03 00 29 00 B4 E0 11 33 09 00 01 00 80
                          Layer 1(0939AB30,4DC52ADE) Recv(015): 04 4B 03 00 29 00 B4 E0 11 33 09 00 01 00 80
                          Layer 1(0939AB30,4DC52ADE) Send(004): 04 4B 03 00
                          Layer 0(0939AB30,4DC52ADE) Send(010): 06 10 04 21 00 0A 04 4B 03 00
                          Layer 1(0939A668,4DC52ADE) Recv L_Data urgent from 1.1.51 to 1/1/0 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
                          Layer 2(0939A668,4DC52ADE) Recv L_Data urgent from 1.1.51 to 1/1/0 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
                          Layer 3(093BB278,4DC52ADE) Recv L_Data urgent from 1.1.51 to 1/1/0 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
                          Layer 0(0939AB30,4DC52ADE) Recv(023): 06 10 04 20 00 17 04 4A 31 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939AB30,4DC52ADE) Recv(017): 04 4A 31 00 29 00 BC E0 11 33 31 02 03 00 80 01 68
                          Layer 1(0939A668,4DC52ADE) Not for us
                          Layer 0(0939AB30,4DC52ADF) Recv(021): 06 10 04 20 00 15 04 4A 32 00 29 00 B4 E0 11 33 09 00 01 00 80
                          Layer 1(0939AB30,4DC52ADF) Recv(015): 04 4A 32 00 29 00 B4 E0 11 33 09 00 01 00 80
                          Layer 1(0939A668,4DC52ADF) Not for us
                          
                          usw usf

                          Kommentar


                            #28
                            Zitat von Sipple Beitrag anzeigen
                            Hier das LOG vom eibd nach dem Booten, wenn ich im Startscript das sleep 5 weg lasse (eibd startet nicht korrekt):

                            Code:
                            Layer 2(085F8668,4DC527FD) Open
                            initialisation of the backend failed
                            Mit sleep 5 kommt dann das:
                            Eindeutig ein Problem mit den Netzwerk.

                            Entweder der DNS Resolver kann die Addresse von KNX Interface nicht auflösen (bei der Verwendung einer IP Addresse eher unwahrscheinlich) oder der Kernel kennt keine Route zu der IP Addresse des Interfaces (dh. Netzwerk-Interface nicht vollständig up).

                            Kommentar


                              #29
                              Erst einmal danke für die ganzen Tipps zur Eingrenzung des Fehlers!

                              Hier die Lösung (zumindest bei mir):

                              Nachdem der Tipp von Makki, "$network" in den Header des Startscripts einzufügen, leider nichts geholfen hat (da war ich mir eigentlich sicher, dass das die Lösung ist) und nachdem mkoegler den Fehler durch das Logfile ebenfalls eindeutig auf ein Problem mit dem Netzwerk zurückgeführt hat, bin ich auf die Suche gegangen und eher durch Zufall drauf gestoßen.
                              Ich wollte in Webmin eigentlich nur von DHCP auf statische IP umstellen und da seh ich, dass eth0, also die LAN-Schnittstelle, laut Webmin beim Booten nicht gestartet wird. WARUM das standardmäßig so stand weiß ich nicht. Ich hab während der Installation von Squeeze und aller Folgepakete, die ich brauche, nichts wissentlich ein- oder verstellt. Die Schnittstelle ist wohl erst verzögert, z.B. durch lighttpd, gestartet worden, deshalb hat 5s warten im EIBD Startscript geholfen. Jetzt geht's ohne.
                              Wie sooft: Ne Winzigkeit.

                              Gruß, Martin

                              P.S. Ich hab den Thread mal auf gelöst gesetzt. Das zweite Problem mit dem Starten als nicht-root bekomme ich auch noch hin.
                              Angehängte Dateien

                              Kommentar


                                #30
                                Zitat von Sipple Beitrag anzeigen
                                P.S. Ich hab den Thread mal auf gelöst gesetzt. Das zweite Problem mit dem Starten als nicht-root bekomme ich auch noch hin.
                                Das zu fixen ist doch garnicht nötig und rein von kosmetischer Natur
                                Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                                Amazon: KNXnet/IP Router
                                , KNXnet/IP Interface

                                Kommentar

                                Lädt...
                                X