Seite 1 von 1

Apache-Konfig: Verbot einer Server-Hosts

Verfasst: 26.07.2013 10:16
von Wuppi
Hi

EDIT: hat sich erledigt. virtual host ...


mein Testsystem steht zu hause ... und ist aus dem Netz erreichbar. Ich möchte hier jetzt aber einschränken WIE das System erreichbar ist.

Erreichbar ist der Server unter:
a) IP-Adresse meines Internet-Providers
b) Host-Adresse die mir mein Internet-Provider gibt
c) myFritz-Host

d) dyndns.org
e) hierbinichzuhause.meinedomain.de (cname auf myfritz-Host)
f) Lokaler Host (host, host.lan)
g) Lokale IP-Adresse


Jetzt möchte ich aber ausschließlich über
d, e (für Zugriff aus dem Internet)
f, g (halt wenn ich im LAN arbeite)

erreichbar sein.

Wie kann ich sowas konfigurieren?

Per php kann ich sowas ja realisieren ich dem ich den Host abfrage. Würde aber bedeuten das ich in JEDER index.php diese "host.php" includen müsste. Ähnliches mach ich um auf der "Startseite" zwischen LAN und WAN-Content zu unterscheiden (gewisse Auswahloptionen, bzw. Anzeigen soll es nicht geben, wenn aus dem Internet zugriffen wird)

Bei Zugriff auf die "illegalen" Host, entweder 403 oder noch besser: Umleitung auf ein Ziel meiner Wahl ;)

Gruß
Wuppi

Re: Apache-Konfig: Verbot einer Server-Hosts

Verfasst: 26.07.2013 19:47
von cYbercOsmOnauT
Es wäre für andere die ein gleiches Problem haben/bekommen bestimmt hilfreich wenn Du Deine Lösung wenigstens Stichpunktartig aufschreibst und nicht nur ein Stichwort "virtual host" ablässt. ;)

Re: Apache-Konfig: Verbot einer Server-Hosts

Verfasst: 06.08.2013 11:23
von Wuppi
Hi

sorry ;) klar - über sowas rege ich mich auch immer auf ;)

Also ich habe 2 Virtual-Hosts-Einträge in die Konfig gepappt:

Code: Alles auswählen

<VirtualHost *:80>
# Alle nicht gültigen Hosts, IPs
ServerName ILLEGAL
DocumentRoot H:/Webserver-Daten/www/redirect
#Redirect 302 / http://www.nsa.gov
</VirtualHost>

<VirtualHost *:80>
ServerName offizielle.domain.tld
ServerAlias offiziel.dyndns.org offizielerLanName 192.168.0
DocumentRoot H:/Webserver-Daten/www/
</VirtualHost>
Die Reihenfolge scheint wohl wichtig zu sein. Versteh ich aber ehrlich gesagt nicht. Andere Reihenfolge fänd ich logischer. Alles was nicht matched, soll vom 2. VHost abgefangen werden ... aber jetzt isses: alles was nicht mit dem 2. Vhost matched, wird vom 1. Vhost abgefangen. Kann mir das jemand erklären?

Virtual Host 1:
Dieser ist für User die meinen IPs die sie im Log gefunden haben, im Browser zu tippen. Wer also mit meiner WAN-IP, WAN-Host diesen Webserver connecten möchte, landet im Verzeichnis "redirect" (wo bissel was passiert - egal - kann man mit machen was man will). Alternativ könnte ich auch den redirect 302 aktivieren - so wird der Ungewünschte User gleich wo hingeleitet ...

Der ServerName ist für das Logfile ... so kann ich auswerten (bin so nen Statistik-Junkie ...) wieviele Hits ich auf "illegal" bekomme und wieviele auf "legal". Hat eigentlich aber eine Funktion - ist also nicht nur "beschreibend"!

Virtual Host 2:
Unter Servername steht der offizielle Host - der Host den ich kommuniziere an Test-Personen - zudem ist das der Logfile-Name
ServerAlias sind halt die Aliase die ebenfalls für den Server genutzt werden dürfen. Mein Dyndns-Host, meine LAN-IP, mein LAN-Hostname. ServerAlias steht so ebenfalls in meinem Log. Ich sehe also das es ein offizieller Zugriff über Host xyz ist.

Bisher klappt es ganz gut. Wenn hier aber jemand ein Fehler entdeckt - darf er mich gerne noch tunen ;) Vorallem da ich ggf. noch einen dritten Vhost einfügen müsste ... soweit bin ich aber noch nicht. Jetzt wo ich weiß das ich quasi unendlich Hosts habe ergibt das ganz viele neue Möglichkeiten als nur mit einem dyndns-Account (der übrigens immer noch zum Null-Tarif läuft - ohne Webseitenaufruf zu reaktivieren etc.)

Grüße

Re: Apache-Konfig: Verbot einer Server-Hosts

Verfasst: 19.09.2013 21:09
von Pyramide
Wuppi hat geschrieben:Bisher klappt es ganz gut. Wenn hier aber jemand ein Fehler entdeckt - darf er mich gerne noch tunen ;) Vorallem da ich ggf. noch einen dritten Vhost einfügen müsste ... soweit bin ich aber noch nicht.
Due to the fact that http://www.example.com is first in the configuration file, it has the highest priority and can be seen as the default or primary server. That means that if a request is received that does not match one of the specified ServerName directives, it will be served by this first VirtualHost.
Sollte also auch bei drei oder mehr Hosts noch funktionieren.

Da dein Server laut a) und g) über zwei IP-Adressen erreichbar ist noch ein Tipp: Falls du sicherheitskritische Tools ausschließlich von intern erreichbar haben möchtest(*), kannst du die Namensbasierten Virtualhosts übrigens auch noch mit IP-basierten kombinieren, indem du den Stern bei <Virtualhost *:80> durch die interne oder externe IP-Adresse des Servers ersetzt. Siehe dazu z.B. die verschiedenen Beispiele unter http://httpd.apache.org/docs/2.2/vhosts/examples.html.

(*) Der Servername bzw. "Host" Header alleine kann nämlich ganz einfach gefälscht werden - sogar ganz ohne "kriminelle Zusatzsoftware" durch einen einfachen Eintrag in der hosts-Datei bestehend aus deiner externen IP-Adresse und einem internen Hostnamen.