piet: IP Adresszusammensetzung

Hallo,

ich habe eine Kamera (IP:192.168.1.207) am Webserver (IP:192.168.1.9)

Wenn ich am Webserver die Adresse

http://admin:admin@http://192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin

eingebe, kann ich die Kamera ohne Anmeldung ansprechen.

Nun habe ich per

ProxyPass /kamera_haupt_rrm/ http://192.168.1.207/
ProxyPassReverse /kamera_haupt_rrm/ http://192.168.1.207/

die Kameraadresse umgeleitet

wie lautet nun meine "IP-Adresse" wenn ich von Aussen (ausserhalb Subnet) auf die Kamera zugreifen will ????

Ich sage mal als Beispiel lautet meine Adresse "http://Tester.de"

http://Tester.de/kamera_haupt_rrm/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin

geht nicht.

So ... nun bin ich trotz Latein ;-) am Ende

Gruß

  1. Hello,

    es ist die IP-Adresse des Webservers, den der ist ja nun der Proxy für die Kamera.
    Aber es sind ggf. noch die Einstellunge für den Hostname im Proxy zu beachten.

    Sonst landet der Request immer auf dem Default-VirtHost

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. ???

      Bitte mach mal kurz ein Beispiel für meinen Fall, damit ich es mir "bildlich" vorstellen kann. Die "IP-Adresse" des Webservers lautet ja http://Tester.de"

      Gruß

  2. Hello,

    Der Webserver ist ohne Host-Namen IP-basiert erreichbar?
    Die Kamera ist ohne Host-Namen IP-basiert erreichbar?

    Wie lautet die Wunsch-URL der Kamera auf dem Webserver?
    -> http://192.168.1.9/kamera

    Wie lautet die Real-URL der Kamera mit Parametern?
    -> http://admin:admin@http://192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin

    Dann lautet der ProxyPass:
    -> ProxyPass /kamera http://admin:admin@192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&

    Und ProxyPassReverse:
    -> /kamera http://192.168.1.207

    So müsste das stimmen - hoffe ich.

    und:
    -> ProxyPreserveHost off ## ist default

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. Hello,

      Entschuldige bitte. Ich habe gelesen "nicht von außen, nur im Subnet". War wohl eine Halluzination.

      Müsste aber trotzdem so gehen, wenn http://example.org/kamera vom Internet aus erreichbar ist.

      Ich würde keine Webcams mehr im direkt im LAN anschließen. Da sind inzwischen ganz viele dazwischen, die den Netzwerkverkehr (im LAN) belauschen und dann gelegentlich mal ein Paket "nach Hause" schicken.

      Die Dinger benötigen eine DMZ oder mindestens einen eigenen VLAN nach draußen.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es
      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
  3. Tach!

    ich habe eine Kamera (IP:192.168.1.207) am Webserver (IP:192.168.1.9)

    Wenn ich am Webserver die Adresse

    Nein, du gibst die im Browser ein, und der baut eine Verbindung direkt zur Kamera auf, ohne den Webserver zu behelligen.

    http://admin:admin@http://192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
    

    Das zweite http:// ist falsch. Und/oder das http://admin:admin@ ist überflüssig, wenn du die Anmeldedaten im Querystring hast. Oder sie sind dort überflüssig.

    Nun habe ich per

    ProxyPass /kamera_haupt_rrm/ http://192.168.1.207/
    ProxyPassReverse /kamera_haupt_rrm/ http://192.168.1.207/
    

    die Kameraadresse umgeleitet

    wie lautet nun meine "IP-Adresse" wenn ich von Aussen (ausserhalb Subnet) auf die Kamera zugreifen will ????

    Das wäre die öffentliche von deinem Router. Und der muss den Request zum Webserver durchstellen. Aber der kann den auch gleich zum eingebauten Webserver der Kamera leiten, ohne den Umweg über den Apachen.

    Ich sage mal als Beispiel lautet meine Adresse "http://Tester.de"

    Das ist übrigens keine IP-Adresse, wie du das in deiner anderen Antwort genannt hast. Es mag zwar in anderen Kreisen üblich sein, da keinen Unterschied zu sehen, aber der Techniker benennt Dinge gern bei ihrem konkreten Namen, weil das die Kommunikation vereinfacht.

    Ich nehme an, du hast eine Domain und einen Dienst, der dir diesen Domainnamen auf deiner IP-Adresse auflöst. Zudem solltest du nicht einfach irgendeine Adresse von einem Fremden Unternehmen für deine Zwecke missbrauchen. Es gibt extra für Beispiele vorgesehene Namensbereiche, damit solche Kollisionen nicht entstehen.

    geht nicht.

    Das ist keine Fehlerbeschreibung. Schau genau nach und beschreibe genau, was nicht geht. Zudem gibt es Logfiles in deinem Webserver, die dir Auskunft geben, ob und was da ankommt und ob es vielleicht einen Fehler dabei gibt.

    dedlfix.

    1. Hallo,

      vielen Dank für die vielen Beiträge

      Ich habe nun folgendes probiert

      ProxyPass /kamera http://admin:admin@192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
      
      ProxyPassReverse: /kamera http://192.168.1.207
      

      Wenn ich nun auf der Webseite

      
      <img src="/kamera" name="camimage" style="width:1024px; height:768px">
      

      eingebe kommt kein Bild

      Dann habe ich verschiedene Test's mit wget auf der Konsole (Linux) gemacht

      
      wget httpd://192.168.1.9/kamera
      

      dann kommt ein 401 Fehler

      dann

      
      wget httpd://admin:admin@192.168.1.9/kamera/
      

      ebenfalls ein 401 Fehler, jedoch wird die index.html geholt und abgespeichert

      weiter

      
      wget httpd://192.168.1.9/kamera/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
      

      wieder ein 401 Fehler, jedoch ein snapshot wird erstellt und heruntergeladen.

      Wenn ich nun in der HTML Seite

      <img src="http://admin:admin@192.168.1.9/kamera_haupt_rrm/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin" name="camimage" style="width:1024px; height:768px">
      

      Wird das Kamerabild dargestellt, jedoch muss ich mich immer beim aktualisieren neu bei 192.168.1.9 anmelden.

      Ich verstehe nicht warum die Proxy Auflösung nicht funktioniert.

      Bitte um Tipps was ich noch probieren kann.

      Gruß

      PS: Natürlich habe ich immer systemctrl restart apache2 ausgeführt

      1. Hello,

        vielen Dank für die vielen Beiträge

        Ich habe nun folgendes probiert

        ProxyPass /kamera http://admin:admin@192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
        
        ProxyPassReverse: /kamera http://192.168.1.207
        

        Erstmal das Port-Forwarding bzw. das ohnehin vorhandene Tor zum Webserver testen.
        Lege unter http://example.org/my1234.php ein Skript ab, das eine bekannte Ausgabe produzieren soll. example.org musst Du natürlich ersetzen gegen deine Domain oder deine Dyn-DNS-Domain oder die öffentliche IP deines Netzes (Routers).

        Kann sein, dass Du /kamera/schreiben musst, also mit abschließendem Slash

        Wenn das klappt, solltest Du dann aber besser ProxyPassMatch benutzen, um keine Schlupflöcher zu öffnen.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
      2. Tach!

        Bitte um Tipps was ich noch probieren kann.

        Log-Dateien anschauen. Daraus kann man meistens etwas entnehmen. Und sei es, dass du aus dem Fehlen eines Eintrags entnehmen kannst, dass der Request gar nicht aufgeschlagen ist.

        Warum willst du den Apachen als Proxy verwenden? Hängt der mit zwei Beinen in beiden Netzen? Ansonsten brauchst du keinen Proxy, sondern nur ein Routing von einem Netz zum anderen. Oder Portforwarding.

        Die HTTP-Statuscodes erhalten sich im Wesentlichen nicht unterschiedlich. Auch bei 401 kommt wie bei 200 ein Dokument als Antwort, üblicherweise ein Fehlerdokument.

        dedlfix.

        1. Hallo,

          ich bin nun einen Schritt weiter. Ich habe eine weitere Kamera mit IP: 192.168.1.205 zum testen

          ProxyPass /kamera_205   http://admin:admin@192.168.1.205/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
          
          ProxyPassReverse: /kamera_205 http://192.168.1.205
          

          Wenn ich nun vom Internet aus, mit meinem Webserver auf die Kamera zugreifen will muss ich folgendes eingeben

          http://admin:admin@ip-webserver/kamera_205/
          

          dann kommt auch das Bild

          d.h. ich muss immer nach http:// meinen user:passwd angeben, egal ob es nun beim ProxyPass steht oder nicht. Wie kann ich das nun auf auf der Webseite realisieren. Ich würde es einfach mal mit eine iframe (ja ... ich weiß ;-) ) probieren

          <iframe src="/kamera_205" name="camimage" scrolling="auto" frameborder="0" style="height:650px; width:1200px;">
          

          Wo setze ich mein admin:admin ein ?? gibt es einen "Platzhalter" für die aktuelle IP ??

          Die Kamera macht mir zwar viel Ärger, aber Sie ist es vom Preis/Leistung absolut Wert !!

          Gruß

          1. Tach!

            d.h. ich muss immer nach http:// meinen user:passwd angeben, egal ob es nun beim ProxyPass steht oder nicht.

            Credentials anzugeben ist kein Standard und deswegen wird dir auch der Proxy nicht die Anmeldeprozedur erledigen. Browser allerdings befolgen den Wunsch und erzeugen daraus korrekte Requests, die dann auch über den Proxy kommen.

            Ich würde es einfach mal mit eine iframe (ja ... ich weiß ;-) ) probieren

            <iframe src="/kamera_205" name="camimage" scrolling="auto" frameborder="0" style="height:650px; width:1200px;">
            

            Wo setze ich mein admin:admin ein ?? gibt es einen "Platzhalter" für die aktuelle IP ??

            Ein Fragezeichen pro Frage ist der Standard, Leerzeichen davor aber nicht. Bei src gibst du eine URL an. Also die Credentials wie gehabt. Und wenn du von deinem Router nichts weißt, kann ein Dyn-DNS-Dienst helfen.

            dedlfix.

  4. Wenn ich am Webserver die Adresse

    http://admin:admin@http://192.168.1.207/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin
    

    eingebe, kann ich die Kamera ohne Anmeldung ansprechen.

    Alles schön und gut, aber was liefert die Kamera denn dann aus? Eine Webseite? Ein einmaliges Bild? Einen Stream?

    Wenn es nur ein Bild ist, dann kann Deine Idee mit dem Proxy funktionieren. Ist es aber eine Webseite mit einem eingebauten Objekt, dann steht in der Webseite, die der Browser des Benutzers erhält, auch die URI des Objektes. Die müsstest Du auf dem Webserver erst manipulieren. Das könnte bei Streams, die womöglich via Flash-Krempel ausgeliefert werden, etwas mehr als ein replace(was, wodurch, worin) erfordern.

    Schau also mit den gängigen Entwicklertools Deines Browsers nach, was da konkret kommt und zeige und das.

    1. Hallo,

      es kommt nur "ein" Bild (snapshot.cgi) von der Kamera zurück, daher auch das

      <img src="http://admin:admin@192.168.1.9/kamera/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin" name="camimage" style="width:1024px; height:768px">

      Übrigends ... mit anderen Kameras (ohne Anmeldung) funktioniert ProxyPass auch.

      Gruß

      1. Hello,

        es kommt nur "ein" Bild (snapshot.cgi) von der Kamera zurück, daher auch das

        <img src="http://admin:admin@192.168.1.9/kamera/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin" name="camimage" style="width:1024px; height:768px">

        Hast Du nochmal geprüft, ob die URL-Parameter so richtig angegeben sind? Die Namen der Parameter sind ja doch ungewöhnlich. Oder kannst Du die selber festlegen? Bei meiner einen Kamera gibt man sie entweder als Domainprefix oder als Url-Parameter an und die heißen dann nur User und Pass.

        Alternativ lassen sich die Credentials noch im Requestheader angeben und man kann dann nach dem 401-Basic-Auth auch auf Token umschalten lassen.

        Lass uns doch mal gucken ;-)  
        
        
        
        
        
        
        
          
        Liebe Grüße  
        Tom S.   
        
        
        -- 
         Es gibt nichts Gutes, außer man tut es   
         Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.  
        
        
        
        
        
        
        
        1. Hm.

          http://admin:admin@192.168.1.9/kamera/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin

          Also. Ich habe mir das mit meinem Apache angesehen.

          Wenn ich nun in der HTML Seite

          <img src="http://admin:admin@192.168.1.9/kamera_haupt_rrm/cgi- bin/snapshot.cgi?loginuse=admin&loginpas=admin" name="camimage" style="width:1024px; height:768px">
          

          Wird das Kamerabild dargestellt, jedoch muss ich mich immer beim aktualisieren neu bei 192.168.1.9 anmelden.

          Ja. Die Daten für Username und Passwort (vor dem "@") werden ignoriert. Ist auch besser so. Da kommt keiner auf die Idee, diese im Klartext zu speichern, der Apache fragt also nach. Aber es gibt eine Lösung.

          Was zu tun ist:

          1. Installation

          mod_headers aktivieren:

          # a2enmod headers
          # service apache2 restart
          

          2. Benutzername und Passwort hashen:

          2.a z.B. mit Python-Skript

          #!/usr/bin/python
          
          import base64
          hash = base64.b64encode(b"DeinBenutzer:DeinPasswort")
          print hash
          

          2.b Ausführen:

          ~> python hashCred.py
          RGVpbkJlbnV0emVyOkRlaW5QYXNzd29ydA==
          

          3. Hash Eintragen:

          <Location /kamera>
              RequestHeader set Authorization "Basic RGVpbkJlbnV0emVyOkRlaW5QYXNzd29ydA=="
          </Location>
          ProxyPass "/kamera" "http://192.168.1.9/kamera/cgi-bin/snapshot.cgi?loginuse=admin&loginpas=admin"
          

          Hinweis:

          Ob "?loginuse=admin&loginpas=admin" noch notwendig sind kann ich nicht wissen.

          Bitte teile mit, ob es geholfen hat. Hier ging es (mit einer geschützten Location).