VPN steht für Virtual Private Network.
Ein virtuelles privates Netzwerk ermöglicht es einem Computer, Daten von einem privaten Netzwerk zu einem anderen privaten Netzwerk zu senden und zu empfangen, die über ein öffentliches Netzwerk (Internet) verbunden sind.
Dies ist hilfreich für diejenigen, die sich außerhalb des Intranets des Unternehmens befinden und sich sicher mit dem Büronetzwerk verbinden möchten, um auf die internen Server zuzugreifen. VPN ist auch hilfreich, wenn Sie mehrere Zweigstellen miteinander verbinden.
Auch wenn Sie nicht mehrere Zweigstellen miteinander verbinden, können Sie dennoch die VPN-Einrichtung verwenden, damit Ihre Mitarbeiter eine Remote-Verbindung von ihrem Laptop zum Rechenzentrum und Zugriff auf die Systeme.
Manchmal kauft das Unternehmen Mietleitungen, um ein WAN (Wide Area Network) zu bilden, und kommuniziert mit seinen Niederlassungen. Obwohl Standleitungen sicher und zuverlässig sind, sind sie teuer.
VPN füllt die Lücke, indem es eine virtuelle Punkt-zu-Punkt-Verbindung über ein öffentliches Netzwerk bereitstellt. Ein VPN kann problemlos erweitert werden, um mehr Benutzer an verschiedenen geografischen Standorten aufzunehmen.
VPN-Arten
Auf hoher Ebene gibt es zwei Arten von VPN:
- Fernzugriff
- Site-to-Site
Remote Access verbindet einen einzelnen Computer über VPN mit einem Netzwerk. „Site to Site“ verbindet zwei Netzwerke über VPN miteinander.
Was ist OpenVPN
Vom OpenVPN-Mann:
OpenVPN ist ein Open-Source-VPN-Daemon von James Yonan. OpenVPN ist ein robuster und hochflexibler VPN-Daemon. OpenVPN unterstützt SSL/TLS-Sicherheit, Ethernet-Bridging, TCP- oder UDP-Tunneltransport über Proxys oder NAT, Unterstützung für dynamische IP-Adressen und DHCP, Skalierbarkeit für Hunderte oder Tausende von Benutzern und Portierbarkeit auf die meisten wichtigen Betriebssystemplattformen.
Dieses Tutorial erläutert den Vorgang zum Einrichten und Konfigurieren von OpenVPN-Server und -Client für den Fernzugriff.
Ich. Konfiguration von OpenVPN – Serverseite
1. Installieren Sie OpenVPN
Installieren Sie das openvpn-Paket sowohl auf dem Server als auch auf dem Client-Rechner.
$ sudo apt-get install openvpn
Verwenden Sie den jeweiligen Paketmanager der Distribution, mit der Sie arbeiten. Wenn Sie yum verwenden, gehen Sie wie folgt vor
$ yum install openvpn
2. Erstellen Sie Verzeichnisse und setzen Sie Env-Variablen
Erstellen Sie ein Verzeichnis in /etc/openvpn und kopieren Sie die easy-rsa Inhalt dazu. Dies geschieht, um sicherzustellen, dass an den Skripten vorgenommene Änderungen nicht verloren gehen, wenn das Paket aktualisiert wird. Ändern Sie den Eigentümer als aktuellen Benutzer, sodass der aktuelle Benutzer die Berechtigung zum Erstellen von Dateien hat.
$ sudo mkdir /etc/openvpn/easy-rsa $ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa $ sudo chown -R $USER /etc/openvpn/easy-rsa/
Bearbeiten Sie als Nächstes die Datei /etc/openvpn/easy-rsa/vars um sich an Ihre Umgebung anzupassen.
export KEY_COUNTRY="IN" export KEY_PROVINCE="TN" export KEY_CITY="CHN" export KEY_ORG="tgs" export KEY_EMAIL="[email protected]"
3. Erstellen der CA – Zertifizierungsstelle (Root-Zertifikat)
Der nächste Schritt beim Aufbau eines OpenVPN-Servers ist die Einrichtung einer Public-Key-Infrastruktur, damit sich Server und Clients gegenseitig authentifizieren können.
$ cd /etc/openvpn/easy-rsa/ $ source vars $ ./clean-all $ ln -s openssl-1.0.0.cnf openssl.cnf $ ./build-ca Generating a 1024 bit RSA private key ........++++++ ......++++++ unable to write 'random state' writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [IN]: State or Province Name (full name) [TN]: Locality Name (eg, city) [CHN]: Organization Name (eg, company) [tgs]: Organizational Unit Name (eg, section) [changeme]: Common Name (eg, your name or your server's hostname) [changeme]: Name [changeme]:lakshmanan Email Address [[email protected]]:[email protected]
Einmal ./build-ca abgeschlossen ist, sehen Sie eine Datei mit dem Namen „ca.key “ und „ca.crt ” in /etc/openvpn/easy-rsa/keys/
Denken Sie daran, dass die Datei „.key ” Dateien sind vertraulich zu behandeln.
4. Zertifikat für Server erstellen
Der nächste Schritt besteht darin, ein Zertifikat für unseren Openvpn-Server zu erstellen.
$ /etc/openvpn/easy-rsa/build-key-server vpnserver ... ... Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
Beachten Sie, dass vpnserver der HOSTNAME des Servers ist. Dieser Befehl nimmt Eingaben vom Benutzer entgegen, ähnlich wie der vorherige. Dieser Befehl erstellt das Zertifikat und die Schlüsseldateien für den Server.
5. Zertifikat für Client erstellen
Der VPN-Client benötigt auch ein Zertifikat, um sich beim Server zu authentifizieren. Wenn Sie mehrere Clients konfigurieren möchten, müssen Sie für jeden Client ein separates Zertifikat erstellen.
$ ./build-key vpnclient1 ... ... Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
vpnclient1 ist der Hostname des Clients. Dieser Befehl erstellt das Zertifikat und die Schlüsseldateien für den Client.
6. Diffie-Hellman-Parameter erstellen
$ ./build-dh
Sobald alle oben genannten Schritte erfolgreich abgeschlossen sind, haben Sie viele Schlüssel- und Zertifikatsdateien in /etc/openvpn/easy-rsa/keys .
7. Kopieren Sie die Zertifikate an die entsprechenden Speicherorte
Wir haben Root-Zertifikat, Server-Zertifikat und Client-Zertifikat erstellt. Wir müssen diese an die entsprechenden Stellen kopieren.
$ cd /etc/openvpn/easy-rsa/keys/ $ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/ $ scp ca.crt vpnclient1.key vpnclient1.crt root@vpnclient1:/etc/openvpn
Jetzt haben wir das Client-Zertifikat und den Schlüssel auf den Client-Computer kopiert. Denken Sie daran, beim Kopieren der Schlüsseldateien ein sicheres Medium wie scp zu verwenden.
8. Konfiguration des Servers
OpenVPN stellt eine standardmäßige server.conf bereit. Sie können es an Ihre Bedürfnisse anpassen.
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ $ sudo gzip -d /etc/openvpn/server.conf.gz
Bearbeiten Sie die Datei „/etc/openvpn/server.conf „.
... ca ca.crt cert vpnserver.crt key vpnserver.key dh dh1024.pem ...
Starten Sie nun den OpenVPN-Server:
$ sudo /etc/init.d/openvpn start * Starting virtual private network daemon(s)... * Autostarting VPN 'server' $ ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
Standardmäßig protokolliert openVPN Fehler in der Syslog-Datei.
II. OpenVPN konfigurieren – Client-Seite
9. Client-Konfigurationsdateien einrichten
Jetzt werden wir openVPN so konfigurieren, dass es als Client funktioniert. Denken Sie daran, dass wir das openvpn-Paket bereits im Client installiert haben und „ca.crt“, „vpnclient1.key“, vpnclient1.crt“ in /etc/openvpn/ haben
Kopieren Sie das Beispiel client.conf nach /etc/openvpn .
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
Bearbeiten Sie die /etc/openvpn/client.conf .
... # Specify that this is openvpn client client remote vpnserver 1194 ca ca.crt cert vpnclient1.crt key vpnclient1.key ...
Starten Sie nun das OpenVPN im Client
$ /etc/init.d/openvpn start * Starting virtual private network daemon(s)... * Autostarting VPN 'client' $ ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
10. Testen Sie das VPN-Setup
Pingen Sie den vpnserver vom Client-Rechner aus, um zu sehen, ob VPN funktioniert oder nicht.
$ ping 10.8.0.1 PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data. 64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms
Wenn Sie pingen können, haben Sie die richtigen Einstellungen vorgenommen.
Bitte beachten Sie Folgendes:
- Stellen Sie sicher, dass Client und Server dasselbe Protokoll und dieselbe Portnummer verwenden.
- Client und Server müssen bezüglich einiger Parameter wie Schlüsselgröße, Komprimierung usw. die gleiche Konfiguration verwenden.
- Erhöhen Sie im Falle eines Problems die Protokollausführlichkeit in der Konfiguration und überprüfen Sie die Syslog-Datei auf Fehlerbehebung.