Ausführen einer Website ausschließlich in einem LAN

Ausführen einer Website ausschließlich in einem LAN

Das ist eine große Frage, deshalb suche ich nur nach einer allgemeinen Übersichtsantwort, die mir bei der Recherche der Teile hilft, die ich nicht weiß.

Das Problem besteht im Wesentlichen darin, dass ich einen dedizierten Mac Mini (oder eine ähnliche macOS-Maschine) nehmen und ihn zum Hosten einer Website verwenden muss, auf die nur Personen im selben lokalen Netzwerk zugreifen können.

Mein erster Instinkt war, eine Domain (und ein Zertifikat) zu kaufen und sie auf eine lokale Adresse (z. B. 10.10.10.152) zu verweisen, von der ich weiß, dass mein Server dort steht. Auf diese Weise wird jeder, der versucht, auf diese Domain zuzugreifen, lokal auf meine Website umgeleitet, wenn er sich im richtigen Netzwerk befindet.

Wird das funktionieren? Wenn ja, was sind die wichtigsten Schritte, um eine Domäne zu erstellen, ein Zertifikat zu installieren und sie auf eine lokale IP zu verweisen?

Antwort1

eine Domain (und ein Zertifikat) kaufen und sie auf eine lokale Adresse (z. B. 10.10.10.152) verweisen, von der ich weiß, dass mein Server dort steht. Auf diese Weise wird jeder, der versucht, auf diese Domain zuzugreifen, lokal auf meine Website umgeleitet, wenn er sich im richtigen Netzwerk befindet.

Das würde funktionieren, aber es besteht absolut keine Notwendigkeit, etwas zu kaufen.

Sie können lokale DNS einrichten für z.B.service.example.org(wenn Sie besitzenexample.org), oderservice.lanohne eigene Domain. Richten Sie den A-Eintrag auf Ihren privaten Webserver.

Wenn Sie HTTPS (TLS) benötigen, können Sie entweder ein Zertifikat selbst signieren und diesem Zertifikat von jedem Ihrer Clients explizit vertrauen, oder Sie starten eine neue Zertifizierungsstelle (dauert mit OpenSSL nur eine Minute), signieren ein Zertifikat fürservice.lanund stellen Sie Ihren Clients das CA-Stammzertifikat als Vertrauensanker zur Verfügung.

Antwort2

Basierend auf der Diskussion in den Kommentaren können Sie beispielsweise Apache verwenden und etwas wie „unter Verwendung des Moduls mod_authz_hostund der RequireAnweisungen“ festlegen.

<Directory /var/www/web/>
  Require host localhost
  Require ip 127.0.0.1
  Require ip 192.168.0
</Directory>

(oben nehme ich an, Ihr lokales Netzwerk ist 192.168.0.0/24)

Diese Konfiguration beschränkt den Zugriff auf localhost/127.0.0.1alle Hosts im Netzwerk192.168.0.0/24

Antwort3

Ich weiß nicht, ob ich zufällig oder mit Absicht auf die Idee gekommen bin, eine Domäne zu registrieren/konfigurieren und ein Zertifikat zu kaufen – aber mangels Erfahrung mit Netzwerkkonfiguration und Systemadministration ist dies wahrscheinlich der kürzeste Weg zum Ziel.

Alternative Ansätze wären

  • Stelle die Website im Internet bereit, erlaube nur den Zugriff auf den ACME-Pfad und hole dir ein kostenloses Zertifikat von LetsEncrypt (dafür ist auch ein gültiger öffentlicher DNS-Eintrag erforderlich – also eine einigermaßen statische IP oder ein dynamischer DNS-Dienst)
  • Bauen Sie Ihre eigene Zertifizierungsstelle auf, verteilen Sie das CA-Zertifikat an die Clients und verwenden Sie es, um ein Zertifikat für den Dienst zu signieren
  • oder TLS überhaupt nicht verwenden (nicht empfohlen).

Sie benötigen eine registrierte Domäne mit Datensätzen, um ein Zertifikat von einer Zertifizierungsstelle eines Drittanbieters zu erhalten. Wenn Sie eine der anderen Methoden wählen, benötigen Sie keine registrierte Domäne/öffentlich zugängliche DNS-Datensätze – Sie könnten (zum Beispiel) dnsmasq für Ihr internes DNS verwenden (einfache Bereitstellung von Overrides bestimmter DNS-Namen).

Solange Ihre Internetverbindung keinen externen Zugriff auf die IP-Adresse des Hosts zulässt, benötigen Sie keine zusätzlichen Sicherheitskontrollen. Wenn Sie diese jetzt jedoch hinzufügen, können Sie möglicherweise zukünftige Unfälle verhindern.

verwandte Informationen