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?
Antworten:
Einfach. Stellen Sie einfach so etwas in Ihrer Hauptkonfiguration oder Ihrer virtuellen Konfiguration ein:
Die
<Directory></Directory>
Anweisung lautet im Wesentlichen: „Verwenden Sie diese Regeln für alle Elemente in diesem Verzeichnis. Und durch "dieses Verzeichnis", das sich auf das bezieht,/var/www/path/to/your/web/documents
was ich in diesem Beispiel festgelegt habe, das aber geändert werden sollte, um dem lokalen Verzeichnispfad Ihrer Site zu entsprechen.Als nächstes
<Directory></Directory>
ändern Sie innerhalb des Bereichs das standardmäßige Apache-Verhalten, dasAllow
standardmäßig auf eingestellt istOrder Deny,Allow
. Als nächstesDeny from all
verweigern Sie jedem Zugriff. Das sind dieAllow from
Anweisungen, die den Zugriff von127.0.0.1 ::1
(localhost-IP-Adresse)localhost
(localhost selbst) ermöglichen. Das ist alles Standard. Da der Zugriff vonlocalhost
für viele interne Systemprozesse benötigt wird.Was folgt, ist das, was Ihnen wichtig ist.
Die
Allow from
für192.168
sowie10
ermöglicht den Zugriff von jedem / alle Netzadressen im Netzwerkbereich , die von diesen Nummern vorangestellt wird.Also durch die Angabe ,
192.168
dass im Grunde bedeutet , wenn ein Benutzer wie eine Adresse hat192.168.59.27
oder192.168.1.123
sie in der Lage sein , die Website zu sehen.Und in ähnlicher Weise unter Verwendung des
Allow from
für den10
Präfix Stellt sicher , dass , wenn jemand eine IP - Adresse hat10.0.1.2
oder sogar10.90.2.3
sie in der Lage sein , den Inhalt zu sehen.Nahezu alle internen Netzwerke auf der Welt verwenden entweder die
192.168
Reichweite oder etwas in der10
Reichweite. 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.quelle
Satisfy Any
soll in diesem Fall tun? Ich weiß nichts über all das, aber wenn es in meinem Szenario vorhanden war, konnte ich<Location /path>
von einem externen Netzwerk auf die Seite (die ich verwendet habe ) zugreifen . Das Entfernen hat jedoch meine Probleme behoben. Es wäre schön zu verstehen, warum dies der Fall war, da es ein wenig besorgt war, dass ich auf die Seite zugreifen könnte, selbst wenn die Regeln vorhanden sind.Wenn Sie in dieser Antwort landen, beachten Sie bitte, dass dies spezifisch für Apache 2.2 ist.
Apache 2.4 hat diese Direktiven verworfen.
Der neue Weg ist die Verwendung des Moduls
mod_authz_host
und derRequire
Anweisungen. ( Link )In Apache 2.4 sollten Sie tun
und entfernen Sie alle Zulassungsanweisungen.
quelle
Fügen Sie diesen Abschnitt in Ihre Virtual Host-Direktive ein:
Ersetzen Sie Ihre IP oben. Dies sollte nicht für die finanzielle Sicherheit verwendet werden.
quelle
Ich weiß nicht, wie Sie Ihr Netzwerk eingerichtet haben, aber ich gehe davon aus, dass Sie versuchen, eine bessere Antwort zu finden.
Nehmen wir an, Sie haben ein kleines Büro mit DSL-Anschluss. Sie hätten eine statische öffentliche IP-Adresse oder einen Adressblock für Ihre Leitung, ein DSL-Modem und eine Firewall. Ohne auf die Details einzugehen, wie dies geschieht, komme ich zum wichtigen Teil.
Sie sollten NAT (Network Address Translation) verwenden. Auf diese Weise können sich die öffentlichen IP-Adressen auf der WAN-Seite (Internet) Ihres Netzwerks befinden und private IP-Adressen (wie 10.0.0.100) innerhalb des Netzwerks auf der LAN-Seite verwenden. Dies ist das Standardverfahren. Wenn Sie einen Webserver in Ihrem Netzwerk hosten, verwenden Sie die Portweiterleitung oder einen ähnlichen Mechanismus, um den Webdatenverkehr auf Ihren Webserver zu leiten.
In diesem Standardszenario verwenden alle internen Computer die privaten IP-Adressen.
Angenommen, Sie haben eine ähnliche Standard-Netzwerkkonfiguration, würden Sie die IP-Adresse Ihres Computers von einer öffentlichen IP-Adresse in eine private IP-Adresse ändern. Ihr Netzwerk verfügt möglicherweise über eine DHCP-Einrichtung, über die Ihr Computer eine verfügbare IP-Adresse anfordern kann. Dies bedeutet, dass Sie anstelle der Angabe einer IP-Adresse die Verwendung von DHCP auswählen und eine IP-Adresse zugewiesen wird. Wenn DHCP nicht verfügbar ist, müssen Sie auf einigen anderen Computern nach einem privaten IP-Adressraum suchen, der möglicherweise verwendet wird, und eine IP-Adresse innerhalb des nicht verwendeten Bereichs auswählen. Sie können diese nicht verwendete IP-Adresse in Ihrem Netzwerk-Setup angeben. Dies sollte verhindern, dass Ihr System im Internet angezeigt wird.
quelle