Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
.htacces alle sperren, nur meine IP zulassen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
.htacces alle sperren, nur meine IP zulassen


 
vitalinka
24-06-2010, 10:06 
 
Hallo Profis!
Ich will eine Subdomain für alle sperren und nur meine IP zulassen (DNS).
order deny, allow
deny from all
allow from IP (oder dynDNS eintrag)
Im Apatche ist .htaccess erlaubt.
Es funktioniert einfach nicht. Was habe ich noch vergessen haben könnte?

 
AmicaNoctis
24-06-2010, 10:16 
 
Hallo,

schreib mal den ersten Buchstaben jeder Zeile groß.

Gruß,

Amica

 
vitalinka
24-06-2010, 10:27 
 
Hat nichts gebracht.

 
AmicaNoctis
24-06-2010, 10:34 
 
Dann rück mal bitte mehr Infos raus und poste exakt deine .htaccess (darfst allerdings Adressen mit * anonymisieren).

Fehlermeldungen und eine vernünftige Fehlerbeschreibung (siehe Forenregeln) nicht vergessen.

 
vitalinka
24-06-2010, 10:42 
 
Das oben ist meine .htaccess
außer alle sperren und mich erlauben brauche ich nichts weiter.
Fehler gibt es keine. Browser zeigt die Seite, als ob keine .htaccess da wäre.
httpd.conf abgeändert AllowOverride All und neu gestartet.

 
AmicaNoctis
24-06-2010, 10:48 
 
Da steht also wirklich „Allow from IP (oder dynDNS eintrag)“ drin? Dann kann es nicht funktionieren.

Probier mal das:


Order deny,allow
Deny from all
Allow from 127.0.0.1


Auf älteren Apachen kann es sein, dass du nur UNIX-Zeilenumbrüche verwenden darfst, also nur LF statt CRLF.

