TS: Universal-Reverse-Proxy mit PHP und Apache

Hallo und guten Tag,

ich saß da vorhin mal wieder, eingesperrt in einem Proxy-Käfig und habe mich geärgert, dass ich bestimmte Seiten nicht erreichen konnte... An den Einstellungen der zur Verfügung stehenden PCs kann ich auch nichts ändern. Die üblichen öffentlichen Proxies/Reverse-Proxies, die über Port 80 laufen, waren sinnfälligerweise selbstverständlich auch gesperrt.

Da kam mir die Frage in den Sinn: wie könnte ich mit Hilfe von PHP und einem Apache-Server auf einfachste Weise einen eigenen Vermittlungsdienst für mich bauen? Das müsste dann ja vermutlich ein per Request konfigurierbarer Reverse-Proxy sein, der sein Ergebnis an PHP weitergibt, damit ich in ein Request-Frame einbetten kann.

Gibt's da vielleicht schon 'was, von mir aus auch von Bosch? ;-)

Grüße
TS

--
es wachse der Freifunk
http://freifunk-oberharz.de
  1. Kommst Du mit ssh raus? Dann gäbe es eine einfache Lösung.

    1. Hallo und guten Tag J.,

      Kommst Du mit ssh raus? Dann gäbe es eine einfache Lösung.

      Ja. Aber das würde vermutlich im Sinne der Aufgabenstellung zu weit führen. Für mehr X

      Grüße
      TS

      --
      es wachse der Freifunk
      http://freifunk-oberharz.de
      1. Ja. Aber das würde vermutlich im Sinne der Aufgabenstellung zu weit führen. Für mehr X

        Mit Linux geht das so:

        #! /bin/sh
        ssh -N -D2000 dynamische-adresse.example.com &
        procId=$!; # siehe Zeile 5
        /usr/bin/firefox -new-instance -p Privat 'http://www.fastix.org/netztools/?action=whois'; # eine Zeile ab /usr/bin/firefox
        kill $procId; # Beendet ssh
        

        Im privaten Konto ist dann localhost auf Port 2000 als Socks-Host für alles eingetragen und Socks Version 5, externe DNS-Auflösung aktiviert.

        Ich habe das gebraucht um Online-Banking vom Ausland aus machen zu können. Meine freundliche Bank sperrt das Online-Banking nach erfolgreichen Logins aus dem Ausland... Und die Franzosen sind übrigens mit Netzsperren ebenfalls "recht großzügig" ... (z.B. sind einige "deutsche" Google-Dienste in Frankreich gesperrt - wohl zur Durchsetzung von "liberte"). Der anwesende Teil des französischen Volks hat mir sehr interessiert zugesehen, wie ich diese merkwürdigen Gesetze gebrochen habe.

        1. Lieber Jörg,

          #! /bin/sh
          ssh -N -D2000 dynamische-adresse.example.com &
          procId=$!; # siehe Zeile 5
          /usr/bin/firefox -new-instance -p Privat 'http://www.fastix.org/netztools/?action=whois'; # eine Zeile ab /usr/bin/firefox
          kill $procId; # Beendet ssh
          

          [...] Ich habe das gebraucht um Online-Banking vom Ausland aus machen zu können. [...] Der anwesende Teil des französischen Volks hat mir sehr interessiert zugesehen, wie ich diese merkwürdigen Gesetze gebrochen habe.

          krass!

          Liebe Grüße,

          Felix Riesterer.

  2. Erstmal "Reverse-Proxy" ist hier der falsche Begriff!

    Proxy:

    client[s] <-> localnet[s] <-> proxy <-> INTERNET <-> webserver[s]

    "Reverse Proxy"

    client[s] <-> localnet[s] <-> INTERNET <-> proxy [ <-> localnet/INTERNET ] <-> webserver[s]

    Einfacher PHP-Proxy:

    Das hier bedarf aber noch einer Absicherung, z.B. mit htaccess: https://github.com/joshdick/miniProxy

    1. Hallo und guten Tag,

      Erstmal "Reverse-Proxy" ist hier der falsche Begriff!

      Glaub ich nicht.

      Proxy:

      client[s] <-> localnet[s] <-> proxy <-> INTERNET <-> webserver[s]

      "Reverse Proxy"

      client[s] <-> localnet[s] <-> INTERNET <-> proxy [ <-> localnet/INTERNET ] <-> webserver[s]

      Der Aufruf muss "ganz normal" auf eine Domain auf meinem Server laufen. Diese muss dann die angeforderte Domain in einem Frame, IFrame oder eingestanzt in ein Div anzeigen.

      Also arbeitet mein Apache als Reverse-Proxy.

      Grüße
      TS

      --
      es wachse der Freifunk
      http://freifunk-oberharz.de
      1. Hallo TS,

        Erstmal "Reverse-Proxy" ist hier der falsche Begriff!

        Glaub ich nicht.

        Ich schon. Als Reverse Proxy wird ein Proxy bezeichnet, der zwischen Internet und Webserver sitzt. Seine Aufgaben sind load balancing, caching, das abfragen von application servern abhängig vor einer URL, usw, pp.

        Der Aufruf muss "ganz normal" auf eine Domain auf meinem Server laufen. Diese muss dann die angeforderte Domain in einem Frame, IFrame oder eingestanzt in ein Div anzeigen.

        Was du hier beschreibst (dein Apache holt für dich Seiten aus dem Internet) ist ein normaler Proxy.

        Edit: übrigens wird diese Technik auch zur Umgehung restriktiver Internet-Zensur benutzt. Ich habe ein paar koreanische Bekannte, und die erzählten von einem Proxy-Netzwerk, dass genau so funktioniert.

        LG,
        CK

        1. Hallo und guten Tag,

          Erstmal "Reverse-Proxy" ist hier der falsche Begriff!

          Glaub ich nicht.

          Ich schon. Als Reverse Proxy wird ein Proxy bezeichnet, der zwischen Internet und Webserver sitzt. Seine Aufgaben sind load balancing, caching, das abfragen von application servern abhängig vor einer URL, usw, pp.

          Die Anfrage kommt von außen und wird auch nach außen beantwortet. Das ist eigentlich ein ganz normaler Webserver. Nachgeschaltet ist aber ein Proxy, der für den Webserver die Seiten von außen nach innen transportiert, die URLs umschreibt und dann die Seiten wieder nach innen an den Wenserver abgibt, der die Antwort dann wieder nach außen schickt zum Client.

          Aber egal, ob Forward oder Reverse, wenn ich von deinem Wissen um ein solches Modul profitieren könnte, müsste ich es nicht selber erfinden ;-)

          Grüße
          TS

          --
          es wachse der Freifunk
          http://freifunk-oberharz.de
          1. Hallo TS,

            Die Anfrage kommt von außen

            Irrelevant. Provider-Proxies sind auch aussen und kommunizieren von aussen nach aussen.

            Aber egal, ob Forward oder Reverse, wenn ich von deinem Wissen um ein solches Modul profitieren könnte, müsste ich es nicht selber erfinden ;-)

            Wenn es ein Modul sein muss, bleibt dir nur `mod_proxy'. Davon würde ich aber abraten.

            Ansonsten gibt es zahlreiche Proxy-Scripte, etwa https://www.php-proxy.com (das scheint zur Zeit beliebt zu sein, aber ich habe da auch keinen echten aktuellen Einblick). Der Bekannte, von dem ich sprach, hat wohl https://www.jmarshall.com/tools/cgiproxy/ benutzt, aber das it auch schon ein paar Jahre her.

            LG,
            CK

  3. Hallo TS,

    ich saß da vorhin mal wieder, eingesperrt in einem Proxy-Käfig und habe mich geärgert, dass ich bestimmte Seiten nicht erreichen konnte...

    Das verstehe ich. Ich frage mich, wie hier die rechtliche Situation aussieht. Mein Chef möchte auch immer, dass ich sowas bei uns in der Firma einrichte. Bisher habe ich mich immer erfolgreich dagegen wehren können, aber er wird dringlicher. Seine Argumentiation ist, dass er sich rechtlich absichern muss und will; plakatives Beispiel: niemand sollte KiPo über das Firmen-Internet beziehen können, aus rechtlichen Gründen.

    Haftet der AG, wenn ein MA Mist baut im Internet? Ich wäre verwundert, wenn das der Fall sein sollte.

    LG,
    CK

    1. Hallo,

      Haftet der AG, wenn ein MA Mist baut im Internet?

      nach meiner Auffassung nicht, ganz im Gegenteil: Wenn das, was der Mitarbeiter da angestellt hat, nicht durch seine dienstliche Aufgabe abgedeckt war, müsste der Arbeitgeber ihm sogar noch private Nutzung des Internet (während der Arbeitszeit?) vorwerfen. Und das ist in vielen Firmen nicht erlaubt, auch wenn es in geringem Umfang oft stillschweigend geduldet wird.

      Ich wäre verwundert, wenn das der Fall sein sollte.

      Ich auch. Aber das muss ja nichts heißen.

      Ciao,
       Martin

      --
      Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
      - (frei übersetzt nach Douglas Adams)
    2. Seine Argumentiation ist, dass er sich rechtlich absichern muss und will; plakatives Beispiel: niemand sollte KiPo über das Firmen-Internet beziehen können, aus rechtlichen Gründen.

      "German Angst"

      Diese Angst ist "typisch deutsch" und völlig unbegründet.

      Allerdings könnte ein Proxy auch Vorteile bringen. Einmal natürlich um den Zugang zu entlasten wenn alle die gleiche Seite abrufen. Aber Werbeblocker wie Privoxy und die von Blocklist gepflegte IP-Liste bringen ja auch ein wenig "Ruhe" ins Netzwerk, weil die durch Angriffe auf Dienste bekannt gewordenen Hosts "vermutlich" auch passiv auf Gelegenheit zu "Drive-By"-Angriffen warten. Der Angreifer wäre ja blöd, wenn er den gekaperten oder gekauften Server nicht vollständig nutzt...