So erstellen Sie ein Intranet mit OpenVPN unter Ubuntu 16.04

Einführung

Intranets sind private Netzwerke, die von Organisationen erstellt wurden, um die Kommunikation und Datenübertragung zu vereinfachen. Ein Intranet wird aufgebaut, indem mehrere Netzwerke auf der ganzen Welt verbunden werden, um ein neues virtuelles Netzwerk zu erstellen. Mit dem Intranet verbundene Benutzer können auf bestimmte interne Websites zugreifen oder auf andere Netzwerkdienste und Inhalte im Intranet zugreifen. Wenn ein externer Mitarbeiter beispielsweise auf vertrauliche Informationen zugreifen möchte, die sich im Hauptnetzwerk seines Arbeitgebers befinden, stellt der Mitarbeiter eine Verbindung zu einem VPN-Server im Hauptnetzwerk des Büros her. Diese VPN-Verbindung würde einen sicheren Tunnel zwischen dem Mitarbeiter und dem Büro herstellen. Im Netzwerk wird die Verbindung des Mitarbeiters so angezeigt, als ob er lokal mit dem Hauptnetzwerk verbunden wäre und keine externe Verbindung verwendet.

In diesem Lernprogramm konfigurieren Sie Dienste, die nur Clients zur Verfügung stehen, die mit dem VPN verbunden sind, einschließlich Dateifreigaben und einer Website. Außerdem erfahren Sie, wie Sie den Zugriff auf diese Ressourcen verwalten. Wenn Sie fertig sind, verfügen Sie über ein grundlegendes Intranet, das Sie problemlos erweitern können, um Ihre Anforderungen zu erfüllen.

Voraussetzungen

Um dieses Lernprogramm abzuschließen, benötigen Sie Folgendes:

  • Ein neuer Ubuntu 16.04 Server.

  • Ein Standardbenutzerkonto mit den Berechtigungen vonsudo. Sie können ein Standardkonto einrichten, indem Sie die Schritte 2 und 3 des LernprogrammsInitial Server Setup with Ubuntu 16.04ausführen.

  • OpenVPN installiert und konfiguriert auf Ihrem Server. Schließen Sie das Tutorial vonHow to Set Up an OpenVPN Server on Ubuntu 16.04ab, bevor Sie fortfahren. Wir gehen davon aus, dass sich der VPN-Server an der IP-Adresse10.8.0.1 des VPN befindet, der im OpenVPN-Lernprogramm verwendeten Adresse, und dass Sie von Ihrem lokalen Computer aus eine Verbindung zum VPN herstellen können.

  • Ein registrierter Domainname und Zugriff zum Hinzufügen von DNS-Einträgen. In diesem Lernprogramm werdenexample.com und der DNS-Dienst von DigitalOcean verwendet. Um den DNS-Dienst von DigitalOcean mit Ihrer Domain zu verwenden, befolgen Sie die Schritte 1 und 2 unseresHow To Set Up a Host Name with DigitalOcean-Tutorials, um Ihren Domainnamen auf die Nameserver von DigitalOcean zu verweisen.

  • Apache wird mit zwei virtuellen Hosts installiert, die für Ihre Domain konfiguriert sind. Befolgen Sie das TutorialHow to Set Up Apache Virtual Hosts on Ubuntu 16.04, um zwei virtuelle Hosts mit den Namenexample.com undintranet.example.com mit jeweils einer Standard-HTML-Seite einzurichten.

[[Schritt 1 - Installieren und Konfigurieren eines Samba-Dateiservers]] == Schritt 1 - Installieren und Konfigurieren eines Samba-Dateiservers

Beginnen wir mit der Einrichtung von Samba, damit Benutzer in unserem Intranet Dateien gemeinsam nutzen können. Samba unterscheidet sich von anderen Filesharing-Anwendungen wie Dropbox dadurch, dass es keine Weboberfläche oder Speicherbeschränkung gibt. Stattdessen gibt Samba Verzeichnisse und Dateien auf dem Server selbst frei, sodass Sie Ihre Daten nicht auf externe Server hochladen müssen, die Sie nicht kontrollieren.

Wir werden zwei Freigabeverzeichnisse erstellen. Das erste Verzeichnis ist für alle Benutzer in unserem privaten Netzwerk zugänglich. Das zweite Verzeichnis ist nur für die von uns angegebenen Benutzer zugänglich. Wir werden diese AnteileAllusers bzw.Restricted nennen.

Installieren Sie zuerst Samba und seine Voraussetzungen mit dem folgenden Befehl:

sudo apt-get install samba samba-common python-glade2 system-config-samba