Wenn das nicht hilft, lies dir das hier durch: Apache Tutorial: .htaccess files - Apache HTTP Server (http://httpd.apache.org/docs/2.0/howto/htaccess.html)

 
vitalinka
24-06-2010, 11:05 
 
nein. natürlich nicht.

Order deny, allow
deny from all
allow from blabla.dyndns.de

ich habe jetzt Virtualhost ergänzt

<Directory /var/www/html/blabla>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Es war für HauptServer eingetragen, deswegen hat er .htaccess ignoriert. Jetzt bin ich so weit dass gesamte Seite gesperrt ist. Allow funzt nicht.

allow from mydyndns.com

Was habe ich da wider Falsch gemacht?

 
AmicaNoctis
24-06-2010, 11:10 
 
Was habe ich da wider Falsch gemacht?

Groß-/Kleinschreibung ist nicht egal. Die Direktive heißt „Allow“ (mit großem A). Das hatten wir doch als erstes geklärt, oder?

 
vitalinka
24-06-2010, 11:25 
 
Ich habe es geändert.
Deny Allow leider kein positives Ergebnis.
Ich bekomme Fehlermeldung:
The server encountered an internal error or misconfiguration and was unable to complete your request. Bla Bla
Ich habe da was kaputt gemacht. apache beim restart sagt gar nichts. Einfach startet, ohne zu meckern.

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
ServerName subdomain.com*
DocumentRoot /var/www/html/subordner
<Directory "/var/www/html/subordner">
AllowOverride All
</Directory>
</VirtualHost>

So sieht mein VH aus. Klar Domain und Path geändert.

 
AmicaNoctis
24-06-2010, 11:32 
 
Aktuelle .htaccess?

Der vhost-Eintrag sieht erstmal richtig aus. Wenn du einen Error 500 bekommst, solltest du dir das error.log ansehen. Dort steht meist der eigentliche Fehler drin.

 
vitalinka
24-06-2010, 12:06 
 
Fehler beseitigt. Leerzeichen zwischen Deny,Allow musste weg. Habe nie gedacht dass apache so empfindlich ist. Aber trotz allem will er mich nicht rein lassen.
Allow from blabal.com
Bleibt unberürt.
You don't have permission to access / on this server.
.htaccess

Order Deny,Allow
Deny from all
Allow from bla.dyndns.com

wenn ich statt DNS IP eintrage funzt einwandfrei. Aber ich habe Dynamische IP, deswegen habe ich mir dyndns zugelegt und im Router eingetragen. Überall funzte es. diesmal aber nicht. Anscheinend will apache DNS nicht auflösen. Server ist Online. Zugriffs PC Zuhause hinter einen Fritz.

 
AmicaNoctis
24-06-2010, 12:17 
 
Aber trotz allem will er mich nicht rein lassen.

Dann funktioniert es schon mal. Im access.log findest du die Adresse von welcher die Anfrage kam. Offenbar ist das nicht die die du erlaubt hast.

 
onemorenerd
24-06-2010, 12:34 
 
DNS-Cache des Server geleert?
Bzw. den heimischen Anschluss neu verbunden (neue IP bekommen)?

 
vitalinka
24-06-2010, 13:14 
 
Für VH habe ich gesetzt
HostnameLookups On
Bringt aber nichts. Apache kann domain nicht auflösen. Mit IP funtz OK. Obere Code sollte Apache dazu bringen domains zu auflösen. Wohin gehört es bei VirtualHiost?

<Directory "/var/www/html/bla>
bla bal
HostnameLookups On
</Directory>

oder wo anders hin?

 
onemorenerd
24-06-2010, 13:27 
 
HostNameLookups ist in den Kontexten Server, <VirtualHost>, <Directory>, <Location> und <Files> erlaubt, siehe Manual.
Für DynDNS-Auflösung musst du außerdem den Wert "double" setzen!

Ich wiederhole meine Frage: Hast du den DNS-Cache des Servers geleert?
Sonst kann es nämlich sein, dass Apache zwar versucht, deine IP in einen HostName aufzulösen, dies aber vom DNS-Cache des Servers mit einem (veralteten?) Eintrag beantwortet und deswegen dyndns.org gar nicht gefragt wird.

 
vitalinka
24-06-2010, 13:58 
 
Das habe ich alles und schon mehr gelesen. DOUBLE ausprobiert. Nichts da. DNS-Cache laut google gib es nicht bei Linux. Daemon nscd habe ich auch nicht. CentOS hat vielleicht was anderes, aber finde gar nicht in die Richtung.
Ich habe access.log angesehen und da steht meine IP.provider_domain
Also dass ich da meine dyndns eintrage ist ja ganz überflüssig. Ich habe jetzt .provider_domain.net eingetragen und es funzt. Ist nicht was ich wollte, aber von der Seite kann ich jetzt fast alle weghalten. Ich werde in die Richtung noch graben, so bald was finde poste ich hier. Wenn jemand eine Idee hat werde ich mich freuen.
Allen beteiligten vielen Dank, Ihr wart große Hilfe.

 
wahsaga
24-06-2010, 15:57 
 
Groß-/Kleinschreibung ist nicht egal. Die Direktive heißt „Allow“ (mit großem A). Das hatten wir doch als erstes geklärt, oder?
Wenn wir's klären, dann klären wir's doch gleich mal richtig.

http://httpd.apache.org/docs/2.2/en/configuring.html:
„Directives in the configuration files are case-insensitive”


Für DynDNS-Auflösung musst du außerdem den Wert "double" setzen!
Der käme sowieso zum Zuge, egal was du setzt;
http://httpd.apache.org/docs/2.2/en/mod/mod_authz_host.html#allow:
„This configuration will cause Apache to perform a double reverse DNS lookup on the client IP address, regardless of the setting of the HostnameLookups directive. It will do a reverse DNS lookup on the IP address to find the associated hostname, and then do a forward lookup on the hostname to assure that it matches the original IP address. Only if the forward and reverse DNS are consistent and the hostname matches will access be allowed.”

Wobei ich mich frage, ob so eine DynDNS-Adresse überhaupt beide Kriterien erfüllt, kennt sich da jemand aus?

 
vitalinka
24-06-2010, 17:13 
 
Also das habe ich gefunden:
Mit dyndns wird es nicht funktionieren weil
bestimmten IPs zugriff erlauben - gulli:board (http://board.gulli.com/thread/659861-bestimmten-ips-zugriff-erlauben/)
Mit Hosts die einen entsprechenden reverse DNS Eintrag haben geht das, aber es geht nicht mit dynDNS Hosts. Der Apache macht einen lookup und einen reverse lookup und vergleicht die Ergebnisse und die stimmen bei einem dyndns-host nicht ueberein.
und
SELFHTML Forumsarchiv / 2003 / März / htaccess, Domain erlauben (http://forum.de.selfhtml.org/archiv/2003/3/t39408/)
uralte infos aber es hat sich seit dem auch nicht geändert.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:29 Uhr.