Verschiedene Verzeichnisse

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Verschiedene Verzeichnisse

Postby Yada » 18. June 2012 21:05

Hoi,

ich bin im Moment dabei die Arbeiten an meinem Server abzuschließen. Eine Kleinigkeit hätte ich aber noch gern:

Mein Server verfügt via no-ip.org über eine schöne Domain die ich über HTTP erreichbar haben will. Dahingehend gelöst, dass die *:80 Anfragen auf meinen Router geleitet werden und dort mein XAMPP seinen Dienst verrichtet. Ich habe die httpd.conf um eine Include-Anweisung erweitert und verweise zu einer Datei mit folgendem Inhalt:
NameVirtualHost *:80
ServerAdmin ...
DocumentRoot "P:/web/home/"
ServerName ....no-ip.org

(da der Server im Moment alles andere als sicher ist möge man mir die "."-Vergewaltigung verzeihen)

Es funktioniert auch wunderbar - das Problem nur ist, dass ich auch intern zu /web/home/ geleitet werde, was wohl daran liegen dürfte, dass ich auch intern über *:80 komme.

Wichtig ist, dass das Parent-Directory NICHT sichtbar ist übers Internet, sondern nur lokal. Über die Domain soll man einfach nur ins home-Directory kommen, und sonst nirgends. Lokal (sprich über 10.0.0.*-IPs (NICHT aber 10.0.0.138, da das der Router ist und ich somit wieder bei *:80 wäre) aber ins Elternverzeichnis.

Wie löse ich das am Besten?

Danke schonmal
Yada
 
Posts: 5
Joined: 28. May 2012 18:52
Operating System: Windows Server 2008

Re: Verschiedene Verzeichnisse

Postby Altrea » 18. June 2012 23:10

Yada wrote:Hoi,

Ahoyhoy,

Yada wrote:Ich habe die httpd.conf um eine Include-Anweisung erweitert und verweise zu einer Datei mit folgendem Inhalt:

Warum das? Es gibt ja bereits eine Unterdatei die genau für soetwas gedacht ist: \xampp\apache\conf\extra\httpd-vhosts.conf

Yada wrote:NameVirtualHost *:80
ServerAdmin ...
DocumentRoot "P:/web/home/"
ServerName ....no-ip.org

Sollte dies deine vollständige wenn auch anonymisierte Anweisung sein, so ist diese Unvollständig. Offensichtlich möchtest du namebased VirtualHosts verwenden. Dann solltest du aber auch <VirtualHost> Blöcke definieren. Ansonsten kannst du dir das ganze auch sparen und direkt die ServerAdmin, Servername und DocumentRoot Angaben in der \xampp\apache\conf\httpd.conf ändern.

Yada wrote:(da der Server im Moment alles andere als sicher ist möge man mir die "."-Vergewaltigung verzeihen)

Stimmt, Absichern bevor man etwas öffentlich ins Netz schmeißt wäre ja auch viel zu logisch gewesen... Vorallem weil es ja auch keine automatischen Crawler im Internet gibt die einzig und allein darauf ausgerichtet sind, ungesicherte Webserver im Internet zu ausfindig zu machen indem sie wahllos sämtliche IP-Adressen ausprobieren.
Meine Prognose (aus Erfahrung): wirklich genügend absichern wirst du das Ding nie.

Yada wrote:das Problem nur ist, dass ich auch intern zu /web/home/ geleitet werde, was wohl daran liegen dürfte, dass ich auch intern über *:80 komme.

Nein, das liegt schlicht daran, dass du nur ein DocumentRoot hast. Der greift nichtnur bei Port 80 sondern auch bei dem SSL Port 443 und würde sogar auf Port 32702 funktionieren, würde dein Apache gerade darauf lauschen.

Yada wrote:Wichtig ist, dass das Parent-Directory NICHT sichtbar ist übers Internet, sondern nur lokal. Über die Domain soll man einfach nur ins home-Directory kommen, und sonst nirgends. Lokal (sprich über 10.0.0.*-IPs (NICHT aber 10.0.0.138, da das der Router ist und ich somit wieder bei *:80 wäre) aber ins Elternverzeichnis.

Wie löse ich das am Besten?

mehrere und vorallem korrekt definierte namebased VirtualHosts

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Verschiedene Verzeichnisse

Postby Yada » 18. June 2012 23:28

Sehr ausführliche Antwort, vielen Dank :)

Stimmt, Absichern bevor man etwas öffentlich ins Netz schmeißt wäre ja auch viel zu logisch gewesen... Vorallem weil es ja auch keine automatischen Crawler im Internet gibt die einzig und allein darauf ausgerichtet sind, ungesicherte Webserver im Internet zu ausfindig zu machen indem sie wahllos sämtliche IP-Adressen ausprobieren.
Meine Prognose (aus Erfahrung): wirklich genügend absichern wirst du das Ding nie.

Mein Server bietet einige Dienste dessen Zugriffsbasis relativ absehbar ist. Ich will beim direkten Aufruf über HTTP einfach nur einen via .htaccess geschützten Blog aufrufen auf den sich jene Leute, die Zugriff darauf haben, ein paar Infos zu den Diensten holen können (das sind keine sonderlich empfindlichen Daten, da Passwörter und Co. nirgends zu finden sind). Dieser Blog liegt eben in meinem Projekt-Ordner, wo auch andere, doch sehr relevante bzw. wichtige Daten liegen. Daher soll der Zugriff auf das Elternverzeichnis unter keinen Umständen zugänglich gemacht werden... sieht so aus:
P:/web/ - kein Zugriff von außen, nur lokal übers Netzwerk
P:/web/home/ - Zugriff über HTTP, via .htaccess mit Passwort geschützt

mehrere und vorallem korrekt definierte namebased VirtualHosts

Und wie genau sieht das dann aus?

Danke
Yada
 
Posts: 5
Joined: 28. May 2012 18:52
Operating System: Windows Server 2008

Re: Verschiedene Verzeichnisse

Postby Altrea » 18. June 2012 23:55

Yada wrote:Mein Server bietet einige Dienste dessen Zugriffsbasis relativ absehbar ist. Ich will beim direkten Aufruf über HTTP einfach nur einen via .htaccess geschützten Blog aufrufen auf den sich jene Leute, die Zugriff darauf haben, ein paar Infos zu den Diensten holen können (das sind keine sonderlich empfindlichen Daten, da Passwörter und Co. nirgends zu finden sind). Dieser Blog liegt eben in meinem Projekt-Ordner, wo auch andere, doch sehr relevante bzw. wichtige Daten liegen.

Ich mache mir keine Sorgen darum, dass du dieses eine Verzeichnis nicht ausreichend absicherst, sondern der Server im Allgemeinen. Eine Sicherheitslücke in Apache oder PHP oder gar nur eine unfreiwillig gesetzte Einstellung könnte ausreichen, um den kompletten Server zu kompromittieren. Dabei ist es dann vollkommen irrelevant wie gut du das eine Verzeichnis abgesichert hast.
Sollte es zum Beispiel jemandem gelingen über php einen Befehl abzusetzen der auf Systemebene ausgeführt wird (wie das Beispielsweise bei bestimmten PHP Versionen im CGI Modus möglich ist) werden deine "sehr relevante bzw. wichtige Daten" noch dein geringstes Problem sein.
Was ich damit sagen will (und das soll weder besserwisserisch noch hochnäsig klingen): öffentliche Webserver sollten nicht in die Hände von Anfängern gehören. XAMPP ist nicht für den öffentlichen Einsatz konzipiert oder konfiguriert, sondern darauf dem Entwickler in seiner lokalen täglichen Arbeit möglichst wenig Steine in den Weg zu werfen.
Zuletzt noch ein Warnhinweis: Als Administrator eines öffentlichen Webservers bist du für Schäden die durch diesen verursacht werden (egal ob durch dich aktiv oder passiv durch Fahrlässigkeit verursacht) verantwortlich und kannst rechtlich dafür zur Rechenschaft gezogen werden (Beispielsweise Verdienstausfall eines Webshops auf Grund einer von deinem Webserver ausgehenden DDos Attacke), erst Recht jetzt wo du von der Unsicherheit des XAMPP Paketes Kenntnis hast.

Es gibt haufenweise Webhoster im Internet, die kostenlos oder gegen eine geringe Gebühr eine sichere Plattform für deine Scripte und Projekte bereitstellen. Warum kommt so etwas für dich nicht in Frage?

Yada wrote:Und wie genau sieht das dann aus?

In der \xampp\apache\conf\extra\httpd-vhosts.conf hast du zwei Beispiele. Fang doch damit erstmal an.
Bei konkreten Fragen helfe ich dir gerne weiter, aber prinzipiell läuft das hier nach der Devise "Hilfe zur Selbsthilfe".

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Verschiedene Verzeichnisse

Postby Yada » 19. June 2012 00:26

Es gibt haufenweise Webhoster im Internet, die kostenlos oder gegen eine geringe Gebühr eine sichere Plattform für deine Scripte und Projekte bereitstellen. Warum kommt so etwas für dich nicht in Frage?

Ich habe auch Webserver von großen Anbietern zur Hand; mir ging es vorrangig darum, die 100% Kontrolle zu haben. Aber gut, deine Einwände sind berechtigt und ich werde das nochmal überdenken...

Und danke nochmals ;)

