WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   Website-Präsentation: Externe Links abfangen (http://www.wcm.at/forum/showthread.php?t=111428)

paux 08.10.2003 13:25

Website-Präsentation: Externe Links abfangen
 
Hallo!

(Hab gerätselt was das passende Forum sein könnte, aber vermutlich wird es im Endeffekt um Apache & BIND gehen)

Eine Website soll im Rahmen einer Veranstaltung präsentiert werden. Dafür wird ein lokaler Server aufgestellt, und ein paar Laptops projezieren alles über Beamer auf eine Wand. Eventuell gibt es auch eine Surfstation.

Ich würde das so machen, daß in den C:\WINNT\system32\drivers\etc\hosts der Clients ein Eintrag
PRIVATE_IP_DES_SERVERS www.website.tld
hinzugefügt wird, und der Apache die Website als VirtualHost www.website.tld serviert. Das funktioniert auch prächtig.

Nur wollen wir jetzt, daß beim Aufruf von anderen Websites eine schöne Seite kommt a la "Sie haben eine externe Seite aufgerufen, bla bla...", d.h. keine Fehlermeldung vom Explorer. Jetzt ist die Frage, wie der Server diese Anfragen abfangen soll.

Wie kann ich es schaffen, daß sämtliche Hostnamen auf die private IP des Servers gemappt werden? Geht das auch ohne Nameserver? Mir ist auch noch nicht ganz klar, wie sich der Default-VirtualHost für beliebig viele ServerAliases angesprochen fühlen soll.

Wäre dankbar für Hinweise!

lg paux

spunz 08.10.2003 18:46

wie wäre es mit nem kiosk modus wo du nur eine fix vorgegebene website hinterlegst. es gibt keine möglichkeit den browser zu verlassen oder eine andere site zu besuchen.

es gibt einige scirpte dafür (leider auf die schnelle nicht wiedergefunden), bzw hat kde 3.x sowas schon eingebaut.

paux 09.10.2003 12:36

Zitat:

Original geschrieben von spunz
wie wäre es mit nem kiosk modus wo du nur eine fix vorgegebene website hinterlegst. es gibt keine möglichkeit den browser zu verlassen oder eine andere site zu besuchen.
Doch, wenn ein externer Link angeklickt wird. :p

Ich werde es wohl doch so machen, daß ich in den Quelltexten der lokalen Kopie am Server alle Links zu http://* durch einen entsprechenden lokalen Link ersetze, der den gewünschten Hinweis enthält. Dürfen halt keine URLs direkt eingegeben werden.

man sed

lg paux

sagi 09.10.2003 13:45

Zitat:

Mir ist auch noch nicht ganz klar, wie sich der Default-VirtualHost für beliebig viele ServerAliases angesprochen fühlen soll.
Wenn es der Default-VirtualHost ist, dann kommst du da sowieso mit jedem Hostnamen hin. drum ist es ja Default. ;) das ist die Site, die auch kommt, wenn du den Server nur ueber die IP ansprichst.

Dort erstellst du halt dann einfach ein 404 error Doc.

Aber so wie ich das sehe hast du noch eine andere Moeglichkeit:

Du verwendest einen Proxy Server. Dadurch ist das Problem mit dem DNS behoben. Dieser Proxy server liefert dann eifach die entsprechende
Zitat:

"Sie haben eine externe Seite aufgerufen, bla bla...",
Site als Error Doc. Nur die Seiten, auf die er von deinem Webserver zugreifen kann wreden tatsaechlich ausgeliefert.

mfg

c.

paux 09.10.2003 14:24

Zitat:

Original geschrieben von sagi
Dort erstellst du halt dann einfach ein 404 error Doc.
Ginge auch, ich wollte zunächst einfach ein Redirect auf / machen.

Zitat:

Du verwendest einen Proxy Server. Dadurch ist das Problem mit dem DNS behoben. Dieser Proxy server liefert dann eifach die entsprechende Site als Error Doc. Nur die Seiten, auf die er von deinem Webserver zugreifen kann wreden tatsaechlich ausgeliefert.
Klingt verlockend! Endlich ein Grund mich mit Squid zu beschäftigen! ;)
Bringe ich das auf ein und demselben Rechner unter, d.h. der Proxy fragt localhost:http? Den http sperr ich dann halt von außen. Wird schon gehen, ran an die Doku.

TAL!

lg paux

sagi 10.10.2003 01:39

ja. du kannst das auf dem selben Rechner betreiben, da ja der Proxy den Port 3128 verwendet und der Server den Port 80 (im Normalfall)

aber du musst darauf achten, dass localhost nicht in der noproxy Liste im Browser eingestellt ist. Das kommt manchmal per defautl vor.

mfg

c.

paux 13.10.2003 13:43

Hallo!

Funktioniert wunderbar!
Man muß http am Server nicht sperren, es genügt den Server als Proxy beim Client-Browser einzutragen. ACL noch setzen, daß Clients allowed sind, und fetzt schon.

Danke!

lg paux

paux 30.10.2003 15:13

... oder auch nicht :(

Das geht nur solange, solange irgendein DNS erreichbar ist der sagt "Den Host gibt's nicht". Hängen nur der Server und ein Client zam, wird ewig auf eine DNS-Antwort gewartet.

Werd mich also doch mit Bind beschäftigen müssen. Weiß wer ob der DNS dann automatisch bei den ihm unbekannten Hosts sagt "Den gibt's nicht", oder versucht der dann auch ewig eine Antwort zu bekommen?

lg

sagi 30.10.2003 17:36

du hast einen Wert "dns_timeout". Der ist per default auf 5 Minuten... vielleicht geht es, wenn du das runter stellst... zB auf ca 0 :)

mfg

c.

paux 30.10.2003 17:56

Zitat:

Original geschrieben von sagi
zB auf ca 0 :)
Na du bist mir ja einer. Präsentierst mir da einfach so eine funktionierende Lösung. Jetzt hab ich garkeinen Grund mehr, das Kommando
Code:

find -depth -exec grep 'href="http://' {} \; | perl -ne \
'if ($_ =~ /href="http:\/\/(.*?)["\/]/) { print $1."\n"; }' \
| sort | uniq > hostnames

zu vereinfachen :)

Ich schulde dir was.

lg paux


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag