DerStunnelDas Tool kann als Proxy-Dienst verwendet werden, um einen sicheren TLS-Tunnel für Client-Server-Netzwerk-Apps zu erstellen, die selbst keine Verschlüsselung unterstützen. In manchen Fällen ist es vorzuziehen, dieses Tool zum Sichern des Fernzugriffs auf eine einzelne App (Dienst) zu verwenden, anstatt eine VPN-Lösung mit vollem Funktionsumfang zu implementieren.
DerStunnelDer Dienst kann im Server- oder Client-Modus ausgeführt werden. Im Client-Modus empfängt Stunnel Datenverkehr von der Client-App, verschlüsselt ihn und sendet ihn dann an den Server. Der Datenverkehr wird auf der entschlüsseltStunnel serverseitigund dann an die Ziel-App oder den Zieldienst gesendet. Wichtig ist, dass der AdministratorEs müssen weder der Client- noch der Serverteil der App geändert werden.Zertifikatekann zur Client-Authentifizierung verwendet werden. Stunnel wird sowohl für Windows als auch für Linux unterstützt.
Schauen wir uns an, wie Sie mit Stunnel einen sicheren Zugriff zwischen dem Client und dem Server erstellen. In diesem Beispiel ist der Server ein Windows-Host mit einem IIS-Webserver, auf dem eine unverschlüsselte HTTP-Site ausgeführt wird. Die Aufgabe besteht darin, den Zugriff auf diese Website durch Clients mit Zertifikatauthentifizierung einzuschränken und die Verkehrsverschlüsselung zu aktivieren.
Konfigurieren des Stunnel-Servers unter Windows
Laden Sie das Stunnel-Installationsprogramm für Windows herunter vonhttps://www.stunnel.org/downloads.htmlund installieren Sie es mit den Standardeinstellungen, einschließlichopenssl.

Der nächste Schritt besteht darin, Schlüssel und Zertifikate für die Zertifizierungsstelle, den Server und die Clients zu generieren. Öffnen Sie eine Eingabeaufforderung und navigieren Sie zum Verzeichnis:
cd "c:Program Files (x86)stunnelbin"
CA-Schlüssel generieren:
openssl genpkey -algorithm RSA -out ca.key
In diesem Fall verwenden wir keine Passwortphrase, um den privaten Schlüssel des Zertifikats zu schützen.
Erstellen Sie ein CA-Zertifikat:
openssl req -new -x509 -key ca.key -out ca.crt -subj "/O=woshubLTD/OU=IT/CN=CA_webserver1.com"
Fügen Sie Informationen zum Zertifikat hinzusubjFeld zur einfachen Identifizierung.
Erstellen Sie einen privaten Schlüssel für den Server:
openssl genpkey -algorithm RSA -out server.key
Erstellen Sie eine Zertifikatsignierungsanforderung (CSR):
openssl req -key server.key -new -out server.csr
Verwenden Sie die Stammzertifizierungsstelle, um das Serverzertifikat zu signieren.
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -subj "/O=woshubLTD/OU=IT/CN=server_webserver1.com"
Erstellen Sie nun einen privaten Schlüssel für den Client:
openssl genpkey -algorithm RSA -out client.key
Generieren Sie eine Anfrage für ein Client-Zertifikat:
openssl req -key client.key -new -out client.csr
Signieren Sie das Client-Zertifikat:
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365 -subj "/O=woshubLTD/OU=IT/CN=client1_webserver1.com"
Kopieren Sie auf dem Webserver dieca.crt, server.crt, Undserver.keyDateien an dieC:Program Files (x86)stunnelconfigOrdner.


