Horst Nogajski: Refererübertragung: lokal nach draussen, Apache

Hallo Ihr alle,

habe folgende Situation. Eine Apacheinstallation, die von lokalen Rechnern zugänglich ist (Port 80), und alle Anfragen nach Draussen an einen anderen Proxy leitet. Jetzt habe ich schonmal die Übermittlung von 'Proxy-via-Headers' ausgeschaltet (per: block). Aber unschönerweise werden per HTTP-Referer noch alle meine (teilweise recht schwachsinnigen  :)) lokalen Dateinamen übertragen.

Kann ich das innerhalb des (lokalen) Apaches abschalten?
Wenn ja, wo?

Viele Grüße,
Horst

  1. Hi Horst,

    habe folgende Situation. Eine Apacheinstallation, die von lokalen
    Rechnern zugänglich ist (Port 80), und alle Anfragen nach Draussen an
    einen anderen Proxy leitet.

    ich verstehe nicht recht, was Du damit meinst.
    Der Apache ist doch kein Proxy-Server im eigentlichen Sinne?
    (Er _kann_ so etwas auch, via mod_proxy, aber ...)

    Jetzt habe ich schonmal die Übermittlung von 'Proxy-via-Headers'
    ausgeschaltet (per: block). Aber unschönerweise werden per HTTP-
    Referer noch alle meine (teilweise recht schwachsinnigen  :))
    lokalen Dateinamen übertragen.

    Auch das verstehe ich nicht. Referrer werden nicht von einem Server,
    sondern von einen Client übertragen ...

    Kann ich das innerhalb des (lokalen) Apaches abschalten?

    Der Apache kann HTTP-Header filtern (mod_headers). Aber ich verstehe
    nicht wirklich, was Du eigentlich tust und was Dein Problem ist.

    Ich glaube, Du wirst uns noch eine ganze Menge Informationen Deines
    Szenarios nachliefern müssen ...

    Viele Grüße
          Michael

    1. Hallo Michael,

      Ich glaube, Du wirst uns noch eine ganze Menge Informationen Deines
      Szenarios nachliefern müssen ...

      Du bist ja nur neugierig, was ich hier wieder verzapft habe  ;) ...

      Na gut:

      in der httpd.conf (u.A.) :

      LoadModule proxy_module modules/mod_proxy.so

      <IfModule mod_proxy.c>
          ProxyRequests On

      ProxyRemote http  http://..IP..:Port
          ProxyRemote ftp   http://..IP..:Port

      NoProxy         IP's

      <Directory proxy:*>
              Order deny,allow
       Deny from all
              Allow from IP-1 IP-2
          </Directory>

      #
          # Enable/disable the handling of HTTP/1.1 "Via:" headers.
          # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
          # Set to one of: Off | On | Full | Block
          #
          ProxyVia Block

      </IfModule>

      So habe ich eine sehr einfache Handhabe, (z.B. bei bestimmten Praktikanten, = schlechte Erfahrung gemacht) den Praktikantenrechner vom externen Netz fern zu halten, bevor die mir hier alles verseuchen ;)

      Die als externer Proxy angegebene IP spricht einen SoftwareRouter an, der die Verbindung ins Netz herstellt, (oder auch nicht).
      So kann man halt immer auf alle lokalen Dateien und virtuelle Hosts zugreifen, aber nicht nach draussen gelangen.

      Wenn ich nun von einer lokalen Datei (meineLinkListe.htm) die auf einem lokalen virtuellen Host (lokalerhorst) liegt, irgendeine URL im Netz aufrufe, steht dort im AccesLog unter Referer: http://lokalerhorst/meineLinkListe.htm
      Und das finde ich nicht so schön.

      Hoffe das reicht an Info.

      Viele Grüße,
      Horst

      1. Hi Horst,

        <IfModule mod_proxy.c>
            ProxyRequests On
            ProxyRemote http  http://..IP..:Port
            ProxyRemote ftp   http://..IP..:Port

        Aha - Du leitest also Anforderungen an Deinen Apache
        an andere Proxy-Server weiter. Aber was bringt das?

        1. Wieso nutzt Du nicht einen richtigen Proxy-Server?

        2. Was hindert Deine Praktikanten, in ihren Browser
           denjenigen Proxy-Server einzutragen, zu dem Dein
           Apache durchroutet ...

        <Directory proxy:*>
                Order deny,allow
        Deny from all
                Allow from IP-1 IP-2
            </Directory>

        ... um genau diesen Filter hier zu umgehen?

        ProxyVia Block

        Und dann auch noch transparent ... pfui! ;-)

        Die als externer Proxy angegebene IP spricht einen
        SoftwareRouter an,

        Wie? Einfach als Proxy? Was ist, wenn ich dessen
        Adresse in meine Browser-Konfiguration eintrage?

        Wenn ich nun von einer lokalen Datei
        (meineLinkListe.htm) die auf einem lokalen
        virtuellen Host (lokalerhorst) liegt, irgendeine
        URL im Netz aufrufe, steht dort im AccesLog unter
        Referer: http://lokalerhorst/meineLinkListe.htm
        Und das finde ich nicht so schön.

        Yep, solche URLs habe ich in meinem Server-Log auch
        schon gefunden.

        Wenn Du Header filtern willst, wäre "Header unset"
           (http://httpd.apache.org/docs/mod/mod_headers.html#header)
        eigentlich das Mittel Deiner Wahl. Ich weiß allerdings
        nicht, ob sich das mit mod_proxy verträgt ... letzterer
        ist halt überhaupt ein unsicherer Kantonist, Apache
        1.3.24 war wegen mod_proxy-Bugs für mich unbenutzbar.

        Viele Grüße
              Michael

        1. Hallo Michael,

          1. Wieso nutzt Du nicht einen richtigen Proxy-Server?

          Gibts sowas für Windows, das gut funktioniert, leicht verständlich ist, und am besten nix kostet? :)

          1. Was hindert Deine Praktikanten, in ihren Browser
               denjenigen Proxy-Server einzutragen, zu dem Dein
               Apache durchroutet ...

          Ihr Unvermögen, ihre Unkenntnis, mangelndes Interesse an fast allem das mit selbsständigem Denken zu tun hat, ...,
          ich könnte eine ellenlange Liste hier aufführen ;)

          Die als externer Proxy angegebene IP spricht einen
          SoftwareRouter an,

          Wie? Einfach als Proxy? Was ist, wenn ich dessen
          Adresse in meine Browser-Konfiguration eintrage?

          Dann wärste schon draussen :)

          (Wenn das einer der Praktikanten schaffen würde, hätte ich auch nicht wirklich was dagegen. Dann würde er wenigstens Eigeninitiative zeigen. Er müßte sich nur an die Abmachung halten, keine zweifelhaften Seiten zu besuchen, oder irgendwelchen Schei.. runterzuladen. Aber es ist auch nicht so, das ich hier die Praktikanten schlecht behandle, erstens nehme ich fast kaum noch Praktikanten, weil einfach zu nervig. Und 2. wenn die verstehen, das sie bestimmte Dinge tun dürfen und andere lassen müßen, dann können die auch surfen bis sie umfallen, wenn nix anderes zu tun ist. Dann hab' ich wenigstens meine Ruhe ;) )

          Wenn Du Header filtern willst, wäre "Header unset"
             (http://httpd.apache.org/docs/mod/mod_headers.html#header)
          eigentlich das Mittel Deiner Wahl. Ich weiß allerdings
          nicht, ob sich das mit mod_proxy verträgt ... letzterer
          ist halt überhaupt ein unsicherer Kantonist, Apache
          1.3.24 war wegen mod_proxy-Bugs für mich unbenutzbar.

          Habe ich eben probiert, scheint nicht zu funktionieren.

          In httpd.conf habe ich auf mainserver-ebene folgende Eintragungen probiert (beide zusammen und auch einzeln):

          Header unset REFERER
              Header unset HTTP_REFERER

          und dann auf meiner Website draussen ein phpinfo aufgerufen.
          Leider stand der Referer immer drin.

          Viele Grüße,
          Horst

          1. Hi Horst,

            eigentlich das Mittel Deiner Wahl. Ich weiß allerdings
            nicht, ob sich das mit mod_proxy verträgt ...

            Habe ich eben probiert, scheint nicht zu funktionieren.

            Ich habe es irgendwie befürchtet. Da wird wohl
            doch ein separater Proxy-Server her müssen.

            In httpd.conf habe ich auf mainserver-ebene folgende Eintragungen probiert (beide zusammen und auch einzeln):
                Header unset REFERER
                Header unset HTTP_REFERER

            Also der Header heißt definitiv "Referer"; laut Apache-
            Doku soll die Schreibweise nicht case-sensitiv sein.

            Hm ...

            Ratlose Grüße
                    Michael