Erstellen Sie als Nächstes eine Sicherungskopie der Samba-Konfigurationsdatei, für den Fall, dass wir beim späteren Ändern einen Fehler machen.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Samba benötigt auch Zugriff über die Firewall. Fügen Sie daher eine Regel für den Samba-Verkehr hinzu:

sudo ufw allow samba

Erstellen Sie nun die freigegebenen Verzeichnisse. Erstellen Sie zunächst das Verzeichnisallusers:

sudo mkdir -p /samba/allusers

Erstellen Sie dann das Verzeichnisrestricted:

sudo mkdir -p /samba/restricted

Bearbeiten Sie nun die Samba-Konfigurationsdatei, um den Dienst einzurichten und die Freigaben zu definieren. Öffnen Sie die Samba-Konfigurationsdatei:

sudo nano /etc/samba/smb.conf

Danndelete all the content, da wir Stück für Stück unsere eigene Konfiguration von Grund auf neu schreiben werden.

Zunächst legen wir einige globale Einstellungen für den Samba-Server fest. Fügen Sie der Konfigurationsdatei die folgenden Zeilen hinzu:

/etc/samba/smb.conf

[global]
        workgroup = WORKGROUP
        server string = Samba Server %v
        netbios name = ubuntu
        security = user
        map to guest = bad user
        dns proxy = no
        interfaces = 10.8.0.1/8
        bind interfaces only = yes

Lassen Sie uns jede Einstellung aufschlüsseln:

Die Einstellungworkgroupgibt die Arbeitsgruppe an, in der der Server angezeigt wird, wenn er von Clients abgefragt wird. Die Standardgruppe ist "WORKGROUP" für Windows. Sie können sie jedoch ändern, wenn Sie bereits einen Arbeitsgruppennamen haben, den Sie verwenden.

Die Zeilenserver string undnetbios geben den Namen des Samba-Servers bzw. seiner Plattform an.

Die Einstellungsecuritygibt an, dass dies ein eigenständiger Dateiserver mit eigenen Benutzerkonten ist. Die Einstellungmap to guestbehandelt alle Anmeldungen mit einem ungültigen Benutzernamen oder Kennwort als Gastbenutzer, und die Einstellungdns proxyweist Samba an, nicht zu versuchen, Domänennamen aufzulösen, da wir für dieses Intranet kein eigenes DNS ausführen.

Mit der Einstellunginterfacesgeben wir an, dass wir nur auf Verbindungen warten, die die IP des VPN-Servers verwenden, nicht auf eine öffentlich zugängliche IP. Dasbind interface weist Samba an, nur Anfragen abzuhören, die von unserem VPN stammen.

Als nächstes müssen wir die Logging-Einstellungen für Samba festlegen. Fügen Sie diesen Konfigurationsblock der Datei im Abschnitt[global] hinzu:

/etc/samba/smb.conf

[global]
        ...

        ## Logging
        log level = 2
        log file = /var/log/samba.log.%m
        max log size = 50
        debug timestamp = yes

Die Einstellunglog levelbestimmt den Detaillierungsgrad, den Sie in Ihren Protokolldateien wünschen. Diese Level reichen von 1 bis 10, aber wir werden uns an Level 2 halten, da es sich um ein relativ leichtes Debugging-Level handelt. Die Einstellunglog file gibt den Dateipfad und den Namen der Protokolldatei an, wobeimax log size die Größe der Protokolldatei begrenzt. Die Einstellungdebug timestampenthält Zeitstempel im Protokoll.

Das kümmert sich um die globalen Einstellungen für unseren Server. Jetzt erstellen wir die eigentlichen Freigabedefinitionen. Diese Einstellungen geben an, welche Dateien wir freigeben möchten und wer auf diese Dateien zugreifen darf.

Wir wollen zwei Aktien; einer heißtAllusers und ein anderer heißtRestricted. Definieren wir zuerst den Anteil vonAllusers. Für diese Freigabe können Benutzer Dateien im Verzeichnis/samba/allusersdurchsuchen, schreiben und lesen. Fügen Sie diese Konfiguration zur Datei hinzu:

/etc/samba/smb.conf

#============ Share Defenitions ==================
[Allusers]
        path = /samba/allusers
        browsable = yes
        writable = yes
        guest ok = yes
        read only = no
        force user = nobody

Der Block[Allusers] gibt an, dass die folgenden Einstellungen nur für den AnteilAllusersgelten. Außerdem wird der Name der Freigabe definiert, die den Benutzern angezeigt wird. Die Einstellungpathgibt das Dateiverzeichnis des Ordners an, den wir in unserem Intranet freigeben möchten. Wenn Siebrowsable undwritable aufyes setzen, können Benutzer in diesem Ordner suchen sowie Dateien lesen und schreiben.

