wake-up-neo.net

Beschränken Sie den Zugriff auf den IP-Adressbereich

Ich versuche, den Zugriff auf eine Webressource auf das Intranet eines Unternehmens über .htaccess einzuschränken. Leider funktioniert die Vorgehensweise über Allow from … bei mir nicht und ich verstehe die Subnetze nicht gut genug, um das Problem zu beheben.

Meine IP-Adresse lautet (aus Datenschutzgründen wurden die ersten beiden Blöcke ersetzt) ​​1.2.70.59. Die Netzmaske wird von ifconfig als 0xffff0000 angegeben, d. H. 255.255.0.0. Ich habe einen IP-Adressrechner verwendet, um das Subnetz daraus zu holen.

Eine Antwort auf Stack Overflow hat mich zu der Annahme veranlasst, dass Folgendes funktionieren sollte:

Order deny,allow
Deny from all
Allow from 1.2.0.0/255.255.0.0

Oder mit CIDR (nur die letzte Zeile anzeigen):

Allow from 1.2.0.0/16

Beides funktioniert nicht. Das Folgende funktioniert auch nicht wie durch die Antwort auf dieser Site impliziert :

Allow from 1.2

In der Tat funktioniert nicht einmal die folgenden:

Allow from 127.0.0.1

Aber das funktioniert :

Allow from localhost

Obwohl ich dachte, dass diese beiden gleichwertig sind. Klar, ich habe eine Lücke in meinem Verständnis.

Der Vollständigkeit halber ist dies die Ausgabe von ifconfig | grep inet[^6]:

inet 127.0.0.1 netmask 0xff000000 
inet 1.2.70.59 netmask 0xffff0000 broadcast 1.2.255.255

Was mache ich falsch?

2
Konrad Rudolph

Die Lösung war, dass ich auf die Website über localhost/path/to/site und nicht über 1.2.70.59/path/to/site zugegriffen habe. Nachdem ich das geändert hatte, funktionierte es.

2
Konrad Rudolph

Fügen Sie diese Anweisungen zunächst einer .htaccess-Datei oder einer Konfigurationsdatei hinzu? In letzterem Fall müssen Sie Apache neu starten.

Zweitens haben Sie mod_authz_Host aktiviert? In Ihrer httpd.conf sollte eine Zeile wie folgt stehen:

LoadModule authz_Host_module modules/mod_authz_Host.so

Sind Sie sicher, dass es nicht funktioniert? Das heißt Testen Sie den richtigen Pfad/Server? Sind Sie sicher, dass eine Umschreiberegel oder eine benutzerdefinierte Fehlerseite nicht den Eindruck erweckt, Sie hätten Zugriff auf die Seite, obwohl Ihnen eine andere Seite angezeigt wird? Was funktioniert auch nicht? Gibt es Zugriff auf externe IPs oder verweigert es den Zugriff auf interne IPs?

Löschen Sie Ihr Zugriffsprotokoll (löschen Sie die Datei), starten Sie den Server neu und testen Sie die URL erneut. Sehen Sie sich dann das Zugriffsprotokoll an und prüfen Sie, welche IP-Adresse aufgezeichnet und welcher Antwortcode angegeben wurde.

Es gibt andere Möglichkeiten, dies zu tun (z. B. über mod_rewrite oder SetEnvIf/Allow from env=), aber was Sie tun, sollte funktionieren.

1
Lèse majesté

Versuchen Sie dies für die .htaccess-Datei:

order allow,deny
#partial ip addresses blocking
deny from 192.168
deny from 219

#full ip addresses blocking
deny from 64.120.232.114
deny from 64.120.141.34
allow from all
0
ionFish