Get-Request über eigenen Server an zB www.web.de unterbinden

Alles, was den Apache betrifft, kann hier besprochen werden.

Get-Request über eigenen Server an zB www.web.de unterbinden

Postby FelixAdam » 10. February 2011 21:57

N'Abend Forum,


mir ist vorhin aufgefallen, dass eine Anfrage wie "GET http://www.web.de/ HTTP/1.1" mit 200 von meinem Server quittiert wird, der aber nicht unter dieser Adresse zu erreichen ist. Ich würde das gerne unterbinden, da das unnötig Traffic erzeugt (wenn auch derzeit wenig) und natürlich andere Admins sich fragen (könnten), warum mein Server ständig Anfragen stellt. Ferner könnte das auch eine Sicherheitslücke sein, oder?
Gibt es ein Modul, welches so etwas verhindert oder weiß jemand, wie ich dem Indianer auf andere (vielleicht einfache) Art und Weise GET auf meinen Server beschränken kann?

Mein Server läuft mit Debian lenny. Installiert ist der Apache-Webserver in der Version 2.2.9-10+lenny9 mit PHP 5 in der Version 5.2.6.

Danke im Voraus und ein schönes Wochenende.
FelixAdam
 
Posts: 2
Joined: 10. February 2011 21:40

Re: Get-Request über eigenen Server an zB www.web.de unterbi

Postby FelixAdam » 15. February 2011 22:01

Die Antworten von meinem (richtigen) Server auf Anfragen aus dem Internet sehen wie folgt aus:

85.108.52.51 - - [08/Feb/2011:22:42:27 +0100] "GET http://www.baidu.com/ HTTP/1.1" 200 24 "-" "-"

Das sieht aus, als wenn der Server eine gültige Anfrage erhalten hat. Um nun herauszufinden, ob diese Anfrage rausgeht, habe ich zwei Indianer auf verschiedenen Rechnern aufgesetzt und mit folgendem Skript solch eine Anfrage gestartet.

Code: Select all
<?php

$host = "http://192.168.1.30:8080/";
$gateway = "192.168.1.35";
$port = 80;

$timeout = 30;

$data = "";
 
$fp = fsockopen($gateway, $port, $errno, $errstr, $timeout);
if($fp)
{
   $request = "GET ".$host." HTTP/1.1\r\n";
   $request.= "Host: ".$gateway."\r\n";
   $request.= "User-Agent: Test-Agent/5.0\r\n";
   $request.= "Connection: Close\r\n\r\n";
 
   fwrite($fp, $request);
   while (!feof($fp))
   {
      $data .= fgets($fp, 128);
   }
   fclose($fp);
   echo $data;
}
else
{
   echo "ERROR: ".$errstr;
}

?>


Hier wird versucht, den Indianer unter $host zu erreichen, indem diese Anfrage an den "echten" Server gestellt wird. Auch hier ergibt sich dasselbe Bild wie oben im Access-Logfile des Servers unter 192.168.1.35:
192.168.1.30 - - [15/Feb/2011:22:46:46 +0100] "GET http://192.168.1.30:8080/ HTTP/1.1" 200 24 "-" "Test-Agent/5.0"

Im Logfile des Servers unter 192.168.1.30 taucht aber nischts von 192.168.1.35 auf. Warum wird dann eine 200 geliefert?
FelixAdam
 
Posts: 2
Joined: 10. February 2011 21:40

Re: Get-Request über eigenen Server an zB www.web.de unterbi

Postby Nobbie » 16. February 2011 00:32

Servernamen werden von Apache ignoriert oder als VirtualHost behandelt (hängt der Konfiguration ab). Wenn Du willst, dass nur bestimmte Hostnamen akzeptiert werden, dann musst Du diese Namen als VirtualHosts deklarieren und im Default Fall (= erster VirtualHost) einen Fehler generieren (beispielsweise mit "deny from all").
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 7 guests