Verschlüsselte Verbindung zwischen Server und Client Bis S 39.5.22
Achtung
- Die nachfolgend beschriebene Lösung für die verschlüsselte Verbindung durch die Stunnel-Software wird von PLANTA nicht mehr unterstützt. Stattdessen bietet PLANTA ein neues Add-on PLANTA Secure an.
Informationen
- Die verschlüsselte Verbindung zwischen Server und Client wird durch eine freie Software namens Stunnel realisiert.
- Mit dieser Software sind bei der Benutzung von PLANTA project über SSL abgesicherte Verbindungen zwischen Client und Server möglich.
Allgemein
Ziel
- Dieses Topic soll als Hilfe zum Einrichten einer Absicherung der Client-Server-Kommunikation über SSL dienen.
Hinweis
- Als Voraussetzung zur Durchführung der folgenden Administrationsaufgaben sind fundierte Kenntnisse in den jeweiligen Fachgebieten erforderlich.
Installation von Stunnel
Information
- Die Installationsanleitung können Sie auf der offiziellen Seite von Stunnel nachlesen. Einige Installationsschritte sind unixspezifisch — es ist jedoch auch ein Windows-Installer verfügbar.
Hinweis
- Für Linux-Nutzer wird empfohlen, die distributionsspezifische Paketverwaltung (falls vorhanden) zur Installation zu nutzen, da hierdurch die Aktualisierung von Stunnel hinsichtlich Sicherheits-Updates erleichtert wird.
Konfiguration von Stunnel für den PLANTA Server
Vorgehensweise
- Zunächst ist eine Konfigurationsdatei
planta.conf
im Konfigurationsverzeichnis von Stunnel anzulegen.
- Im folgenden ein Beispiel für den Inhalt (zumindest Anpassungen des Ports sind i.A. notwendig):
syslog = yes
socket = l:TCP_NODELAY=1
[PlantaServer]
verify = 0
ciphers = HIGH:!RC4
accept = 22004
connect = 127.0.0.1:21004
cert = /etc/stunnel/planta.pem
- Erklärung mancher Konfigurationsparameter:
-
ciphers
: Hier kann optional eine Liste von Verschlüsselungs-/Hash-Verfahrenskombinationen angegeben werden, aus denen bei den Verhandlungen ausgewählt werden kann.
- Nur gleichzeitig von der installierten Version von Stunnel/OpenSSL und dem .NET-Framework unterstützte Verfahren haben Relevanz für die Aushandlung.
- Informationen hierzu sind bei Stunnel mittels des Befehls
openssh ciphers -v
zu erfragen.
- Vom Client unterstützte Verfahren finden sich hier (Verschlüsselungsverfahren) und hier (Hashverfahren).
-
accept
: Angabe des über TLS abgesicherten Ports zur Verbindung mit dem Client
-
connect
: Angabe des Server-Ports (wie während der Installation angegeben)
- Des Weiteren muss ein Zertifikat erstellt werden, wie beispielhaft im Folgenden erläutert:
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> /etc/stunnel/planta.pem
Hinweise
- Das auf diese Art erstellte Zertifikat ist ein Self-Signed-Zertifikat, welchem der PLANTA Client nicht vertraut
- Dies kann zu Testzwecken bzw. zu einer initialen Einrichtung dienen; im Produktivbetrieb sollte hier aber ein von einer Zertifizierungsstelle signiertes Zertifikat verwendet werden
- Nun wird Stunnel für automatischen Start konfiguriert und gestartet (genaues hierzu ist in der Dokumentation von Stunnel oder der Distribution nachzulesen)
- Zum Test kann der Befehl
openssl s_client -connect <host>:<port>
verwendet werden - bei Erfolg erscheint eine Meldung über eine neue Sitzung im PLANTA Server-Log.
- Zur Konfiguration mit xinetd ist /etc/xinetd.d/planta anzulegen mit folgendem Inhalt:
# default: off
# description: PLANTA Server, wrapped in stunnel
service planta
{
disable = no
flags = IPv4
socket_type = stream
wait = no
user = root
server = /usr/bin/stunnel
server_args = /etc/stunnel/planta.conf
log_on_failure += USERID
}
Die
/etc/stunnel/planta.conf
ist auf
syslog = yes
verify = 0
ciphers = HIGH:!RC4
accept = 22004
connect = 127.0.0.1:21004
cert = /etc/stunnel/planta.pem
zu reduzieren.
Konfiguration von PLANTA project-Server für Stunnel
Ab S 39.5.13
Informationen
- Die Verwendung von Stunnel ist für den PLANTA Server transparent, somit muss man hier zur Inbetriebnahme nicht zwingend eine Konfigurationsänderung vornehmen.
- Wenn jedoch eine unverschlüsselte Kommunikation verhindert werden soll, so ist der direkte Zugriff auf den Server-Port zu sperren.
- Hierfür kann in
config/globals.conf
der Parameter host
z.B. auf localhost
gesetzt werden.
- Damit ist es beispielsweise möglich, Stunnel denselben Port wie PLANTA Server zuzuweisen, jedoch auf einem von außen erreichbaren Netzwerk-Interface.
Bis S 39.5.12
Informationen
- Die Verwendung von Stunnel ist für den PLANTA Server transparent, somit muss man hier zur Inbetriebnahme keine Konfigurationsänderung vornehmen.
- Wenn jedoch eine unverschlüsselte Kommunikation verhindert werden soll, so ist der Zugriff auf den Server-Port zu sperren.
- Da es bislang hierfür keine Konfigurationsmöglichkeit gibt, muss dies über Betriebssystem-Funktionalität (Firewall) erfolgen.
Konfiguration des PLANTA project-Client
Information
- Der Parameter
encrypted=yes
schaltet die Verwendung von TLS beim Client ein.
- Zu beachten ist, dass der Client bei Aktivierung der Option TLS verlangt, sich also nicht auf einen nicht abgesicherten Port verbinden kann.
- Der abgesicherte Port ist als Server-Port zu konfigurieren; Dies ist derjenige, der in der Datei
stunnel.conf
als Parameter für accept
angegeben ist.