Wir möchten, dass alle Benutzer auf diese Freigabe zugreifen, auch wenn sie kein Benutzerkonto auf dem Server haben. Denken Sie daran, dass wir im Abschnittglobal die Einstellungmap to guestangegeben haben. Dies bedeutet, dass Benutzer, die kein Konto oder keine gültigen Anmeldeinformationen haben, weiterhin auf Dateien zugreifen können, die als Gast freigegeben wurden. Wir erlauben diesen Gästen, auf diese Freigabe zuzugreifen, indem wirguest ok aufyes setzen und dann diesen Benutzer zwingen, die Identität vonnobody mitforce user = nobody anzunehmen.

Die Benutzergruppenobodyist eine bekannte Standardbenutzergruppe auf jedem Linux-System. Wir können die gewünschten Berechtigungen für den Ordner/samba/allusersauf den Benutzernobodyetzen. Dann erlauben wir mit Samba mehreren Gästen, diese Identität zu verwenden. Auf diese Weise können wir den Gastbenutzerzugriff auf unser System einfach verwalten.

Weitere Informationen zum Benutzer vonnobodyfinden Sie unterthe Ubuntu wiki undthis answer on StackExchange.

Erstellen wir nun die DateifreigabeRestricted, auf die nur Mitglieder der Gruppesmbrestrictedzugreifen sollten:

/etc/samba/smb.conf

[Restricted]
        path = /samba/restricted
        valid users = @smbrestricted
        guest ok = no
        writable = yes
        browsable = yes

Wir beginnen erneut mit der Angabe des Verzeichnisses, das wir freigeben möchten, und erteilen Browsing- und Schreibberechtigungen, genau wie bei der Freigabe vonallusers. Dann setzen wirvalid users = @smbrestricted, wodurch Samba angewiesen wird, nur Mitgliedern der Gruppesmbrestricted den Zugriff auf die Freigabe zu ermöglichen. Wir werden diese Gruppe in Kürze erstellen.

Das macht es für diesmb.conf Datei. Ihre Datei sollte wie folgt aussehen:

/etc/samba/smb.conf

[global]
        workgroup = WORKGROUP
        server string = Samba Server %v
        netbios name = ubuntu
        security = user
        map to guest = bad user
        dns proxy = no
        interfaces = 10.8.0.1/8
        bind interfaces only = yes

        ## Logging
        log level = 2
        log file = /var/log/samba.log.%m
        max log size = 50
        debug timestamp = yes

#============ Share Defenitions ==================

[Allusers]
        path = /samba/allusers
        browsable = yes
        writable = yes
        guest ok = yes
        read only = no
        force user = nobody

[Restricted]
        path = /samba/restricted
        valid users = @smbrestricted
        guest ok = no
        writable = yes
        browsable = yes

Mit der Samba-Konfiguration können wir die Gruppesmbrestrictederstellen und unseren ersten Benutzer erstellen.

[[Schritt 2 - Konfigurieren des Zugriffs auf Samba-Freigaben]] == Schritt 2 - Konfigurieren des Zugriffs auf Samba-Freigaben

Um den Zugriff auf unsere Freigaben zu ermöglichen, müssen wir ein Benutzerkonto erstellen und den Ordnern, die wir freigeben möchten, entsprechende Berechtigungen zuweisen.

Erstellen Sie zunächst die Gruppesmbrestrictedmit dem folgenden Befehl:

sudo addgroup smbrestricted

Erstellen Sie nun ein Benutzerkonto auf dem Server und fügen Sie es der Gruppesmbrestrictedhinzu. Wir erstellen ein Konto fürclient1, das dem Namen der VPN-Verbindung entspricht, die im vorausgesetzten Lernprogramm erstellt wurde:

sudo useradd client1 -G smbrestricted

Schließlich müssen wir ein Samba-Passwort fürclient1 zuweisen. Mit der von uns eingerichteten Konfiguration verwendet Samba ein eigenes Verifizierungssystem für Anmeldeinformationen, das sich vom Verifizierungssystem des normalen Linux-Systems unterscheidet. Das ist schön, weil wir Benutzer erstellen können, die mit Samba auf Dateifreigaben zugreifen können, ohne ihnen Zugriff auf die Maschine selbst zu gewähren.

Erstellen Sie das Samba-Passwort für den Benutzer vonclient1mit dem folgenden Befehl:

sudo smbpasswd -a client1

[.note] #Note: Wenn Sie Benutzer auf Ihrem System haben, auf die Sie auch auf Samba-Freigaben zugreifen möchten, müssen Sie seit der Anmeldung auch für diese Benutzer ein Samba-Kennwort erstellen Systeme sind mit dieser Konfiguration getrennt.
#

