Dieses Paket dient dazu SSL verschlüsselte Tunnel zwischen entfernten
Clients und lokalen und/oder entfernten Servern zur Verfügung zu
stellen. Nicht SSL-fähige Programme können somit mit SSL-Verschlüsselung
und Authentifizierung versehen werden.
Das Stunnel-Paket wird über das Setup-Menü installiert. Wird eine
ältere Paketversion vorgefunden, so wird diese deinstalliert bevor
die neuen Programmdateien installiert werden. Nach dem Installieren
der Programmdateien wird direkt der Konfigurations-Editor gestartet
um die Konfiguration anzupassen. Nach Beendigung dieses Schrittes
werden die Konfigurationsdateien generiert und alle benötigten
Programme gestartet.
Die Menüpunkte dürften selbsterklärend sein, da sie keinerlei weitere
Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter
eingegangen.
Die Konfiguration kann über den Menüpunkt `Edit configuration'
geändert werden. Standardmäßig wird der Editor aufgerufen, der in der
Environment-Konfiguration über die Variable `EDITOR' festgelegt wurde.
Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration
aktiviert werden soll. Wird dies bestätigt, werden über ein Skript die
Anpassungen umgehend wirksam gemacht.
In der Konfigurationsdatei, die über das Menü zugänglich ist, sind
folgende Parameter vorhanden; wer sie von Hand editieren will findet
sie unter /etc/config.d/stunnel.
-
- START_STUNNEL
-
Für die Aktivierung des stunnel-Paketes muss diese Variable
lediglich auf den Wert `yes' gestellt werden. Die Einstellung
`no' deaktiviert das Stunnel-Paket.
Gültige Werte: yes, no
Standardeinstellung: START_STUNNEL='no'
- STUNNEL_DEFAULT_CERT_FILE
-
Über diesen Parameter kann eine Zertifikatsdatei im PEM-Format
angegeben werden, welche standardmäßig das für einen Verbindungsaufbau
benötigte Zertifikat enthält. Im Servermodus ist die Angabe
einer Zertifikatsdatei zwingend erforderlich.
Die Datei muss sich im Verzeichnis /usr/local/ssl/certs
befinden.
Gültige Werte: leer oder Name einer Zertifikatsdatei
Standardeinstellung: STUNNEL_DEFAULT_CERT_FILE=”
- STUNNEL_DEFAULT_CERT_KEY
-
Über diesen Parameter kann eine private Schlüsseldatei im
PEM-Format angegeben werden welche standardmäßig zur
Authentifizierung eines Zertifikatsbesitzers verwendet
werden soll. Die Datei muss sich im Verzeichnis /usr/local/ssl/private
befinden.
Gültige Werte: leer oder Name einer Schlüsseldatei
Standardeinstellung: STUNNEL_DEFAULT_CERT_KEY=”
- STUNNEL_DEFAULT_PROTOCOL
-
Über diesen Parameter wird das Protokoll eingestellt,
welches zum Verbindungsaufbau verwendet werden soll.
Gültige Werte: all (leer), ssl2, ssl3 oder tls1
Standardeinstellung: STUNNEL_DEFAULT_PROTOCOL='ssl3'
- STUNNEL_FIPS_ENABLED
-
Über diesen Parameter kann eingestellt werden, ob Stunnel von der
FIPS (Federal Information Processing Standard) Zertifizierung 140-2
von OpenSSL profitieren soll. Falls ja, muss als Transportprotokoll
`TLSv1' verwendet werden.
Gültige Werte: yes oder no
Standardeinstellung: STUNNEL_FIPS_ENABLED='no'
Mittels der folgenden Parameter werden die individuellen
Einstellungen einer Tunnelkonfiguration festgelegt.
- STUNNEL_N
-
Über diesen Parameter wird die Anzahl der zu konfigurierenden
Verbindungen festgelegt.
Gültige Werte: Zahl
Standardeinstellung: STUNNEL_N='1'
- STUNNEL_x_ACTIVE
-
Wird dieser Parameter auf den Wert `yes' gesetzt, so wird die
zugehörige Tunnelkonfiguration aktiviert, `no' deaktiviert sie.
Gültige Werte: yes oder no
Beispiel: STUNNEL_1_ACTIVE='no'
- STUNNEL_x_NAME
-
Über diesen Parameter kann man einen Namen für eine
Tunnelkonfiguration festlegen.
Gültige Werte: Name
Beispiel: STUNNEL_1_NAME='vpn-1'
- STUNNEL_x_CLIENT_MODE
-
Über diesen Parameter aktiviert man den Klientenmodus der
Tunnelkonfiguration, der Parameter STUNNEL_x_SERVER_MODE
muss in diesem Fall auf den Wert `no' gesetzt werden.
Gültige Werte: yes oder no
Standardeinstellung: STUNNEL_1_CLIENT_MODE='yes'
- STUNNEL_x_CLIENT_DELAYED_DNS
-
Über diesen Parameter legt man fest, ob DNS-Anfragen bei
Verbindungsanfragen verzögert ausgeführt werden sollen.
Dies kann sinnvoll sein, wenn dynamisches DNS verwendet
wird oder DNS, z.B. bei einer Einwahlverbindung, noch nicht
zur Verfügung steht wenn der Tunnel gestartet wird.
Gültige Werte: yes oder no
Standardeinstellung: STUNNEL_1_CLIENT_DELAYED_DNS='no'
- STUNNEL_x_CLIENT_LISTEN_HOST
-
Über diesen Parameter legt man fest auf welcher IP-Adresse
und welchem TCP-Port Verbindungsanfragen akzeptiert werden
sollen. Wird nur ein Port aber kein Hostname angegeben, so
werden Verbindungen über alle IP-Adressen des lokalen
Rechners angenommen.
Gültige Werte: [Hostname:] und TCP-Port
Standardeinstellung: STUNNEL_1_CLIENT_LISTEN_HOST=”
- STUNNEL_x_CLIENT_REMOTE_HOST
-
Über diesen Parameter legt man fest zu welchem Host bzw.
welcher IP-Adresse und welchem TCP-Port eine Verbindung
aufgebaut werden soll. Wird nur ein Port aber kein Hostname
angegeben, so wird standardmäßig `localhost' angenommen.
Gültige Werte: [Hostname:] und TCP-Port
Standardeinstellung: STUNNEL_1_CLIENT_REMOTE_HOST=”
- STUNNEL_x_CLIENT_OUTGOING_IPADDR
-
Über diesen Parameter legt man fest welche
Netzwerkschnittstelle für ausgehende Verbindungen verwendet
werden soll.
Gültige Werte: leer oder IP-Adresse
Standardeinstellung: STUNNEL_1_CLIENT_OUTGOING_IPADDR=”
- STUNNEL_x_CLIENT_APP_PROTOCOL
-
Über diesen Parameter kann festgelegt werden welches
Applikationsprotokoll zur Aushandlung einer SSL/TLS-gesicherten
Verbindung genutzt werden soll. Diese Option sollte nicht
verwendet werden, wenn eine verschlüsselte Verbindung über
einen separaten Port aufgebaut werden soll.
Die unterstützten Protokolle sind:
- cifs: Dies ist eine proprietäre, undokumentierte,
Erweiterung des CIFS-Protokolls in Samba.
- connect: Basierend auf RFC 2817 wird dieses Protokoll
verwendet um eine TLS-gesicherte Verbindung,
aufbauend auf eine HTTP/1.1-Verbindung, zu
etablieren. Dieses Protokoll wird nur im
Klientenmodus unterstützt.
- imap: Basierend auf RFC 2595 wird dieses Protokoll
verwendet um eine TLS-gesicherte IMAP-Verbindung
aufzubauen.
- nntp: Basierend auf RFC 4642 wird dieses Protokoll
verwendet um eine TLS-gesicherte NNTP-Verbindung
aufzubauen. Dieses Protokoll wird nur im
Klientenmodus unterstützt.
- pgsql: Siehe:
http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
- pop3: Basierend auf RFC 2449 wird dieses Protokoll
verwendet um eine TLS-gesicherte POP3-Verbindung
aufzubauen.
- proxy: Haproxy IP-Adresse des Klienten. Siehe:
http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
- smtp: Basierend auf RFC 2487 wird dieses Protokoll
verwendet um eine TLS-gesicherte SMTP-Verbindung
aufzubauen.
- socks: Es werden die SOCKS-Versionen 4, 4a und 5
unterstützt. Das SOCKS-Protokoll selbst wird
in einem SSL/TLS-Layer gekapselt, um die finale
Zieladresse zu verschleiern. Siehe:
http://www.openssh.com/txt/socks4.protocol
Es gilt zu beachten, dass der BIND-Befehl nicht
unterstützt und der USERID-Parameter ignoriert
wird.
Standardeinstellung: STUNNEL_1_CLIENT_APP_PROTOCOL=”
- STUNNEL_x_SERVER_MODE
-
Über diesen Parameter aktiviert man den Server-Modus der
Tunnelkonfiguration, der Parameter STUNNEL_x_CLIENT_MODE
muss in diesem Fall auf den Wert `no' gesetzt werden.
Gültige Werte: yes oder no
Standardeinstellung: STUNNEL_1_SERVER_MODE='no'
- STUNNEL_x_SERVER_LISTEN_HOST
-
Über diesen Parameter legt man fest auf welcher IP-Adresse
und welchem TCP-Port Verbindungsanfragen akzeptiert werden
sollen. Wird kein Hostname angegeben, so werden Verbindungen
über alle IP-Adressen des lokalen Rechners angenommen.
Gültige Werte: leer oder [Hostname:] und TCP-Port
Standardeinstellung: STUNNEL_1_SERVER_LISTEN_HOST=”
- STUNNEL_x_SERVER_COMMAND
-
Über diesen Parameter kann ein lokales Programm angegeben werden
welches nach einem Verbindungsaufbau ausgeführt werden soll.
Gültige Werte: Programm inkl. Pfad
Beispiel: STUNNEL_1_SERVER_COMMAND='/usr/sbin/pppd'
- STUNNEL_x_SERVER_COMMAND_OPTION
-
Über diesen Parameter können optionale Programmparameter für das über
STUNNEL_x_SERVER_COMMAND konfigurierte
Programm angegeben werden.
Gültige Werte: Optionale Parameter
Beispiel: STUNNEL_1_SERVER_COMMAND_OPTION='pppd local'
- STUNNEL_x_SERVER_APP_PROTOCOL
-
Über diesen Parameter kann festgelegt werden welches
Applikationsprotokoll zur Aushandlung einer SSL/TLS-gesicherten
Verbindung genutzt werden soll. Diese Option sollte nicht
verwendet werden, wenn eine verschlüsselte Verbindung über
einen separaten Port aufgebaut werden soll.
Die unterstützten Protokolle sind:
- cifs: Dies ist eine proprietäre, undokumentierte,
Erweiterung des CIFS-Protokolls in Samba.
- imap: Basierend auf RFC 2595 wird dieses Protokoll
verwendet um eine TLS-gesicherte IMAP-Verbindung
aufzubauen.
- pgsql: Siehe:
http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
- pop3: Basierend auf RFC 2449 wird dieses Protokoll
verwendet um eine TLS-gesicherte POP3-Verbindung
aufzubauen.
- proxy: Haproxy IP-Adresse des Klienten. Siehe:
http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
- smtp: Basierend auf RFC 2487 wird dieses Protokoll
verwendet um eine TLS-gesicherte SMTP-Verbindung
aufzubauen.
- socks: Es werden die SOCKS-Versionen 4, 4a und 5
unterstützt. Das SOCKS-Protokoll selbst wird
in einem SSL/TLS-Layer gekapselt, um die finale
Zieladresse zu verschleiern. Siehe:
http://www.openssh.com/txt/socks4.protocol
Es gilt zu beachten, dass der BIND-Befehl nicht
unterstützt und der USERID-Parameter ignoriert
wird.
Standardeinstellung: STUNNEL_1_SERVER_APP_PROTOCOL=”
- STUNNEL_x_CERT_CHECK
-
Über diesen Parameter legt man fest, ob und wie das Zertifikat
der Gegenstelle überprüft werden soll.
- 0 - Zertifikat nicht prüfen.
- 1 - Zertifikat der Gegenstelle prüfen, wenn es existiert.
- 2 - Zertifikat der Gegenstelle prüfen.
- 3 - Zertifikat der Gegenstelle prüfen und mit den lokal
installierten Zertifikaten vergleichen.
- 4 - Zertifikat der Gegenstelle prüfen und dabei die CA-Zertifikatskette
ignorieren.
Gültige Werte: Zahl
Standardeinstellung: STUNNEL_1_CERT_CHECK='0'
- STUNNEL_x_CERT_FILE
-
Über diesen Parameter kann eine Zertifikatsdatei im PEM-Format
angegeben werden, welche das für einen Verbindungsaufbau benötigte
Zertifikat enthält. Im Servermodus ist die Angabe einer Zertifikatsdatei
zwingend erforderlich.
Die Datei muss sich im Verzeichnis /usr/local/ssl/certs
befinden.
Gültige Werte: leer oder Zertifikatsdatei
Standardeinstellung: STUNNEL_1_CERT_FILE=”
- STUNNEL_x_CERT_KEY
-
Über diesen Parameter kann eine private Schlüsseldatei im
PEM-Format angegeben werden welche standardmäßig zur Authentifizierung
eines Zertifikatsbesitzers verwendet werden soll.
Die Datei muss sich im Verzeichnis /usr/local/ssl/private
befinden.
Gültige Werte: leer oder Schlüsseldatei
Standardeinstellung: STUNNEL_1_CERT_KEY=”
- STUNNEL_x_PROTOCOL
-
Über diesen Parameter wird das Sicherheitsprotokoll eingestellt,
welches zum Verbindungsaufbau verwendet werden soll.
Gültige Werte: all (leer), ssl2, ssl3 oder tls1
Standardeinstellung: STUNNEL_1_PROTOCOL='ssl3'
- STUNNEL_LOG_COUNT
-
Über diesen Parameter wird eingestellt, wie viele Logdateien
vorgehalten werden sollen. Wird dieser Wert überschritten, so
wird immer die älteste Logdatei gelöscht.
Gültige Werte: Zahl
Standardeinstellung: STUNNEL_LOG_COUNT='6'
- STUNNEL_LOG_INTERVAL
-
Dieser Parameter bestimmt in welchen Intervallen die Logdateien
archiviert werden sollen. Zur Auswahl stehen die Schlüsselwörter
`daily' - täglich, `weekly' - wöchentlich und `monthly - monatlich.
Gültige Werte: daily, weekly, monthly
Standardeinstellung: STUNNEL_LOG_INTERVAL='weekly'