Ziel: Ich möchte das Internet sicher über meinen Heim-PC nutzen können, während mein Notebook mit einem offenen Hotspot / Access Point verbunden ist.
Ich weiß , dass ich einen SSH-Tunnel / SOCKS-Proxy verwenden kann, aber ich möchte nicht mit Anwendungen herumfummeln (sie dazu bringen, sie zu verwenden, wenn es überhaupt möglich ist). Ich denke, was ich brauche, ist ein OpenVPN-Setup. Daher suche ich nach einer detaillierten Anleitung, wie man:
- Installieren und konfigurieren Sie den OpenVPN-Server
- Einrichten des OpenVPN-Clients (NetworkManager)
Ubuntu-Versionen, auf denen dies funktionieren sollte, sind 10.10 und 11.04.
networking
security
network-manager
vpn
openvpn
Drehmoment
quelle
quelle
Antworten:
Ich habe die genaue Frage vor ein paar Monaten, aber zusätzlich wollte ich eine IPv6-Verbindung, wenn möglich. Meine Fragen zu Serverfault könnten Sie interessieren:
Ich hatte nur eine Netzwerkkarte ("Netzwerkschnittstelle") auf meinem Server zur Verwendung. In meinem Setup war NetworkManager nicht ausreichend, da ich ein benutzerdefiniertes Skript ausführen muss, um IPv6 zu unterstützen. Der Einfachheit halber werde ich hier jedoch NetworkManager verwenden und die IPv6-Unterstützung weglassen.
Treffen Sie zunächst eine Entscheidung über die Authentifizierungsmethode. Ich verwende die sicherere Zertifikatsmethode, die wie SSL funktioniert: Während des Handshakes wird ein gemeinsames Geheimnis ausgewählt, das für die Sitzung verwendet wird. Die anderen Methoden sind ein gemeinsam genutzter Schlüssel. einen Benutzernamen und ein Passwort.
Server
1. Vorbereiten
Installieren Sie zunächst den OpenVPN-Server. Das ist so einfach wie
sudo apt-get install openvpn
. Der schwierige Teil ist die Konfiguration. Die Konfiguration ist in vorhanden/etc/openvpn
.2. Konfigurieren Sie die Authentifizierung
Der Server benötigt Zertifikate, um sich und seine Clients zu identifizieren. Dieses Zertifikat wird von einer Zertifizierungsstelle (Common Authority) abgerufen. Die Erstellung der Zertifikate und der zugehörigen privaten Schlüssel kann auf jedem Computer erfolgen, sie muss nicht auf dem Server erfolgen. Wenn Sie wirklich paranoid sind, sollten Sie dies auf einem Computer tun, der nicht mit einem Netzwerk verbunden ist, und einen Memory Stick zum Übertragen der Zertifikate verwenden.
Erstellen Sie eine Zertifizierungsstelle und Zertifikate für den Server
Dieser Schritt muss einmal ausgeführt werden, es sei denn, der private Schlüssel Ihrer Zertifizierungsstelle wurde kompromittiert. In diesem Fall können gültige Zertifikate erstellt werden, die vom Server akzeptiert werden und zu einer Sicherheitsverletzung führen.
Die offizielle Dokumentation schlägt vor, die Verwaltung in zu erledigen
/etc/openvpn
. Ich bin kein großer Fan davon, alles als root auszuführen, also werde ich es in ein anderes Verzeichnis stellen.Erstellen Sie das Administrationsverzeichnis und kopieren Sie die darin enthaltenen Dateien, indem Sie Folgendes ausführen:
vars
Bedarf, indemKEY_SIZE=2048
Sie beispielsweise festlegen, dass Sie paranoid sind.Laden Sie die Variablen und erstellen Sie das Schlüsselverzeichnis, indem Sie Folgendes ausführen:
Wenn Sie eine Fehlermeldung erhalten , dass
No ... openssl.cnf file could be found Further invocations will fail
, laufenln -s openssl-1.0.0.cnf openssl.cnf
, dann. vars
wieder.Wenn Sie diese Zertifizierungsstelle zum ersten Mal verwenden, bereiten Sie die Schlüsselumgebung vor. Sie nicht diesen Befehl ausführen , wenn Sie Ihre zuvor erstellten CA beibehalten möchten Dazu müssen Sie ein neues implementieren
ca.crt
../build-ca
. Sie können beliebige Details eingeben. Beachten Sie jedoch, dass diese Informationen in Protokolldateien angezeigt werden, wenn die Clients eine Verbindung zum Server herstellen. Dadurch werden die Dateienca.key
undca.crt
im Unterordner erstelltkeys
. Halten Sie dieca.key
Datei unter allen Umständen geheim . Andernfalls kann jeder mit dem Schlüssel eine Verbindung zu Ihrem Server herstellen../revoke-full server
. Andernfalls erhalten Sie einen Datenbankfehler.Erstellen Sie das Zertifikat für den Server, indem Sie Folgendes ausführen:
Wenn Sie nach einem Kennwort gefragt werden, lassen Sie es leer, es sei denn, Sie möchten das Kennwort bei jedem Serverstart eingeben (nicht empfohlen). Bestätigen Sie, dass Sie das Zertifikat signiert und festgeschrieben haben. Im Verzeichnis werden zwei neue Dateien angezeigt
keys
:server.key
undserver.crt
.DH und bereite dich auf tls-auth vor
Generieren Sie Diffie-Hellman- Parameter mit:
Pro Aushärtungsspitzen verwenden
tls-auth
. Generieren Sie dazu den gemeinsamen geheimen Schlüssel mit:Die resultierende Datei (
ta.key
) muss ebenfalls an Clients verteilt werden, Sie sollten sie jedoch nicht öffentlich zugänglich machen.Erstellen Sie Zertifikate für Clients
Für jeden Kunden sollten diese Schritte wiederholt werden:
Geben Sie das Verzeichnis ein, in dem Sie Ihr CA- und Server-Zertifikat erstellt haben:
Wenn Sie den CA-Erstellungsschritt übersprungen haben, weil Sie bereits einen haben, müssen Sie zuerst die Variablen laden:
./revoke-full you
. Andernfalls erhalten Sie einen Datenbankfehler.Erstellen Sie das Client-Zertifikat
you.key
und das zugehörige Zertifikatyou.crt
:Das
CommonName
sollte einzigartig sein. Lassen Sie das Passwort leer, wenn Sie KDE verwenden, da es ab 10.10 noch nicht unterstützt wird. Bestätigen Sie wie bei der Serverzertifikaterstellung das Signieren des Zertifikats und das Übernehmen der Änderungen.3. Richten Sie den OpenVPN-Dienst ein
Standardmäßig wird OpenVPN beim Akzeptieren von Verbindungen als Root ausgeführt. Keine gute Idee, wenn der Dienst über das böse Internet erreichbar ist.
Erstellen Sie einen dedizierten Benutzer für OpenVPN, sagen Sie
openvpn
:Kopieren Sie die Dateien
server.key
,server.crt
,ca.crt
unddh1024.pem
(oder ,dh2048.pem
wenn Sie haben Schlüsselgröße geändert) aus dem Schlüssel - Verzeichnis in/etc/openvpn
. Eine Erlaubnis von 400 (nur lesbar für den Besitzer) ist in Ordnung.Kopieren Sie auch die Datei
ta.key
:Erstellen Sie die Datei
/etc/openvpn/server.conf
und fügen Sie die nächsten Zeilen ein:Stellen Sie die entsprechenden Berechtigungen ein, es muss nicht geheim sein, aber ich bevorzuge es, keine Konfigurationsdetails preiszugeben:
4. Beenden Sie den Server
Wenn Sie die Zertifikate auf dem Server erstellt haben, sollten Sie sie verschlüsseln oder vom Server entfernen. Verlieren Sie auf keinen Fall das
ca.key
undserver.key
. Im ersten Fall können andere Benutzer eine Verbindung zu Ihrem Server herstellen. In letzterem ist eine MITM möglich.Klient
Neben der Server-IP-Adresse sollte der Serveradministrator die folgenden Dateien übergeben:
ca.crt
: zur Überprüfung der Zertifikateserver.crt
: um den Server zu überprüfen und mit ihm zu kommunizierenta.key
: zum Härten der Sicherheityou.crt
: um sich mit dem Server zu identifizierenyou.key
: Es ist wie bei Ihrem Passwort, die Dateiberechtigungen sollten 400 sein (schreibgeschützt für Besitzer)1. Installation
Installieren Sie OpenVPN und das NetworkManager-Plugin (geeignet für KDE und Gnome):
network-manager-openvpn
befindet sich im Universums-Repository.2. Konfiguration
Verwenden Sie in der Systemsteuerung die folgenden Details:
ca.crt
you.crt
you.key
Bei Advanced :
Geben Sie den Pfad der Schlüsseldatei an
ta.key
und setzen Sie "Schlüsselrichtung" auf1
.Wenn NetworkManager nicht funktioniert oder nicht verwendet werden soll, legen Sie die Dateien (
ca.crt
, ...) ein/etc/openvpn
und erstellen Sie die Datei/etc/openvpn/client.conf
file:Wenn Sie dieses VPN beim Booten nicht aktivieren möchten, bearbeiten Sie
/etc/default/openvpn
die nächste Zeile und kommentieren Sie sie aus, indem Sie Folgendes entfernen#
:Um diese Verbindung zu starten, führen Sie Folgendes aus:
client
sollte umbenannt werden, wenn Ihre Konfigurationsdatei nicht benannt istclient.conf
. Beispiel: Wenn Sie Ihre Konfigurationsdatei benannt habensafe.conf
, müssen Sie ausführensudo /etc/init.d/openvpn start safe
.Um OpenVPN zu stoppen, müssen Sie Folgendes ausführen:
quelle
man openvpn
). Aktuelle Versionen von openvpn bieten die Möglichkeit, Zertifikate und Schlüsseldateien einzubetten. Daher ist es möglicherweise noch einfacher, diese einzelne Konfigurationsdatei mit Anweisungen für den Benutzer zu versehen.. vars
obigen Befehls möglicherweise einen Fehler erzeugen , der besagt, dass die Datei openssl.cnf gefunden werden kann. Weitere Aufrufe schlagen fehl. Sie müssensudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, dann laufen. vars
und die anderen Befehle.whichopenssl
findet dieopenssl-1.0.0.cnf
Datei korrekt für mich (easy-rsa 2.3.2, OpenSSL 1.0.1e)Sie müssen sich nicht mit Anwendungen beschäftigen. Dies funktioniert "genau wie VPN".
Installieren Sie zuerst das
tsocks
Paket (temporäre Socken):Dann bearbeiten
/etc/tsocks.conf
und eingebenÖffnen Sie nun ein Terminal und geben Sie Folgendes ein (dies verbindet Sie):
Ausführen (über ein anderes Terminal oder ALT-F2):
Jetzt überträgt Firefox die gesamte Kommunikation an den SOCKS-Server auf Ihrem Computer, den SSH erstellt hat. Dies wird weiter zu Ihrer Heimmaschine getunnelt, wo es ins Web geht. Alles, was Sie auf Ihrem Heimcomputer benötigen, ist ein SSH-Server. Wiederholen Sie nach dem ersten Mal einfach die Schritte 3 und 4.
Es wirkt wie ein Zauber! Leider mag Chrom keine Tsocks, aber hey, Firefox funktioniert.
quelle
Die SSH-Tunnellösung ist einfacher als Sie denken. Ein Programm wie gSTM startet / stoppt die Tunnel für Sie mit einer GUI. Öffnen Sie dann einfach den Netzwerk-Proxy und ändern Sie ihn von der direkten Internetverbindung zur manuellen Proxy-Konfiguration. Klicken Sie auf "Systemweit anwenden", und alle Ihre Apps sollten ihre Daten durch den Tunnel senden.
quelle