Als Nächstes legen wir die Berechtigungen für die Verzeichnisse fest, die wir freigeben möchten. Zunächst legen wir die Berechtigungen für das Verzeichnisallusersfest:

sudo chmod -R 766 /samba/allusers
sudo chown -R nobody:nogroup /samba/allusers

Dies gewährt dem Eigentümer des Verzeichnisses vollständige Berechtigungen und nur Lese- und Schreibberechtigungen für die Gruppe und alle anderen. Anschließend ändern wir den Eigentümer und die Gruppe des Freigabeverzeichnisses mit dem Befehlchown innobody:nogroup.

Es gibt jedoch ein kleines Problem beim Ändern des Eigentümers und der Gruppe innobody:nogroup. Der Befehlchmod -R 766gewährt nur aktuellen und neuen Dateien / Verzeichnissen im Verzeichnis/samba/allusersLese- und Schreibberechtigungen, unabhängig davon, wer diese Dateien oder Verzeichnisse erstellt hat. Dies bedeutet, dass Sie beim Versuch, eine neue Datei in einem Ordner zu erstellen, der sich im Verzeichniswithin des Verzeichnisses/samba/allusersbefindet, einen Fehler mit unzureichenden Berechtigungen erhalten. Denken Sie daran, dass Sie, wenn Sie innerhalb des Anteils vonAllusersarbeiten, die Identität vonnobody annehmen undnobody nur über sehr eingeschränkte Berechtigungen verfügt.

Um dieses Problem zu lösen, verwenden wirAccess Control Lists oder ACLs. Mithilfe von ACL-Regeln können wir neu erstellten Dateien und Verzeichnissen automatisch Berechtigungen für einen Benutzer und / oder eine Gruppe zuweisen.

Legen Sie die ACL-Regeln für den Ordner/samba/allusersmit den folgenden Befehlen fest:

sudo setfacl -dm g:nogroup:rw /samba/allusers/
sudo setfacl -dm u:nobody:rw /samba/allusers/

Der Befehlsetfacl -dm gibt an, dass wir neue Berechtigungsregeln für ein Verzeichnis oder eine Datei definieren und dass diese Berechtigungen in Zukunft auch auf neu erstellte Objekte angewendet werden sollten. g:nogroup:rw undu:nobody:rw sind die neuen ACL-Regeln, die dem Benutzer vonnobodyund den Mitgliedern der Gruppenogroup Lese- und Schreibberechtigungen erteilen.

Weitere Informationen zu ACLs finden Sie unterUbuntu Wiki.

Das kümmert sich um den Gastanteil. Jetzt können wir Berechtigungen für das Verzeichnisrestrictedfestlegen:

sudo chmod -R 770 /samba/restricted
sudo chown root:smbrestricted /samba/restricted

Dieses Mal blockieren wir den Zugriff auf dieses Verzeichnis vollständig, mit Ausnahme des Eigentümers und der Mitglieder der Gruppesmbrestricted mitchmod 770. Wir müssen keine ACL-Regeln festlegen, da die Berechtigungen in diesem freigegebenen Ordner normalerweise funktionieren, da wir authentifizierte Benutzerkonten verwenden.

Nachdem wir die Freigaben konfiguriert haben, starten Sie den Samba-Server neu, damit er die neue Konfigurationsdatei verwendet:

sudo service smbd restart

Wir können jetzt eine Verbindung zum Samba-Server herstellen, um Dateien hoch- oder herunterzuladen.

[[Schritt-3 -—- Herstellen einer Verbindung zum Samba-Server von einem Client]] == Schritt 3 - Herstellen einer Verbindung zum Samba-Server von einem Client aus

Das Ziel unseres Intranets ist es, auf Dateien in einer sicheren Umgebung zuzugreifen und sie gemeinsam zu nutzen, als wären wir mit dem Hauptnetzwerk verbunden. Wenn ein Client eine Verbindung zu Samba herstellt, werden die Freigabe-Verzeichnisse im Datei-Explorer dieses Clients bereitgestellt. Testen wir das mal.

Verbindung von Windows

Öffnen Sie zum Herstellen einer Verbindung von Windows aus den Windows-Explorer. Geben Sie in der Navigationsleiste die Samba-Serveradresse\10.8.0.1 ein und drücken Sie die TasteEnter.

Windows explore connection through the navbar

Es kann einen Moment dauern, bis Windows eine Verbindung hergestellt hat. Wenn die Verbindung erfolgreich hergestellt wurde, werden die freigegebenen Ordner im Intranet angezeigt:

Available shares

Beachten Sie, dass auf der RegisterkarteNetwork in der SymbolleisteQuick accessein neuer Netzwerk-Mount-Punkt erstellt wird. Der Name des Mount-Punkts lautet10.8.0.1 und entspricht der IP-Adresse des VPN.

