GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

SSL-Tunnel

Auf dieser Seite sind das STunnel-Programm und das Webmin-Modul zu dessen Einrichtung dokumentiert.

Einführung in SSL und STunnel

SSL ist ein Protokoll zum Verschlüsseln von Daten in einer TCP-Verbindung, während sie über das Netzwerk übertragen werden. Es wurde ursprünglich entwickelt, um den Verkehr zwischen Webbrowsern und Servern zu schützen, kann aber verwendet werden, um jede Art von Datenstrom zu verschlüsseln, der normalerweise über das TCP-Protokoll gesendet würde.

Das SSL-Protokoll ermöglicht es Clients und Servern, sich gegenseitig zu authentifizieren, sodass ein Client sicher sein kann, dass er sich wirklich mit dem Host verbindet, für den er sich hält. Dies geschieht über Zertifikate, die von einer vom Client anerkannten Zertifizierungsstelle ausgestellt (überprüfbar) und einem bestimmten Hostnamen zugeordnet sind. Ohne Zertifikate könnte ein Angreifer eine SSL-Verbindung zu seinem eigenen Server umleiten und vertrauliche Informationen von einem Client erfassen, der glaubt, mit dem echten Server zu kommunizieren.

Alle Daten, die unverschlüsselt über das Internet übertragen werden, können von einem Angreifer mit Zugriff auf eines der Netzwerke, die sie durchlaufen, erfasst und gelesen werden. Sogar Daten, die zwischen einem Client- und einem Serversystem in einem LAN übertragen werden, können problemlos abgehört werden. Wenn Sie sich mit einem Telnet-, FTP- oder POP3-Server verbinden, wird Ihr Passwort über das Netzwerk gesendet und kann somit von einem Angreifer abgefangen werden.

SSL kann zum Schutz von Daten in solchen Situationen verwendet werden, aber nur, wenn sowohl der Client als auch der Server dies unterstützen. Die meisten Webbrowser und E-Mail-Clients können SSL-verschlüsselte HTTP-, POP3- und IMAP-Verbindungen herstellen, aber nicht alle Web- und POP3-Server können sie akzeptieren. Insbesondere POP3 ist schwer zu schützen, da der Standardserver, der mit den meisten Unix-Systemen ausgeliefert wird, SSL überhaupt nicht unterstützt. Glücklicherweise gibt es jedoch eine Lösung - STunnel.

STunnel ist ein einfaches Programm, das eine unverschlüsselte Verbindung in eine SSL-verschlüsselte umwandelt. Es wird normalerweise so eingerichtet, dass es von einem Superserver wie inetd oder xinetd ausgeführt wird und dann ein anderes Programm wie den POP3-Server ausführt, das SSL nicht unterstützt. Dieses Design ermöglicht es, jeden Server zu schützen, der normalerweise von inetd ausgeführt wird, wie z. B. Telnet-, NNTP- und IMAP-Server.

Allerdings lassen sich nicht alle Server sinnvoll durch Verschlüsselung schützen, da es keinen Client gibt, der sie im SSL-Modus nutzt. Zum Beispiel habe ich noch nie von einem Telnet- oder FTP-Client gehört, der SSL verwenden kann, da das gängige SSH-Paket bereits verschlüsselte Remote-Anmeldungen und Dateiübertragungen zulässt.

Das SSL-Tunnel-Modul

Dieses Webmin-Modul macht es einfach, Super-Server-Dienste einzurichten, die STunnel ausführen, um ein Serverprogramm zu starten. Auch wenn dies manuell mit dem Internetdienstmodul (siehe Kapitel 15) erfolgen kann, ist dieses Modul speziell für die Einrichtung und Konfiguration von STunnel konzipiert. Es erkennt automatisch, ob Sie inetd und/oder xinetd installiert haben, liest deren Konfigurationen, um nach vorhandenen SSL-Tunneln zu suchen, und fügt sie hinzu, wenn Sie einen neuen Tunnel erstellen. Wenn beide installiert sind, werden der xinetd-Konfiguration neue SSL-Tunnel hinzugefügt, da sie meiner Meinung nach die überlegene der beiden ist.

