* Kann verschlüsselte Tunnel herstelln * oder für Dienste SSL-Verschlüsselung zur Verfügung stellen die normalerweise keine SSL-/TLS-Unterstützung haben * Dokumentationen: https://www.stunnel.org/docs.html ====== Verschlüsselter Tunnel für einen Dienst ====== * die Verbindung wird aufgebaut sobald ein Dienst sich mit dem Sender-Stunnel verbindet * vorher gibt es keine Verbindung zwischen dem Client-Stunnel und dem Server-Stunnel * wird die Verbindung zu stunnel abgebaut wird auch die Verbindung zwischen den stunnel-Instanzen abgebaut * stunnel läuft dabei auf Sender und Empfänger weiter und der Sender wartet auf eine bei ihm eingehende Verbindung Praktische Funktionsweise: Rechner A Rechner B Dienst A -> stunnel --------> stunnel -> Dienst B ===== Koniguration ===== * Die Konfigurationsdateien liegen in /etc/stunnel * der Name ist beliebig, muss aber auf .conf enden * Jede Konfigurationsdatei kann eine oder mehrere Sektionen haben ("[Bezeichnung]") Client: [rsyslog] client=yes accept=520 connect=otest6.lab:231 * client: Definiert diese Seite als Client, das was unter connect steht wird genutzt um den Tunnel per ssl aufzubauen * accept: Auf welchem Port wird auf die (unverschlüsselte, die des Services der verschlüsselt werden soll) eingehende Verbindung gewartet -> in diesem Fall auf dem Port den tcp rsyslog verwendet um Daten an einen entfernten Syslog zu senden (der syslog hat in diesem Fall 127.0.0.1 als Zieladdresse) * connect: Die Addresse wohin der verschlüsselte Tunnel aufgebaut werden soll (das ist in dem Fall so, weil client=yes ist) Server: [rsyslog] accept=231 connect=127.0.0.1:514 cert=/etc/certs/client2.cert key=/etc/certs/client2.key * Da kein client=yes Parameter vorhanden ist, wird generell davon ausgegangen, dass es sich um eine Serverdefinition handelt * accept: Definiert auf welchem Port(s) auf den SSL-Verbindungsaufbau gewartet wird * connect: Definiert wohin sich verbunden wird (unverschlüsselt) wenn auf dem Port unter accept eine verschlüsselte Verbindung eingeht -> im obigen Fall wird sich mit dem lokalen rsyslog verbunden * cert: Definiert das zu verwendende Zertifikat (bzw. optional die gesamte Chain) * key: Definiert den privaten Schlüessel des Servers der für SSL verwendet werden soll Oben stehende Konfiguration ist nicht sonderlich sicher, es gibt keine Authenfizierung des Clients gegenüber dem Server und umgekehrt - das lässt sich aber in stunnel einrichten. \\ Auch wartet der Client-Syslog-Server auf allen (auch den öffentlichen) Interfaces auf eine unverschlüsselte eingehende Verbindung.