Sie greifen wie bei jedem anderen Ordner auf die Freigabe vonAlluserszu, da keine Anmeldeinformationen erforderlich sind. Doppelklicken Sie einfach auf den Ordner, um dessen Inhalt anzuzeigen:

The Allusers share contents

Doppelklicken Sie auf den OrdnerRestricted, um auf die FreigabeRestricted zuzugreifen. Das Popup-Fenster vonWindows Securityzeigt an, dass Netzwerkanmeldeinformationen erforderlich sind, um Zugriff zu erhalten.

Restricted share permissions prompt

Geben Sie den Benutzernamen und das Kennwort für den von Ihnen erstellten Benutzer ein und aktivieren Sie optional das Kontrollkästchen, um Ihre Anmeldeinformationen zu speichern. Klicken Sie dann aufOk, um eine Verbindung herzustellen.

The contents of the restricted share

Sobald die Verbindung hergestellt ist, können Sie neue Dateien oder Ordner erstellen oder Ordner auf Ihren Server ziehen, um sie hochzuladen.

Verbindung von Ubuntu

Um eine Verbindung von Ubuntu herzustellen, öffnen Sie den Datei-Explorer und wählen Sie die OptionConnect to Server in der linken Seitenleiste. Dies öffnet einen neuen Bildschirm, in dem wir eine Serveradresse eingeben können.

The Connect To Server option

Geben Siesmb://10.8.0.1/ ein und klicken Sie auf die SchaltflächeConnect in der unteren rechten Ecke. Abhängig von Ihrer Verbindungsgeschwindigkeit kann es einige Sekunden dauern, bis der PC eine Verbindung zum Server hergestellt hat. Wenn Sie eine Verbindung hergestellt haben, wird ein Bildschirm mit allen freigegebenen Verzeichnissen auf dem Server angezeigt:

Available shares

Um auf die Freigabe vonAlluserszuzugreifen, doppelklicken Sie einfach auf den Ordner. Ein Anmeldebildschirm wird angezeigt, in dem Sie nach einem Benutzernamen und einem Kennwort gefragt werden. Für dieAllusers-Freigabe sind kein Benutzername und kein Kennwort erforderlich. Wählen Sie daherAnonymous für die OptionConnect As aus. Klicken Sie aufConnect und das Freigabeverzeichnis wird für Sie geöffnet.

Connecting anonymously

Beachten Sie, wie diese Freigabe-Verzeichnisse in Ihrem Dateisystem bereitgestellt werden, nachdem Sie darauf zugegriffen haben. DieAllusers-Freigabe wird neben den anderen lokalen Laufwerken als Netzwerklaufwerk bereitgestellt.

Samba-6

Das Laufwerk bleibt aktiviert, bis das System neu gestartet oder das Laufwerk deaktiviert wird.

Um auf die Freigabe vonRestrictedzugreifen zu können, benötigen Sie einen gültigen Benutzernamen und ein gültiges Kennwort für die Anmeldung. Doppelklicken Sie aufRestricted
und der Anmeldebildschirm wird erneut angezeigt. Wählen Sie für die OptionConnect AsRegistered User aus und geben Sie den Benutzernamen und das Kennwort
in die entsprechenden Felder ein, wobei die OptionDomain unverändert bleibt. Klicken Sie dann aufConnect, um auf die freigegebenen Dateien zuzugreifen.

Connecting as the client1 user

Anschließen von einem Mac

Um eine Verbindung von Ihrem Mac herzustellen, öffnen Sie den Finder, wählen Sie das MenüGo und wählen SieConnect to Server…. Verwenden Sie dannsmb://10.8.0.1/ fürServer Address:

Connecting from a Mac

Der Rest des Verbindungsprozesses ist identisch mit dem Verbindungsprozess von Linux oder Windows. Sie werden aufgefordert, einen Benutzernamen und ein Kennwort einzugeben, und Sie können die verfügbaren Freigaben anzeigen und eine Verbindung herstellen.

Das kümmert sich um Ihren Dateiserver. Schauen wir uns nun an, wie Sie Apache so konfigurieren, dass Websites intern und extern auf demselben Server gehostet werden.

[[Schritt 4 - Konfigurieren des Zugriffs auf virtuelle Apache-Hosts]] == Schritt 4 - Konfigurieren des Zugriffs auf virtuelle Apache-Hosts

Vor diesem Lernprogramm haben Sie zwei virtuelle Hosts erstellt, die für die Verwendung auf unserem Server konfiguriert werden. Der erste Host,example.com, ist für die breite Öffentlichkeit zugänglich. Dies ist möglicherweise die wichtigste öffentliche Website für Ihre Domain. Auf den zweiten Host,intranet.example.com, können nur Clients zugreifen, die mit dem Intranet verbunden sind.