Das Modul finden Sie in Webmin unter der Kategorie Networking im Hauptmenü. Wenn Sie auf das Symbol klicken, wird eine Seite wie die unten gezeigte angezeigt, die alle vorhandenen Tunnel auflistet. Unten auf der Seite befindet sich eine Schaltfläche mit der Bezeichnung Änderungen übernehmen die, wenn sie angeklickt wird, inetd oder xinetd neu startet, wodurch die aktuelle Konfiguration aktiviert wird.


Das SSL-Tunnel-Modul

Wenn das Programm auf Ihrem Server nicht gefunden werden kann, wird stattdessen eine Fehlermeldung wie *The STunnel command /usr/bin/stunnel was not found on your system* angezeigt. Dies kann darauf hinweisen, dass es nicht installiert ist oder dass das Modul im falschen Verzeichnis nach dem Stunnel-Befehl sucht. Im letzteren Fall können Sie die Konfiguration des Moduls anpassen, wie im Abschnitt *Konfigurieren des SSL-Tunnelmoduls* weiter unten auf dieser Seite erläutert.

Wenn das Programm jedoch wirklich nicht installiert ist, sehen Sie auf Ihrer Betriebssystem-CD oder Website nach, ob ein Paket für STunnel vorhanden ist. Wenn dies der Fall ist, können Sie es mithilfe des Softwarepaketmoduls installieren. Andernfalls müssen Sie den Quellcode von www.stunnel.org herunterladen, kompilieren und installieren.

Erstellen und Bearbeiten von SSL-Tunneln

Wenn Sie einen Dienst mit SSL-Verschlüsselung schützen möchten, müssen Sie einen neuen SSL-Tunnel erstellen. Es können zwei verschiedene Tunneltypen erstellt werden - einer, der einen Serverprozess wie inetd ausführt, oder einer, der sich mit einem anderen Host und Port im Nicht-SSL-Modus verbindet. Letzteres ist einfacher, wenn der Server bereits im unverschlüsselten Modus läuft, ist aber etwas langsamer, da eine zusätzliche Netzwerkverbindung hergestellt werden muss.

Bevor Sie einen Tunnel erstellen können, müssen Sie sich für eine zu verwendende Portnummer entscheiden. Für einige Protokolle gibt es eine Standard-Portnummer – zum Beispiel wird 995 oft für verschlüsseltes POP3 verwendet und 993 wird für verschlüsseltes IMAP verwendet. Natürlich darf die von Ihnen gewählte Portnummer von keinem anderen inetd-Dienst oder -Server auf Ihrem System verwendet werden.