Nachtrag:
Gäbe es denn realistische und sichere Alternativen um das Ganze letztendlich auf dem eigenen Server laufen zu lassen?

Nachtrag 2: Und wenn ich den Apache vollkommen isoliert - beispielsweise virtuell - betreibe? (nur für die Home-Seite)
Yada
 
Posts: 5
Joined: 28. May 2012 18:52
Operating System: Windows Server 2008

Re: Verschiedene Verzeichnisse

Postby Altrea » 19. June 2012 01:01

Yada wrote:Gäbe es denn realistische und sichere Alternativen um das Ganze letztendlich auf dem eigenen Server laufen zu lassen?

Alternativen gibt es immer, die hängen aber (wie bei allem) einerseits von deinen Kenntnissen ab, andererseits aber auch von den Anforderungen und dem damit u.U. anfallenden finanziellen Aufwand.
Ich würde:
  • nie einen öffentlichen Webserver betreiben wollen ohne eine gute und gut parametrierte Hardwarefirewall davor.
  • kein Windows als Basisbetriebssystem wählen, außer ich möchte IIS als Server betreiben. Für Apache eignet sich Linux deutlich besser (Linux CentOS zum Beispiel).
  • nicht das XAMPP Paket verwenden, sondern die benötigten Einzelkomponenten über die Paketverwaltung installieren
  • Die Einzelkomponenten nur mit eingeschränkten OS-Benutzerrechten (bei Linux eigene Standardbenutzer) betreiben
  • nur die Module und Funktionen aktivieren, die ich auch wirklich brauche
  • Module u.U. noch auf bestimmte Zugriffsebenen beschränken (Beispiel: cgi ist nicht überall notwendig, HTTP und HTTPS ebenso)
  • die Einstellungen nach dem Motto "so wenig wie Möglich aber soviel wie nötig" wählen (Scriptlaufzeiten, Größenbeschränkungen, etc)
  • Die von außen Zugänglichen Bereiche auf das abolute Minimum beschränken
  • den einzelnen Komponenten das Plappern abgewöhnen (Signauren, Fehlermeldungen, etc)
  • Sichere Passwörter für alle benötigten Komponenten vergeben
  • Ist die Anzahl an Zugriffsberechtigter Personen nicht zu groß würde ich ausschließlich HTTPS mit gültigem Zertifikat zulassen