Um den Zugriff aufintranet.example.com zu beschränken, bearbeiten wir die Konfigurationsdatei für diesen virtuellen Host. Öffnen Sie die Datei/etc/apache2/sites-available/intranet.example.com.conf:

sudo nano /etc/apache2/sites-available/intranet.example.com.conf

Ändern Sie dann die Deklaration vonVirtualHostwie folgt:

example.com.conf’>/etc/apache2/sites-available/intranet.example.com.conf

dazu:

example.com.conf’>/etc/apache2/sites-available/intranet.example.com.conf

Vor der Änderung hat Apache Anforderungen fürinternal.example.com auf allen Netzwerkschnittstellen bereitgestellt. Nach dieser Änderung werden nur noch Anfragen auf unserer Intranet-Oberfläche bearbeitet. Dies ähnelt der Konfiguration, die wir für Samba verwendet haben.

Speichern Sie die Datei und starten Sie den Apache-Dienst neu:

sudo systemctl restart apache2

Wir müssen auch Verbindungen über UFW zulassen, damit Apache ordnungsgemäß funktioniert. Wenn Sie dies noch nicht getan haben, führen Sie diesen Befehl aus, um den Datenverkehr durch die Firewall für Apache zuzulassen:

sudo ufw allow http

Und wenn Sie planen, HTTPS-Verkehr zuzulassen, lassen Sie dies jetzt zu oder konfigurieren Sie ihn später mit:

sudo ufw allow https

Jetzt konfigurieren wir Domain-Namen, damit wir einfacher auf unsere Ressourcen zugreifen können.

[[Schritt-5 - Konfigurieren von Domänennamen]] == Schritt 5 - Konfigurieren von Domänennamen

In diesem Schritt konfigurieren wir unseren Domainnamen so, dass der Datenverkehr für das Intranet umgeleitet wird und gleichzeitig die öffentlich zugängliche Website bereitgestellt wird. Bevor Sie mit diesem Artikel beginnen, sollten Sie Ihren Domainnamen auf die Nameserver von DigitalOcean verweisen.

[.note] #Note: Wenn Sie über eigene Nameserver verfügen, möchten Sie diese Einstellungen stattdessen in der Systemsteuerung Ihres DNS-Anbieters vornehmen.
#

Melden Sie sich bei Ihrem DigitalOcean-Konto an und klicken Sie in der oberen Leiste auf die RegisterkarteNetworking. Sie sehen dann einen Bildschirm wie den folgenden:

Domain-screen-1

Um Ihrem DigitalOcean-Konto eine Domain hinzuzufügen, geben Sie Ihren Domainnamen in das erste Feld unter der ÜberschriftAdd a domainein. Geben Sie im zweiten Feldpublic IP Ihres Intranetservers ein und klicken Sie auf die SchaltflächeCreate record.

Domain-screen-2

Ihr neuer Domainname wird dann wie im zweiten Bild unter der ÜberschriftDomainsangezeigt. Klicken Sie nun aufMore neben der Domain, die Sie verwenden möchten, und wählen Sie dannView domain aus.

View-domain

Dadurch wird die Einstellungsseite für diese bestimmte Domain geöffnet.

Domain-settings

Für diese Domain müssen drei Datensätze hinzugefügt werden. Eine für das Intranet und zwei weitere, um sicherzustellen, dass Anfragen für unsere öffentliche Website korrekt gelöst werden.

Erstellen Sie zunächst einen Datensatz für das Intranet.

  1. Klicken Sie auf das orangefarbene Feld "A" unterSelect record type.

  2. Geben Sieintranet in das FeldEnter Name ein.

  3. Geben Sie als IP-Adresseprivate IP address für Ihren Server ein, die10.8.0.1 sein sollte.

Creating the Intranet subdomain record

Als Nächstes benötigen wir einen Datensatz, der den Nicht-Intranet-Verkehr an die richtige Stelle leitet. Erstellen Sie einen weiteren A-Datensatz, setzen Sie den Namen auf@ und die IP aufpublic IP Ihres Servers.

Creating the @ A record