Bearbeiten Sie die Datei stunnel.conf (Sie können die Standardeinstellungen löschen) und fügen Sie die folgende Konfiguration hinzu:
; Write logs to stunnel.log debug = info output = stunnel.log ; Strong encryption settings. We assume that both devices have modern CPUs that support AES hardware acceleration. If such encryption settings cause server performance degradation under heavy traffic, you can simplify them. options = CIPHER_SERVER_PREFERENCE options = NO_SSLv2 options = NO_SSLv3 options = NO_TLSv1 sslVersion = TLSv1.2 sslVersion = TLSv1.3 ciphers = ECDHE-RSA-AES256-GCM-SHA384 ; names (paths) to certificate files cert = server.crt key = server.key CAfile = ca.crt ; This section contains the configuration of the service that the client will access via Stunnel. [ITPoral] ; This is the IP address and port on which the Stunnel instance should listen for connections. accept = 192.168.158.144:443 ; or accept = 443 ; The IP address and port of the service to which the connection should be redirected. In our case, this is a local HTTP site. connect = 127.0.0.1:80 ; or connect = 80 ; Always check the remote computer's client certificate. Clients without a certificate will not be able to connect to the service. verify=2
Stellen Sie sicher, dass dieakzeptierenZeile enthält eine Portnummer, die nicht von einem anderen Windows-Prozess verwendet wird.
Öffnen Sie den angegebenen Port in der Windows Defender-Firewall, um eingehende Verbindungen zuzulassen. Sie können mit PowerShell eine Firewall-Regel erstellen.
Empfohlene Lektüre:Netzwerkmonitor: Erfassen und analysieren Sie den Netzwerkverkehr unter Windows
New-NetFirewallRule -DisplayName "ITPoral_stunnel_443" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow
Blockieren Sie externe Verbindungen zum unsicheren TCP-Port 80 auf Router- oder Firewall-Ebene.
LaufenStunnel.exeund überprüfen Sie die GUI-Protokolle, um sicherzustellen, dass Ihre Konfiguration keine Fehler enthält. Die grafische Oberfläche ermöglicht ein schnelles erneutes Lesen der Konfigurationsdatei und die sofortige Anzeige von Fehlerprotokollen, was das Debuggen erleichtert.
1

Schließen Sie die grafische Benutzeroberfläche von stunnel.exe, indem Sie im Menü auf „Beenden“ klicken, und starten Sie dann stunnel als Windows-Dienst. Führen Sie den Befehl aus:
"C:Program Files (x86)stunnelbinstunnel.exe" -install "C:Program Files (x86)stunnelconfigstunnel.conf"
DerStunnel TLS-WrapperDer Dienst wird erstellt. Starten Sie es:
Start-Service wrapper
Der Stunnel-Prozess lauscht nach dem Start auf Port 443.


Beispiel für die Stunnel-Client-Konfiguration unter Windows
Installieren Sie dann Stunnel von derselben Distribution auf demClient-Windows-Gerät. Dann kopieren Sie dieca. crt,client.crt, Undclient.keyDateien vom Server auf denC:Program Files (x86)stunnelconfigOrdner.
Fügen Sie der Konfigurationsdatei stunnel.conf Folgendes hinzu:
[ITPoral] ; Run Stunnel in the client mode. client = yes ; Specify the IP address and TCP port through which your service will be accessible to your clients. accept = localhost:8080 ; the address of the stunnel server to redirect connections to connect = 192.168.158.144:443 ; certificate paths CAfile = ca.crt cert = client.crt key = client.key ; Certificates must be checked explicitly when establishing a connection. verify=2
Speichern Sie die Konfigurationsdatei. Führen Sie Stunnel zunächst manuell aus und überprüfen Sie die Protokolle auf Fehler. Wenn Sie nun auf die Adresse zugreifenlocalhost:8080Vom Browser aus leitet Stunnel die Verbindung zum Remote-Server um.


Der Einfachheit halber können Sie Zertifikate und Schlüssel in einer einzigen Datei kombinieren. Zum Beispiel:
Get-Content client.key, client.crt | Set-Content client.pem
Geben Sie in diesem Fall nur Folgendes in der Stunnel-Konfigurationsdatei an:
cert = client1.pem
Wenn alles ordnungsgemäß funktioniert, können Sie Stunnel auf einem Client als Dienst ausführen.
stunnel.exe -install


Um Zertifikate (z. B. kompromittierte Zertifikate) zu widerrufen, fügen Sie Folgendes hinzu:CRLpathOption zur Stunnel-Serverkonfiguration. Geben Sie den Pfad zum Ordner an, in dem die widerrufenen Zertifikate (Certificate Revocation Lists) im PEM-Format gespeichert sind.
Sie können auch die verwendenCApathOption, um den Speicherort des Ordners anzugeben, der die zulässigen Zertifikate enthält.








![So streamen Sie 4K-Ultra-HD-Inhalte auf Netflix [Anforderungen prüfen]](https://elsefix.com/tech/ponce/wp-content/uploads/2020/09/Stream-Netflix-in-4K-UHD.jpg)





