.htaccess Passwort-Schutz

.htpasswd

Eine von 2 Bedingungen (Rechner ODER Name/Passwort) muss stimmen:

Beispiel:

Dateien in einem Verzeichnis sollen Nutzern auf Rechnern der TU Chemnitz sofort zugreifbar sein.

Nutzer anderer Rechner müssen sich als URZ-Nutzer authentifizieren (Nutzerkennzeichen + Passwort).

Die .htaccess-Datei im Verzeichnis enthält:

Satisfy any
 AuthName "URZ"
 AuthType Basic
 AuthDBMUserFile /www/auth/urzpasswd.dbm
 Require valid-user
 
 Order Deny,Allow
 Deny from all
 Allow from .tu-chemnitz.de

Beide Bedingungen (Rechner UND Name/Passwort) müssen stimmen:

Beispiel:

Dateien in einem Verzeichnis sollen nur von authentifizierten URZ-Nutzern (Nutzerkennzeichen + Passwort) von Rechnern aus Deutschland und Österreich zugreifbar sein: Die .htaccess-Datei im Verzeichnis enthält:

AuthName "URZ"
 AuthType Basic
 AuthDBMUserFile /www/auth/urzpasswd.dbm
 Require valid-user
 
 Order Deny,Allow
 Deny from all
 Allow from .de .at

„Wenn mein User von IP xx.yy.zz.* kommt (z. B. aus dem firmeneigenen Netz), dann soll er ohne irgendwelche Abfragen zugreifen dürfen; wenn er aber von einer anderen IP-Adresse aus zugreift, dann soll er sich mit Benutzerkennung und Passwort gegenüber der mit .htaccess definierten Benutzerliste ausweisen müssen.“

Im Artikel wurde der Fall beschrieben, daß nur die Kombination aus IP-Adresse, Benutzerkennung und Passwort den Zugriff ermöglichen sollen (satisfy=all - alle Anforderungen müssen erfüllt sein).

Alternativ gibt es auch die Möglichkeit satisfy=any - mindestens eine der Anforderungen muß erfüllt sein. Das bewirkt dann genau den hier gewünschten Effekt.

