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.
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.
|
-
- |