Refererübertragung: lokal nach draussen, Apache
Horst Nogajski
- webserver
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
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
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
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
Hallo Michael,
- 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? :)
- 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
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