Dann hast du schonmal einen relativ sicheren Webserver.
Abhängig ist das ganze natürlich immernoch von den Sicherheitslücken die deine Scripte unter Umständen noch enthalten (hier kann eine Application Firewall unterstützen).
Die Liste erhebt natürlich keinen Anspruch auf Vollständigkeit.
Ob das alles realistisch für dich ist, kannst nur du beurteilen.

Yada wrote:Nachtrag 2: Und wenn ich den Apache vollkommen isoliert - beispielsweise virtuell - betreibe? (nur für die Home-Seite)

Das dient lediglich dem Schutz deiner Daten auf dem Host System (vorausgesetzt einem Angreifer gelingt es nicht aus der VM auszubrechen). Die sonstigen sicherheitstechnischen Bedenken sind davon nicht betroffen, zumindest nicht ohne weitere Vorkehrungen.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Verschiedene Verzeichnisse

Postby Yada » 19. June 2012 01:49

Da hat wohl wer eine Nachtschicht :>... Danke erstmal wieder.

Ich habe mich nun weiter damit beschäftigt und zumindest den "verteilten" Zugriff hinbekommen, auch wenn XAMPP nur solange gestartet ist, wie ich am Rechner bin (da ich mich einfach noch mehr um die Sicherheit kümmern muss). Vor allem das man die Datenbank noch von außen erreicht gibt mir im Moment überhaupt nix. Aber gut, das werde ich auch noch hinkriegen... ob der dann am Netz hängen bleibt, werde ich sehen.

Das dient lediglich dem Schutz deiner Daten auf dem Host System (vorausgesetzt einem Angreifer gelingt es nicht aus der VM auszubrechen). Die sonstigen sicherheitstechnischen Bedenken sind davon nicht betroffen, zumindest nicht ohne weitere Vorkehrungen.

Ausgehend davon, dass nun tatsächlich wer auf den Server gelangt: wie genau oder was genau passiert dann? Übers HTTP-Protokoll kommt er nur zu einer abgesicherten Seite - wie soll er denn dann überhaupt auf Elternverzeichnisse - oder gar noch weiter raus - kommen?
Yada
 
Posts: 5
Joined: 28. May 2012 18:52
Operating System: Windows Server 2008

Re: Verschiedene Verzeichnisse

Postby Altrea » 20. June 2012 02:51

Yada wrote:Ausgehend davon, dass nun tatsächlich wer auf den Server gelangt: wie genau oder was genau passiert dann? Übers HTTP-Protokoll kommt er nur zu einer abgesicherten Seite - wie soll er denn dann überhaupt auf Elternverzeichnisse - oder gar noch weiter raus - kommen?

Das kann sehr verschieden sein. Im einfachsten Fall gelingt es jemandem über eine Scriptschwachstelle oder SQL-Injection PHP code einzuschleusen. PHP file-Pperationen laufen nicht auf Protokollebene sondern auf Dateisystemebene und sind daher nicht von irgendwelchen Verzeichnisgrenzen betroffen.
Genauso wäre es aber auch denkbar, dass jemand Systemkommandos über PHP absetzt und dann fast alles an deinem System machen könnte.
Das größte Sicherheitsrisiko sind ungepatchte Sicherheitslücken in den Einzelkomponenten. Wenn du dir die Changelogs von Apache, PHP und MySQL ansiehst wirst du bemerken, dass dort durchaus auch kritische Lücken dabeisein können die dann die Gesamtsicherheit deines Systems gefährden können.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 46 guests