
Ich habe einen Linux-Server in meinem lokalen Netzwerk, auf dem einige Dienste laufen. Ich möchte diesen Server verschlüsselt über den Namen meiner Domäne erreichen können, aber den LAN-Zugriff frei lassen. Ich habe versucht, danach zu suchen, aber nichts gefunden. Durch die Erstellung eines weiteren Servers VirtualHost
mit der internen IP des Servers konnte das externe Netzwerk unverschlüsselt eine Verbindung herstellen.
Ist es übrigens möglich, auf derselben Grundlage den Zugriff auf ein Verzeichnis zu verweigern?
Edit: Ich denke, ich werde einfach alles verschlüsseln und es nicht über die IP zugänglich machen
Antwort1
Ich habe es herausgefunden. Ich habe einfach Port 80 auf dem Router nicht weitergeleitet und die Umleitung von http auf https auf dem Server deaktiviert.
Antwort2
mod_authz_core
Sie können die Zugriffskontrollbefehle von Apache verwenden – dies ist ein Kernmodul und Sie müssen nichts Besonderes installieren oder aktivieren.
Hier finden Sie ein Tutorial:https://httpd.apache.org/docs/2.4/howto/access.html
Um es zu verwenden, richten Sie es in Ihrem <VirtualHost>
unter einem <Directory>
Abschnitt ein. Diese Anweisung muss in einem festgelegt werden, daher sollten Sie in Ihrem <Directory>
einen Abschnitt haben, auch wenn Sie die an anderer Stelle konfigurierte Standardverzeichnisverwaltung verwenden möchten:<Directory>
<VirtualHost>
<VirtualHost *:80>
DocumentRoot "/some/docroot"
ServerName my.domain.com
<Directory "/some/docroot">
<RequireAll>
Require ip 192.168.1.0/24
</RequireAll>
</Directory>
</VirtualHost>
Dies führt dazu, dass alle Anrufe an Port 80 von außerhalb Ihres LAN (hier dargestellt als 192.168.1.0/24 – ändern Sie sie entsprechend Ihrer tatsächlichen LAN-Adresse) eine 403 Forbidden
Antwort erhalten.