Erstellen Sie abschließend einen CNAME-Datensatz fürwww. Klicken Sie in der oberen Ecke auf die Registerkarte CNAME, setzen Sie den Namen aufwww und geben Sie Ihren Domainnamen (example.com als Hostnamen ein:

Creating the www CNAME record

Wenn Sie fertig sind, sollten Ihre Domain-Einträge wie folgt aussehen:

Reviewing All records

Der A-Datensatz vonintranetleitet Anforderungen nur dann anintranet.example.com, wenn er vom VPN-Server stammt. Dies bedeutet, dass nur mit dem VPN verbundene Clients auf Webinhalte zugreifen können, die aufintranet.example.com gehostet werden. Der zweite "A" -Datensatz und CNAME zeichnen direkten Datenverkehr auf, der keinen Zugriff auf das Intranet für die öffentlich zugängliche Website hat.

[.note] #Note: Es kann bis zu 72 Stunden dauern, bis sich diese DNS-Änderungen verbreiten.
#

Gehen Sie zu Ihrem Browser und besuchen Siehttp://intranet.example.comwithout being connected to the VPN. Sie sollten sehen, dass Ihr Browser versucht, die Webseite nur zu laden, um einen Fehler zurückzugeben. Jetztconnect to your VPN und lade die Webseite neu. Sie können jetzt auf die Webseite zugreifen, da der DNS-Eintrag aufgelöst wird.

Successful connection to the internal web site

Nachdem wir unser Intranet gründlich konfiguriert und getestet haben, schauen wir uns an, wie wir den Zugriff auf dieses neu erstellte Netzwerk verwalten.

[[Schritt 6 - Verwalten des Zugriffs auf das Intranet]] == Schritt 6 - Verwalten des Zugriffs auf das Intranet

Der letzte Schritt in diesem Tutorial befasst sich mit der Verwaltung des Zugriffs auf unser Intranet und seine freigegebenen Dateien. Zunächst wird untersucht, wie Client-Zertifikate für den VPN-Zugriff gesperrt werden. Anschließend sehen wir uns an, wie Benutzer aus der Gruppesmbrestrictedentfernt werden. Schließlich werden wir prüfen, ob zusätzliche Benutzer hinzugefügt werden und ihnen der erforderliche Zugriff gewährt wird.

VPN-Zugang widerrufen

Um den Zugriff auf das VPN zu widerrufen, würden wir das Zertifikat eines Kunden widerrufen. Auf diese Weise können wir den Zugriff auf unser Intranet verweigern, ohne neue Zertifikate für andere Clients oder den Server zu generieren.

Zunächst müssen wir der Konfigurationsdatei unseres VPN-Servers eine zusätzliche Zeile hinzufügen, damit wir jedes Client-Zertifikat widerrufen können, ohne das ursprüngliche CA-Zertifikat oder Server-Zertifikat zu ändern. Dies erleichtert die Zugriffskontrolle
erheblich, da Sie jetzt ein einzelnes Zertifikat problemlos im laufenden Betrieb widerrufen können, ohne andere Clientverbindungen zu unterbrechen.

Öffnen Sie die VPN-Konfigurationsdatei:

sudo nano /etc/openvpn/server.conf

Fügen Sie am Ende der Datei die folgende Codezeile hinzu:

/etc/openvpn/server.conf

crl-verify crl.pem

Dadurch wird der VPN-Server angewiesen, nach der Dateicrl.pem zu suchen, bei der es sich um eine Zertifikatsperrliste handelt. Es enthält eine Liste aller Zertifikate, die nicht mehr auf unser VPN zugreifen dürfen.

Speichern und schließen Sie die Konfigurationsdatei, aber starten Sie den Server noch nicht neu. Wir müssen diecrl.pem-Datei erstellen, nach der unsere Konfiguration sucht.

Wechseln Sie zum Erstellen dieser Datei in das Verzeichnis~/openvpn-ca/auf Ihrem Server:

cd ~/openvpn-ca/

Stellen wir uns vor, wir müssen die Zertifikate vonclient1 widerrufen, weil sie für unsere Organisation nicht mehr funktionieren. Führen Sie dazu die folgenden Befehle aus:

source vars
./revoke-full client1

Sie sehen die folgende Ausgabe:

OutputUsing configuration from /home/intranetexapmle/openvpn-ca/openssl-1.0.0.cnf
Revoking Certificate 02.
Data Base Updated
Using configuration from /home/intranetexample/openvpn-ca/openssl-1.0.0.cnf
client1.crt: C = US, ST = NY, L = New-York City,
error 23 at 0 depth lookup:certificate revoked

Die letzte Zeile der Ausgabe solltealwayserror 23 anzeigen. Dieser Fehler bestätigt nur, dass die Zertifikate widerrufen wurden.

Dadurch werden auchcrl.pem im Verzeichnis~/openvpn-ca/keys/ erstellt. Um zu bestätigen, dass die Zertifikate widerrufen wurden, öffnen Sie die Dateikeys/index.txt mit einem beliebigen Texteditor oder zeigen Sie den Inhalt mitcat an:

cat keys/index.txt

Neben dem Client, dessen Zertifikate wir widerrufen haben, wird ein "R" angezeigt:

OutputV       260904153313Z           01      unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=server/name=server/[email protected]
R       260904172539Z   160915150543Z   02      unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=client1/name=server/[email protected]

Kopieren Sie nun die Dateicrl.pem in das Verzeichnis/etc/openvpn/. Dort haben wir unseren OpenVPN-Server angewiesen, nach der Datei zu suchen:

sudo cp keys/crl.pem /etc/openvpn/

Starten Sie dann den OpenVPN-Server neu, damit die Option zum Widerrufen des Zertifikats wirksam wird.

sudo systemctl restart openvpn@server

Der OpenVPN-Server konsultiert diecrl.pem-Datei jedes Mal, wenn eine neue Verbindung zum Server hergestellt wird. Jedes Mal, wenn Sie die Zertifikate eines Clients widerrufen, ersetzen Sie die altecrl.pem-Datei durch die neue. Sie müssen den Server nicht neu starten.

Es ist wichtig zu beachten, dass ein gesperrtes VPN-Zertifikat in Zukunft nicht mehr verwendet werden kann. Ein Client, dessen VPN-Zertifikat gesperrt wurde, benötigt ein neues Zertifikat, wenn er erneut eine Verbindung zum Netzwerk herstellen soll.

Sperren des Zugriffs eines Benutzers auf die eingeschränkte Freigabe.

Wir haben ein freigegebenes Verzeichnis erstellt, auf das nur Benutzer in der Gruppesmbrestrictedzugreifen können. Um einem Benutzer, der sich bereits in dieser Gruppe befindet, den Zugriff zu verweigern, entfernen wir den Benutzer aus dieser Gruppe. Verwenden Sie zum Entfernen vonclient1 beispielsweise den folgenden Befehl:

sudo deluser client1 -G smbrestricted

Sie sehen die folgende Ausgabe:

OutputRemoving user `client1' from group `smbrestricted' ...
Done.

Wenn Sie sich nicht sicher sind, ob ein Benutzer bereits in der Gruppe enthalten ist, oder überprüfen möchten, ob ein Benutzer entfernt wurde, können Sie den Befehlmembers verwenden:

sudo apt-get install members
members smbrestricted

Alle Benutzer in der Gruppe werden auf dem Bildschirm angezeigt.

Hinzufügen eines neuen Benutzers zum Intranet

Jeder neue Benutzer des Intranets benötigt ein eigenes VPN-Zertifikat. Befolgen Sie daher die Schritte im Tutorial vonHow to Set Up an OpenVPN Server on Ubuntu 16.04unter den Voraussetzungen für jeden Benutzer. Um beispielsweise einen Benutzer mit dem Namenclient2 zu erstellen, gehen Sie wie folgt vor:

Erstellen Sie zunächst den Schlüssel:

cd ~/openvpn-ca
./build-key client2

Generieren Sie dann die Client-Konfiguration:

cd ~/client-configs
./make_config.sh client2

Laden Sie dann auf Ihrem lokalen Computer die Client-Konfiguration herunter:

sftp sammy@openvpn_server_ip:client-configs/files/client2.ovpn ~/

Führen Sie die gleichen Schritte aus, die Sie fürclient1 im Abschnitt Samba dieses Lernprogramms ausgeführt haben, um dem neuen Benutzer Zugriff auf die eingeschränkten Dateien zu gewähren:

  • Erstellen Sie den Benutzer und fügen Sie ihn der Gruppesmbrestrictedhinzu.

  • Erstellen Sie das Samba-Passwort für den Benutzer mitsmbpassword.

  • Testen Sie die Verbindung.

Wiederholen Sie diesen Vorgang für jeden Benutzer, den Sie hinzufügen möchten.

Fazit

Sie haben erfolgreich ein eigenes privates Intranet mit OpenVPN, Samba und Apache erstellt und gesichert. Sie haben eine interne Website und zwei Dateifreigaben.

Wohin Sie als Nächstes gehen, hängt davon ab, wofür Sie Ihr Intranet verwenden. Da die meisten Serveranwendungen eine Webseite zum Anzeigen von Informationen verwenden, können Sie den Zugriff auf diese Seite mithilfe einer virtuellen Hostkonfiguration wie der in diesem Lernprogramm beschriebenen einschränken. Sie können Ihr Netzwerk erweitern, indem Sie mehrere Dienste aus einem internen sozialen Netzwerk, einem Wiki oder einem E-Mail-Dienst hosten, um nur einige zu nennen. Für eine noch effizientere Verwaltung freigegebener Dateien können Sie dieSamba Web Administration Toolherunterladen und installieren. Mit dem, was Sie hier gelernt haben, sollten Sie in der Lage sein, eine beliebige Anzahl von Diensten für die Verwendung in Ihrem neuen Intranet zu konfigurieren.