Apache Konfiguration VHosts

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,
    ich habe einen Apache Webserver laufen. Dort habe ich mehrere VirtualHosts konfiguriert. Der "Main" DocumentRoot ist /var/www. Dort liegen dann in Unterverzeichnissen die DocumentRoots für die jeweiligen VHosts (z.B. /var/www/luma86.com und /var/www/sub.luma86.com). Jetzt habe ich folgendes Problem: Der Einfachheit halber habe ich eine Wildcard gesetzt, anstatt alle Subdoamins manuell auf meinen Server aufzuschalten. Zusätzlich habe ich eine 000-default Konfiguration angelegt, um jeglichen Traffic, der nicht von einem der VHosts abgedeckt wird, auf eine Standartseite umzuleiten. Das ist die index.html im "Main" DocumentRoot (/var/www) die einen "Nicht gefunden" Hinweis anzeigt.

    Nun kommt das eigentliche Problem: Wenn ein Besucher nun über eine ungültige Subdomain oder die Server-IP im DocumentRoot /var/www landet, kann er durch das Anhängen von z.B. luma86.com an die IP/ungültige URL auf den Inhalt des Ordners luma86.com zugreifen. Und genau das möchte ich verhindern! Ich möchte den "Main" DocumentRoot praktisch als eine Art "Jail" konfigurieren. Wer dort landet kann eben nicht weiter machen, nicht in irgendwelche Ordner navigieren oder ähnliches.

    Ich hoffe was ich erreichen will, habe ich verständlich erklärt :)

    Gruß,
    LuMa

    Einmal editiert, zuletzt von LuMa86 (17. Februar 2016 um 15:59)

  • Danke für die Antwort. Aber irgendwie haut das nicht hin. Bzw. ich bin mir noch unschlüssig wohin mit der Verzeichnisdirektive? In die VHost Konfiguration 000-default.conf? Denn wenn ich das dort mit reinschreibe kann ich auf luma86.com auf über 111.111.111.111/luma86.com zugreifen. Zwar werden die Bilder/CSS/JS Dateien nicht korrekt mitgeladen, aber Apache liefert mir die index.html.

    Einmal editiert, zuletzt von LuMa86 (17. Februar 2016 um 16:32)

  • Um das ganze nochmal etwas ausführlicher zu beleuchten, mal ein praxisnahes Beispiel (im Prinzip nur Domain und IP geändert):

    Es läuft ein WebServer. Aufgeschaltet ist dort eine Domain, sowie eine eine WildCard für die SubDomains.
    IP: 6.6.6.6
    Domain: luma86.com

    Document Root des Servers:
    /var/www/html

    Zusätzlich möchte ich auf 2 SubDomains reagieren:
    sub1.luma86.com
    sub2.luma86.com

    Daraus ergibt sich folgende Ordnerstruktur:

    /var/www/html
    |_ luma86.com
    |_ index.html
    |_ sub1.luma86.com
    |_ index.html
    |_ sub2.luma86.com
    |_ index.html
    |_ index.html

    Für diese 3 Domains habe ich je 2 VHost Konfigurationen angelegt (HTTP und HTTPS). Der Document Root dieser VHosts ist jeweils der Domainname selbst. Und das funktioniert auch. Gebe ich im Browser die gewünscht Domain ein, sehe ich auch die richtige Seite. Das geht schonmal!
    Problematisch wird es nun, wenn ich im Browser eine ungültige Subdomain oder die IP eingebe. Denn dann lande ich in meinem "Haupt" Document Root (/var/www/html) und kriege die dort abgelegte index.html zu sehen. Das ist ja auch richtig so. Nur kann ich nun von dort aus in die Ordner der Domains navigieren, was ich aber nicht möchte! Das ganze funktioniert, indem ich den Ordnernamen einfach an die IP/ungültige Addresse anhänge: 6.6.6.6/luma86.com sowie http://blabla.luma86.com/luma86.com liefern mir die index.html aus dem Ordner /var/www/html/http://luma86.com/index.html.

    Das ganze scheint auf den ersten Blick nicht so schlimm zu sein. Kritisch wird es erst, wenn ich eine Anwendung hoste, die einen eigenen public Ordner besitzt und darüber ihre Konfiguration ablegt. Im Falle von Laravel (einem PHP Framework) würde die Ordnerstruktur in etwa so aussehen (stark vereinfacht):

    /var/www/html
    |_ laravel.luma86.com
    |_ config
    |_ app.php
    |_ public
    |_ index.php
    |_ .env

    Natürlich würde man den Document Root in der VHost Konfiguration auf eben diesen Public Ordner setzen (/var/www/html/http://laravel.luma86.com/public), aber würde das nicht trotzdem die übergeordneten Ordner "entblößen"? Das heißt über 6.6.6.6/laravel.luma86.com könnte ich mir ja dann die Konfiguration anschauen, oder?!


    So. Ich hoffe das Problem wird so etwas anschaulicher und verständlicher :)

    Einmal editiert, zuletzt von LuMa86 (17. Februar 2016 um 21:50)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!