Apache2: Rootordner nur von Lokaler IP zugreifen können?
Der Betreff sagt schon alles.
Ich benutze Debian mit dem Apache2 Webserver.
Ich würde gerne wissen, wie ich nur vom Heimnetz zugreifen kann und alles andere von außen geblockt wird. Ich habe ein Unterordner nur für Websites die ich hoste und der Rootordner für anderes.
Mein 000-default.conf:
<VirtualHost *:80>
ServerName 192.168.1.118
DocumentRoot /var/www/html
<Location /var/www>
Order deny,allow
Deny from all
Allow from 192.168.1.118
</Location>
<VirtualHost>
Wenn man mit der Öffentlichen IP jetzt auf mein Server zugreift soll er nach [/var/www/html] zeigen
und wenn Local auf mein Server zugreife soll er auf [/var/www] zeigen
Danke im Voraus :)
Edit: Ich bekomme ein 403, wenn ich Lokal drauf zugreife
und ich habe die config aktiviert (a2ensite 000....conf)
2 Antworten
Theoretisch werden dafür zwei <VirtualHost> Einträge benötigt:
Listen 80
Listen 192.168.1.118
<VirtualHost>
DocumentRoot "/var/www"
ServerName localhost
<Directory /var/www>
Order allow,deny
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
Mach es zuerst nicht zu kompliziert und versuche es nur mit einer Konfiguration, womit lokal auf den Webserver zugegriffen werden kann.
Schau mal diese Zeile in deiner Konfiguration an:
<Directory /var/www>
Order allow,deny
Deny from all
Allow from 192.168.118
</Directory>
da fehlt doch was.
Sind der Server und der Rechner mit dem auf den Webserver zugegriffen wird zwei Geräte und wurde Apache restartet?
Also zwei Geräte und zwei IP-Adressen?
<Directory /var/www>
Order allow,deny
Deny from all
Allow from 192.168.1.118
</Directory>
hier wurde erlaubt, dass der Server auf sich selbst zugreifen darf.
Versuche es mal so:
<Location /var/www>
Order allow,deny
Deny from all
Allow from 192.168.1
</Location>
und schau in die Log Datei: /var/log/httpd/error_log
Gut, dann trage in dieser Zeile:
Allow from 192.168.1
wieder dahinter die IP-Adresse deines PCs ein. Also 192.168.1.xx
Danke :D Es funkioniert, wobei ich es auch gerade versucht habe... merkwürdig
Meine Config:
<VirtualHost *:80>
DocumentRoot "/var/www"
# ServerName localhost
ServerName 192.168.1.118 # IP vom Server
<Directory /var/www>
Order deny,allow
Deny from all
Allow from 192.168.1.79 # IP vom PC
</Directory>
</VirtualHost>
Gerne. Es kommt auf die Reihenfolge darunter an:
Deny from all
Allow from 192.168.1.79 # IP vom PC
In der Abarbeitung steht erst verbieten und dann erlauben:
Order deny,allow
dadurch das es bei Order vertauscht war, konnte es nicht gehen.
Ich habe die jetzt nochmal überarbeitet
<VirtualHost *:80>
DocumentRoot "/var/www"
# ServerName localhost
ServerName 192.168.1.118 #IP vom Server
<Directory /var/www>
Order deny,allow
Deny from all
Allow from 192.168.1.0/24 #1
#1 Erlaubt alle IPs in Heimnetz
</Directory>
</VirtualHost>
also gefühlsmäßig würde ich meinen, dass es nur klappt, wenn du mit der IP des Servers zugreifst...
wie ist denn deine Server IP?
das da würde das ganze Netz 192.168.1.0/24 freigeben....
Allow from 192.168.1.0/24
Okay es wird jetzt von außen geblockt also ich bekomme jetzt ein 403
Aber jetzt habe ich das Problem, dass auch Lokal einen 403 bekomme
Mit Listen funktionierte es nicht, deswegen habe ich es direkt im VirtualHost eingetragen.
Meine Config sieht jetzt so aus: