it-swarm.com.de

Ermöglichen des Zugriffs auf einen virtuellen Apache-Host nur vom lokalen Netzwerk aus

Ich habe eine Webseite auf einem von mir verwalteten Linux-Server, auf dem Apache 2.2 ausgeführt wird. Dieser Server ist für einige andere Dienste für die Außenwelt sichtbar.

Ich möchte Apache so konfigurieren, dass ein bestimmter virtueller Host nur innerhalb des lokalen Netzwerks sichtbar ist, damit ich eine Webanwendung bereitstellen kann, um Feedback von anderen Personen in meiner Organisation zu erhalten. Ich denke, das hat mit der Allow-Direktive zu tun, aber meine Experimente laufen nicht gut.

Wie kann ich meine Konfigurationsdatei ändern, um dies zu erreichen? Sollte ich auch die Firewall-Konfiguration ändern?

19
Btz

Einfach. Stellen Sie einfach so etwas in Ihrer Hauptkonfiguration oder Ihrer virtuellen Konfiguration ein:

<Directory /var/www/path/to/your/web/documents>

  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1 ::1
  Allow from localhost
  Allow from 192.168
  Allow from 10
  Satisfy Any

</Directory>

Die <Directory></Directory> -Anweisung besagt im Wesentlichen: „Verwenden Sie diese Regeln für alle Elemente in diesem Verzeichnis. Und durch "dieses Verzeichnis", das sich auf den /var/www/path/to/your/web/documents bezieht, den ich in diesem Beispiel festgelegt habe, der jedoch geändert werden sollte, um dem lokalen Verzeichnispfad Ihrer Site zu entsprechen.

Als Nächstes ändern Sie im Bereich <Directory></Directory> das standardmäßige Apache-Verhalten, das Allow standardmäßig auf Order Deny,Allow eingestellt ist. Als nächstes setzen Sie Deny from all von verweigert allen den Zugriff. Es folgen die Anweisungen Allow from, die den Zugriff von 127.0.0.1 ::1 (lokale Host-IP-Adresse), localhost (lokaler Host selbst) ermöglichen. Das ist alles Standard. Da der Zugriff von localhost für viele interne Systemprozesse erforderlich ist.

Was folgt, ist das, was Ihnen wichtig ist.

Der Allow from für 192.168 sowie 10 ermöglichen den Zugriff von allen Netzwerkadressen innerhalb des Netzwerkbereichs, denen diese Nummern vorangestellt sind.

Wenn Sie also 192.168 angeben, bedeutet dies im Grunde, dass ein Benutzer die Website sehen kann, wenn er eine Adresse wie 192.168.59.27 oder 192.168.1.123 hat.

Und auf ähnliche Weise stellt die Verwendung des Allow from für das 10 -Präfix sicher, dass jemand, der eine IP-Adresse von 10.0.1.2 oder sogar 10.90.2.3 hat, den Inhalt sehen kann.

Nahezu alle internen Netzwerke der Welt verwenden entweder den Bereich 192.168 oder einen Bereich 10. Nichts externes. Wenn Sie diese Kombination verwenden, wird Ihr Ziel erreicht, den Zugriff auf die Außenwelt zu blockieren, jedoch nur den Zugriff von Ihrem lokalen Netzwerk aus zuzulassen.

12
JakeGould

Wenn Sie in dieser Antwort landen, beachten Sie, dass dies spezifisch für Apache 2.2 ist.

Apache 2.4 hat diese Direktiven verworfen.

Die neue Methode verwendet die Anweisungen mod_authz_Host und Require. ( link )

In Apache 2.4 sollten Sie tun

<Directory /var/www/ncp-web/>
  Require Host localhost
  Require ip 127.0.0.1
  Require ip 192.168
  Require ip 10
</Directory>

und entfernen Sie alle Zulassungsanweisungen.

12
nachoparker

Fügen Sie diesen Abschnitt in Ihre virtuelle Host-Direktive ein:

<Location /mypathurl>
    Order deny,allow
    Deny from all
    Allow from 192.168.1.10
</Location>

Ersetzen Sie Ihre IP oben. Dies sollte nicht für die finanzielle Sicherheit verwendet werden.

5
Chloe