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 von
sudo
. 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-Adresse
10.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 werden
example.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 Namen
example.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 Einstellungworkgroup
gibt 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 Einstellungsecurity
gibt an, dass dies ein eigenständiger Dateiserver mit eigenen Benutzerkonten ist. Die Einstellungmap to guest
behandelt alle Anmeldungen mit einem ungültigen Benutzernamen oder Kennwort als Gastbenutzer, und die Einstellungdns proxy
weist Samba an, nicht zu versuchen, Domänennamen aufzulösen, da wir für dieses Intranet kein eigenes DNS ausführen.
Mit der Einstellunginterfaces
geben 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 level
bestimmt 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 timestamp
enthä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/allusers
durchsuchen, 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 AnteilAllusers
gelten. Außerdem wird der Name der Freigabe definiert, die den Benutzern angezeigt wird. Die Einstellungpath
gibt 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 guest
angegeben 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 Benutzergruppenobody
ist eine bekannte Standardbenutzergruppe auf jedem Linux-System. Wir können die gewünschten Berechtigungen für den Ordner/samba/allusers
auf den Benutzernobody
etzen. 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 vonnobody
finden Sie unterthe Ubuntu wiki undthis answer on StackExchange.
Erstellen wir nun die DateifreigabeRestricted
, auf die nur Mitglieder der Gruppesmbrestricted
zugreifen 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 Gruppesmbrestricted
erstellen 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 Gruppesmbrestricted
mit dem folgenden Befehl:
sudo addgroup smbrestricted
Erstellen Sie nun ein Benutzerkonto auf dem Server und fügen Sie es der Gruppesmbrestricted
hinzu. 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 vonclient1
mit 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 Verzeichnisallusers
fest:
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 766
gewährt nur aktuellen und neuen Dateien / Verzeichnissen im Verzeichnis/samba/allusers
Lese- 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/allusers
befindet, einen Fehler mit unzureichenden Berechtigungen erhalten. Denken Sie daran, dass Sie, wenn Sie innerhalb des Anteils vonAllusers
arbeiten, 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/allusers
mit 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 vonnobody
und 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 Verzeichnisrestricted
festlegen:
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
.
Es kann einen Moment dauern, bis Windows eine Verbindung hergestellt hat. Wenn die Verbindung erfolgreich hergestellt wurde, werden die freigegebenen Ordner im Intranet angezeigt:
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 vonAllusers
zu, da keine Anmeldeinformationen erforderlich sind. Doppelklicken Sie einfach auf den Ordner, um dessen Inhalt anzuzeigen:
Doppelklicken Sie auf den OrdnerRestricted
, um auf die FreigabeRestricted
zuzugreifen. Das Popup-Fenster vonWindows Securityzeigt an, dass Netzwerkanmeldeinformationen erforderlich sind, um Zugriff zu erhalten.
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.
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.
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:
Um auf die Freigabe vonAllusers
zuzugreifen, 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.
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.
Das Laufwerk bleibt aktiviert, bis das System neu gestartet oder das Laufwerk deaktiviert wird.
Um auf die Freigabe vonRestricted
zugreifen 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.
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:
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 vonVirtualHost
wie 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:
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.
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.
Dadurch wird die Einstellungsseite für diese bestimmte Domain geöffnet.
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.
-
Klicken Sie auf das orangefarbene Feld "A" unterSelect record type.
-
Geben Sie
intranet
in das FeldEnter Name ein. -
Geben Sie als IP-Adresseprivate IP address für Ihren Server ein, die
10.8.0.1
sein sollte.
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.
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:
Wenn Sie fertig sind, sollten Ihre Domain-Einträge wie folgt aussehen:
Der A-Datensatz vonintranet
leitet 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.com
without 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.
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 Gruppe
smbrestricted
hinzu. -
Erstellen Sie das Samba-Passwort für den Benutzer mit
smbpassword
. -
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.