.htaccess Zugriff einschränken

Lord_Icon

Member
Hi,

ich hab da mal ne Frage, die ich bisher noch nicht ergooglen konnte.

Ich hab ne HP, wo ich einige Ordner mit einer .htaccess versehen möchte.
DAS allein ist kein Problem.

Allerdings müßen die Scripte (localhost) "durchgelassen" werden.
Nur externe Aufrufe sollen geblockt werden.

ICh stelle mir das evtl. so vor.

localhost: allow
* : deny all

geht so was ?
 
oki... hab ich durchgelesen

Allerings klappt es nicht. Aber mal von vorn:


/etc/apache2/sysconfig.d/loadmodule.conf
Code:
LoadModule authz_host_module              /usr/lib64/apache2-prefork/mod_authz_host.so

/etc/sysconfig/apache2
Code:
APACHE_MODULES="actions alias auth_basic authn_file [COLOR="Red"]authz_host[/COLOR] authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir
 php5 rewrite dav dav_svn authz_svn"


Die Grundvoraussetzungen sollte ich damit schon mal geschaffen haben.
Apache hab ich natürlich neugestartet... ohne Fehler.

Dann hab ich mich an die .htaccess gemacht.
Um erstmal n Fehler zu erhalten habe ich erstmal nur folgende 2 Befehle reingepackt:
Code:
order deny,allow
deny  from all

Leider kann ich mich munter durch das /admin Verzeichniss klicken, obwohl ich das damit verhindern wollte.
Hab ich was vergessen / falsch gemacht ?
 
Hi,

"AllowOverride All" ist in der vhost.conf gesetzt?
Danach solltest Du mit Deiner .htaccess nicht mehr so weit klicken können.


-W
 
hi,

die vhost.conf kann ich nur kurzfristig ändern, da dieses vom Verwaltungssystem verwaltet wird.

Ist "AllowOverride All" für mein Vorhaben zwingend Vorrausetzung oder handelt ws sich hierbei nur um eine andere (einfacher) Lösung ?

Wenn ja = gibt es noch eine andere Lösung ?
 
Zumindest teilweise solltest Du das überschreiben der Config erlauben. Falls "AllowOverride None" gesetzt ist, wird Deine .htaccess immer wieder ignoriert werden ;)

Du könntest allerdings auf die .htaccess verzichten und die Zugriffsberechtigungen direkt in die <Directory>-Direktiven packen. In wie weit dir da deine Verwaltungssoftware reinfuscht kann ich so pauschal allerdings schwer beurteilen.

Ich persönlich würde aus Ressourcengründen die Option mit <Directory> vorziehen.
 
Satisfy

The Satisfy directive can be used to specify that several criteria may be considered when trying to decide if a particular user will be granted admission. Satisfy can take as an argument one of two options - all or any. By default, it is assumed that the value is all. This means that if several criteria are specified, then all of them must be met in order for someone to get in. However, if set to any, then several criteria may be specified, but if the user satisfies any of these, then they will be granted entrance.

A very good example of this is using access control to assure that, although a resource is password protected from outside your network, all hosts inside the network will be given free access to the resource. This would be accomplished by using the Satisfy directive, as shown below.

<Directory /usr/local/apache/htdocs/sekrit>
AuthType Basic
AuthName intranet
AuthUserFile /www/passwd/users
AuthGroupFile /www/passwd/groups
Require group customers
Order allow,deny
Allow from internal.com
Satisfy any
</Directory>

Wenn du aber z.B. im joomla das Verzeichniss /components/ damit schützt oder in Wordpress das Verzeichniss /plugins/ kann es sein das einige Plugins nicht mehr richtig funktionieren.
 
Last edited by a moderator:
oki... da scheine ich der Sache ja schon ein bissel näher zu kommen.

Allerdings erhalte ich HTTP 500 Fehler wenn ich diese Config verwende:
.htaccess
Code:
<Directory /srv/www/htdocs/web52/html/shop/plugin>
order deny,allow
Deny from all
allow from 127.0.0.1
AuthName "Na dan Rate mal"
AuthUserFile .htpasswd
AuthType basic
Require valid-user
satisfy any
</Directory>

Auch wenn ich zum testen diese beiden Zeilen ändere:
Code:
order allow
allow from all

... bekomm ich 500.

An satisfy sind aber keine Bedingungen verknüpft. Die bringt der Apache so schon mit ohne irgendwelche Module nachzuladen. Oder war das Howto falsch ?
 
Back
Top