2016-05-16 16 views
0

In Htaccess mit Apache 2.2.x, gibt es eine Möglichkeit, ein Passwort und eine bestimmte IP-Adresse zu verlangen, und alle anderen blockieren?Apache 2.2 htaccess Require Passwort und IP-Adresse

Ich habe alle Allow/Deny/Require/Satisfy-Kombinationen ausprobiert, die ich finden oder versuchen könnte. Vielleicht hat hier jemand die Antwort? Ich habe eine umfangreiche Suche durchgeführt, aber alle versuchen, ein Passwort für bestimmte IP-Adressen zu umgehen, ohne eine IP und ein Passwort zu verlangen.

+0

Gibt es einen bestimmten Grund, warum Sie die IP direkt vom Server blockieren möchten und nicht durch eine App? – mkmnstr

+0

Ja, dies ist ein Pre-Authorization-Setup, um den Zugriff auf eine WordPress wp-login.php-Datei zu ermöglichen. Derzeit habe ich es eingerichtet, um ein Login/Passwort in Apache zu erfordern, bevor Leute auf den Wordpress-Login zugreifen, um WP Brute-Force-Angriffe zu blockieren, aber für einige Domains möchte ich es noch weiter auf nur meine IP-Adresse beschränken. –

+0

Als eine Nebenbemerkung ... Ich habe einen Weg gefunden, dies zu erreichen, aber nicht nur mit Apache. Ich benutze nginx (läuft als ein Proxy), um alle außer bestimmten IP-Adressen zu blockieren, bevor der Proxy an Apache weitergeleitet wird, der dann das Passwort benötigt. Problem gelöst, irgendwie. –

Antwort

2

Ich würde vorschlagen, Ihre Konfiguration zunächst nur ein Passwort zu erfordern, und sobald Sie das wie vorgesehen haben. Fügen Sie die richtige allow from-Direktive zu der Datei htaccess hinzu. Zum Beispiel

Allow from 192.168.0.0 

Sie sollten nicht irgendetwas anderes hinzufügen müssen als Satisfy All der Standard ist, aber wenn Sie immer noch Probleme haben, fügen Sie das auch.

Wenn Sie immer noch Probleme haben, zeigen Sie uns die htaccess Datei und überprüfen Sie den Rest Ihrer Konfiguration für die Überschreibung der Konfiguration.

New Config basierend auf Diskussion unter:

<Location /> 
    Order allow,deny 
    AuthType Basic 
    AuthName "Restricted Files" 
    AuthBasicProvider file 
    AuthUserFile /path/to/htpasswd 
    Require valid-user 
    Satisfy all 
    Allow from 127.0.0.1 
</Location> 

Zusatzinfo, muss nicht den <Location> Block, wenn in .htaccess

+0

Es tut uns leid, es funktioniert nicht, da es eine erste Regel wins-Methode abarbeitet. Sie können nicht beide eine IP Adresse und ein Kennwort verlangen ... es erlaubt nur das eine oder das andere. Meine Lösung funktioniert gut, obwohl nginx damit verwendet wird. –

+0

Es funktioniert, und ich habe es selbst mehrmals benutzt. Der Sinn von 'Satisfy All' besteht darin, dass Sie mehrere Bedingungen für Autorisierung/Authentifizierung benötigen. Wenn Ihre Konfiguration nicht funktioniert, haben Sie entweder einen Fehler gemacht oder Sie haben irgendwo eine Konfiguration mit Konflikten. Die Tatsache, dass Sie es in nginx arbeiten lassen, legt nahe, dass Ihre Distribution anfängliche Apache-Konfigurationsdateien verteilt, die in irgendeiner Weise "kaputt" sind. – Unbeliever

+0

Ich denke, Sie werden feststellen, dass es nicht funktioniert, wenn Sie alle mit Ausnahme einer IP-Adresse ablehnen und auch ein Passwort von dieser IP-Adresse benötigen. Jeder außer dieser IP sollte ohne eine Passwortabfrage abgelehnt werden. Wenn Sie die Option "Alle zufrieden stellen" verwenden, werden alle Benutzer aufgefordert, eine Kennworteingabeaufforderung einzugeben, anstatt sie zu verweigern. Daher funktioniert die Verwendung von Befriedigend in diesem Fall nicht. Deshalb habe ich gesagt "... blockiere alle anderen" in meiner Frage ... "alle anderen" sollten nicht einmal eine Passwortabfrage bekommen. Danke fürs ausprobieren. –