Gehen Sie wie folgt vor, um einen Tunnel zu erstellen:

  1. Klicken Sie auf der Hauptseite des Moduls auf Neuen SSL-Tunnel hinzufügen Link über oder unter der Tabelle der bestehenden Tunnel. Das in Abbildung 46-2 gezeigte Erstellungsformular wird in Ihrem Browser angezeigt.
  2. Im Dienstnamen geben Sie einen eindeutigen Namen für den inetd-Dienst dieses Tunnels ein, z. B. ssl-pop3 .
  3. Im TCP-Port geben Sie die Portnummer ein, auf der der Tunnel Verbindungen akzeptieren soll, z. B. 993 .
  4. Wenn Sie nicht möchten, dass der Tunnel vorübergehend deaktiviert wird, stellen Sie Aktiv? ein Feld auf Ja .
  5. Wenn dieser Tunnel ein Programm wie einen POP3-Server ausführen soll, wählen Sie das Programm im inetd-Stil ausführen Möglichkeit. Im Pfad zum Programmieren geben Sie den vollständigen Pfad zum Server ein, z. B. /usr/sbin/ipop3d . Im mit Argumenten geben Sie den Programmnamen gefolgt von beliebigen Befehlszeilenargumenten ein, wie z. B. ipop3d . Wie bei Diensten, die im Modul Internetdienste und -protokolle erstellt werden, müssen Sie den Programmnamen als erstes Argument angeben.
  6. Wenn dieser Tunnel alternativ eine Verbindung zu einem vorhandenen Server herstellen soll, wählen Sie Mit entferntem Host verbinden Möglichkeit. Geben Sie dann den Host ein, zu dem eine Verbindung hergestellt werden soll (z. B. localhost ) und die zu verwendende Portnummer (z. B. 110 ) in *Remote-Hostname und *Remote-Port Felder bzw.
  7. Das SSL-Zertifikat und die Schlüsseldatei Das Feld legt fest, welches SSL-Zertifikat den Clients für diese Verbindung präsentiert wird. Wenn Sie Ihr eigenes selbstsigniertes oder echtes Zertifikat mit dem Befehl openssl generiert haben, wählen Sie Zertifikat in Datei verwenden aus Option und geben Sie den vollständigen Pfad zur Datei in das angrenzende Textfeld ein. Andernfalls können Sie Zertifikat von Webmin verwenden auswählen verwenden, um dasselbe Zertifikat zu verwenden, das Webmin im SSL-Modus verwendet, oder *standardmäßig einkompiliert*, um das Zertifikat zu verwenden, das mit der STunnel-Software geliefert wird. Wenn Sie Ihr eigenes Zertifikat generieren, stellen Sie sicher, dass die Datei sowohl den privaten Schlüssel als auch das Zertifikat im PEM-Format enthält.
  8. Beim Verbinden mit einem entfernten Host kann STunnel so konfiguriert werden, dass es sich entgegengesetzt zum Normal verhält. Anstatt eine SSL-Verbindung zu akzeptieren und zu entschlüsseln, können Sie stattdessen eine normale Verbindung akzeptieren und verschlüsseln, um eine Verbindung zu einem anderen SSL-fähigen Server herzustellen. Dieser Modus kann durch Auswahl von Normal akzeptieren und mit SSL verbinden aktiviert werden im Feld *Tunnelmodus*. Es kann nützlich sein, wenn weder Ihre Client- noch Ihre Serverprogramme SSL unterstützen, Sie aber trotzdem möchten, dass Daten zwischen ihnen verschlüsselt werden. STunnel könnte in diesem Modus auf dem Clientsystem eingerichtet werden, konfiguriert, um eine Verbindung zu einem anderen STunnel-Dienst auf dem Serversystem herzustellen, der den Modus *SSL akzeptieren und normal verbinden* verwendet.
  9. Klicken Sie auf Erstellen unten auf der Seite, um den neuen Dienst hinzuzufügen.
  10. Nachdem Sie zur Hauptseite des Moduls zurückgekehrt sind, klicken Sie auf Änderungen übernehmen um den neuen Tunnel aktiv zu machen.


Das Formular zur Erstellung eines SSL-Tunnels

Alle Details eines bestehenden Tunnels können bearbeitet werden, indem Sie auf seinen Namen in der Liste auf der Hauptseite des Moduls klicken. Dadurch erscheint ein Bearbeitungsformular ähnlich dem in Abbildung 46-2, aber mit bereits ausgefüllten Feldern. Sie können entweder Änderungen vornehmen und auf Speichern klicken Schaltfläche, um sie aufzuzeichnen, oder klicken Sie auf Löschen um den Tunnel vollständig zu entfernen. Oder die Änderungen anwenden Schaltfläche auf der Hauptseite muss angeklickt werden, um die Änderungen zu aktivieren.


Webmin
  1. Jabber IM-Server

  2. PostgreSQL-Datenbankserver

  3. ProFTPD-Server

  4. WU-FTPD-Server

  5. PPTP-VPN-Server

OpenSLP-Server

Postfix-Mailserver

SSH-Server

Fehlerbehebung:Serververbindungsfehler

SSL-Zertifikate auf einem Windows-Server installieren

So führen Sie eine Tomcat-zu-Tomcat-SSL-Übertragung unter CentOS durch