Benutzer-Werkzeuge

Webseiten-Werkzeuge


stunnel
  • Kann verschlüsselte Tunnel herstelln
  • oder für Dienste SSL-Verschlüsselung zur Verfügung stellen die normalerweise keine SSL-/TLS-Unterstützung haben

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.

stunnel.txt · Zuletzt geändert: 2017/04/14 22:29 von root