Fehlermeldung 'Satisfy not allowed here' (oder 'order not…' in /var/log/apache2/error.log Das liegt daran, dass in der vi /etc/apache2/sites-available/default die Option 'AllowOverride' falsch gesetzt ist.

AllowOverride Limit FileInfo AuthConfig (AuthConfig ist das entscheidende) bringt Abhilfe…


Apache2 hört nicht auf .htaccess

Primaer geht es um das Problem, dass die .htaccess nicht verwendet wird (Hierzu hab ich das Tutorial „Versuch: FAQ, mögliche Fehlerquellen und Fehlermeldungen beim Gebrauch von mod_rewrite, Punkt 2“ schon durchgefuehrt, leider ohne Erfolg.)

„AllowOverride [FileInfo]“ wurde zu 'apache2/sites_available/$SEITE' hinzugefuegt.

  • AllowOverride None

Zugriffsdateien im Verzeichnis werden nicht ausgewertet.

  • AllowOverride All

Zugriffsdateien im Verzeichnis werden ausgewertet und alle Features sind erlaubt.

Außerdem existieren noch die - seltener gebrauchten Einschränkungen:

  • AllowOverride AuthConfig

Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für die User/Gruppenauthentifizierung sind erlaubt.

  • AllowOverride Limit

Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für die Domain/Rechner-Zugriffssteuerung sind erlaubt.

  • AllowOverride Options

Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für Optionen sind erlaubt.

Die letztgenannten Angaben sind auch kombinierbar, etwa in der Form

AllowOverride AuthConfig Limit

In der 'httpd.conf' hatte ich die Directory-Rules auch schon, auch ohne Erfolg.

Wo liegt der Fehler?

Hi.

---
/root # cat /etc/apache2/httpd.conf
# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
---

so schaut der spass aus, mehr steht nich drin, da ich alles ueber die available sites definiert hab.

das sollte auch die frage beantworten, ob noch andere dateien die eventl. die konfig ueberschreiben, eingebunden werden.

zufaellig ne ahnung, ob die httpd.conf ueber den site-configs steht?

hier noch ein auszug aus '/etc/apache2/sites-available/default' (die anderen seiten wurden daraus erstellt)

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>

REWRITE engline Apache2:

http://linuxwiki.de/Apache/RewriteEngine

Default Redirect ausschalten:

I want to change the default apache2 document root to /var/www instead of /var/www/apache2-default.

I have edited /etc/apache2/sites-available/default to comment out the redirect. As well I renamed the link /etc/apache2/sites-enabled/000-default to default and restarted apache2, but I am still always directed to http://server/apache2-default.

I have created a file /var/www/index.html which I can ready at http://server/index.html, but not if I try to go to http://server.

Below is the default file. The only change I've made is to comment out RedirectMatch line.

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                # RedirectMatch ^/$ /apache2-default/
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

        Alias /icons/ "/usr/share/apache2/icons/"
        <Directory "/usr/share/apache2/icons">
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

How do I set up Apache to allow access to certain documents only if a site is either a local site or the user supplies a password and username?

Use the Satisfy directive, in particular the Satisfy Any directive, to require that only one of the access restrictions be met.

For example, adding the following configuration to a .htaccess or server configuration file would restrict access to people who either are accessing the site from a host under domain.com or who can supply a valid username and password:

Deny from all
 Allow from .domain.com
 AuthType Basic
 AuthUserFile /usr/local/apache/conf/htpasswd.users
 AuthName "special directory"
 Require valid-user
 Satisfy any

See the user authentication question and the mod_access module for details on how the above directives work.

Dont forget the „ “ in AuthName or us a singe word without spaces in httpd.conf it must be configed that the .htaccess can be used: AllowOverride AuthConfig (or All)

Example:

 Allow from 10.1.0.0/255.255.0.0

A network a.b.c.d, and a netmask w.x.y.z. For more fine-grained subnet restriction.

A network/nnn CIDR specification

The Order directive controls the default access state and the order in which Allow and Deny directives are evaluated. Ordering is one of

Deny,Allow

The Deny directives are evaluated before the Allow directives. Access is allowed by default. Any client which does not match a Deny directive or does match an Allow directive will be allowed access to the server.

Allow,Deny

The Allow directives are evaluated before the Deny directives. Access is denied by default. Any client which does not match an Allow directive or does match a Deny directive will be denied access to the server.

Mutual-failure

Only those hosts which appear on the Allow list and do not appear on the Deny list are granted access. This ordering has the same effect as Order Allow,Deny and is deprecated in favor of that configuration.

Nach Referer umleiten

Noch ein Beispiel: Eine fremde Website bindet Bilder aus einem bestimmten Verzeichnis von Ihrer Website ein, und Sie möchten das verhindern, weil Sie nicht gefragt wurden und deshalb nicht bereit sind für den entstehenden zusätzlichen Traffic zu zahlen. Jetzt können Sie z.B. folgende .htaccess-Datei zum Einsatz bringen:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://.*mydomain\.de/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://.*mydomain\.de*$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule ^(.*)jpg$ http://www.mydomain.de/images/smile.jpg [L,R]

Diese Datei bewirkt, daß alle jpg-Dateien, die in eine fremde Seite eingebunden sind (also einen HTTP-Referer ungleich der eigenen Domain haben), durch die Datei smile.jpg ersetzt werden. Wenn kein HTTP-Referer übergeben wird, was z.B. bei Besuchern der Fall sein kann, die hinter einem Firewall sitzen, wird das Originalbild geliefert. Eine genaue Beschreibung aller Möglichkeiten von mod_rewrite findet sich hier (auf Englisch).

 
Nach oben
htaccess.txt · Zuletzt geändert: 2024/02/29 13:36 von 127.0.0.1
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp