PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : verzeichnis soll über apache nur von intern erreichbar sein



wicking
23.07.04, 15:04
Hallo.

Ich möchte, dass ein bestimmtes Verzeichnis per Apache nur aus unserem internen Netzwerk erreichbar ist (aus dem Intranet). Wie kann ich das bewerkstelligen?

Nochmal zur Verdeutlichung:

Habe die Domain www.test.de und möchte, dass www.test.de/privat nur aus dem Intranet erreichbar ist. Der Rest soll von allen erreichbar sein.


Hat das was mit den "virtuellen Hosts" zu tun?

Falls mir jemand nen kurzes Beispielchen oder nen Tipp geben könnte, wäre ich sehr dankbar. Oder auch nen Howto oder etwas ähnliches.


Vielen Dank

mdkuser
23.07.04, 15:41
ja, hat was mit virtuellen hosts zu tun, und mit verzeichnisberechtigungen. geht im apache so (falls ich mich richtig erinnere, es gibt aber ein beispiel in der /etc/httpd/conf/httpd.conf):

trage folgendes in die /etc/httpd/conf/httpd.conf ein:



<Directory "/Pfad_zu_deinem_Verzeichnis/">
Order deny,allow
Deny from ALL
Allow from 192.168.0.* 127.0.0.*
</Directory>


Ausserdem musst du noch einen virtuellen host für das intranet einrichten...

mdkuser
23.07.04, 15:45
Hab noch was gefunden. Für genauere Infos über die Sicherheitseinstellungen des Apache schau dir folgende links mal an:

http://www.pl-berichte.de/work/server/www/apache-sicherheit.html
http://www.linuxenterprise.de/itr/online_artikel/psecom,id,473,nodeid,9.html

v_skoda
23.07.04, 15:45
muesste es nicht auch mit Virtualhosts gehen ??
es ist meines achtens ein DNS prob ?
wenn ich einen host erschaffe der von aussen nicht erkennbar zugeteilt wird ?? muesste das doch auch gehen ??

also z.b wenn ich in meiner etc/hosts den eintrag mache den kein andere hat wuerde der dns server die adresse nicht kennen und nicht zuteilen koennen ??

naja kann mich auch irren ??

gruss Volker

stefan-tiger
23.07.04, 16:02
du kannst duach mit php die ip abfragen und dann was entsprechendes anzeigen.

wicking
23.07.04, 17:34
oh jeh...


Also ich hab da jetzt ein wenig herumprobiert. Tja. Bisher klappt noch garnix.


Bisher war es so, dass das Verzeichnis privat ein Unterverzeichnis von /home/www war.

Und als ich das hier eingegeben habe:

<Directory "/home/www/privat">
Order deny,allow
Deny from all
Allow from 192.168.0.* 127.0.0.*
</Directory>
konnte ich immernoch von außen drauf zugreifen. Vielleicht, weil ganz oben in der Konfig das hier stand


DocumentRoot /home/www/

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory /home/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>


Also ich denke mal, dass für alle Unterverzeichnisse auch allow from all gilt.

Gut. Dann habe ich einfach mal das Verzeichnis privat verschoben nach /home

Und die Konfig geändert:

Alias /privat/ "/home/privat/"
<Directory "/home/privat">
Order deny,allow
Deny from all
Allow from 192.168.0.* 127.0.0.*
</Directory>

Ja...aha..schön. Jetzt kann ich von nirgendwo mehr drauf zugreifen. Komisch. Habs dann gleich mal in Order allow,deny und Allow from all geändert, um zu testen, ob man wenigstens dann drauf zugreifen kann. Aber geht auch nicht.
Liegt das an dem Alias?? Müsste doch so klappen.


Übrigens steht das alles (alles obige) innerhalb von

NameVirtualHost *:80
<VirtualHost *:80>und

</VirtualHost>
was von anfang an so war. Allerdings gibts beim Start von Apache jedes mal nen Fehler:


[warn] NameVirtualHost *:80 has no VirtualHosts


Was ist denn damit gemeint?

mdkuser
24.07.04, 17:30
[warn] NameVirtualHost *:80 has no VirtualHosts



Das bedeutet, dass Du den Apache angewiesen hast Virtual Hosts zu nutzen, aber noch keinen Virtual Host konfiguriert hast.
Schau Dir nochmal genau die /etc/httpd/conf/httpd.conf an, da gibts so ziemlich am Ende Beispiele für virtual Hosts, die musst du entsprechend anpassen. Ansonsten lies Dir mal die beiden Artikel in den Links, die ich gepostet habe genau durch, die geben auf deine Fragen Antworten! Ein Blick in die man page von Apache kann übrigens auch nicht schaden. ;)

ThorstenHirsch
10.10.04, 15:33
So, bevor hier noch jemand nachschauen will wie das funktioniert und auf den selben Fehler 'reinfällt wie ich, dem sei gesagt, dass es mit wickings config nicht funktionieren kann, weil 192.168.0.* keine gültige Adresse im Apache-Config ist. Stattdessen muss der * einfach weg.

Um's nochmal an einem Beispiel klarzustellen, so muss es aussehen, wenn man auf /phpsysinfo von überall zugreifen dürfen soll und auf den Rest nur vom LAN aus:


<Directory "/var/www">
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 192.168.0. 127.0.0.
</Directory>

<Directory "/var/www/phpsysinfo">
Order allow,deny
Allow from all
</Directory>


P.S.: man benötigt keine VirtualHosts!