Skip to content

[Lösung] vSphere/ESXi 6.0 U1 mit Veeam - Error: NFC storage connection is unavailable

Es ist mal wieder Zeit für einen Ausflug in virtuelle Gefilde, genauer gesagt soll es um das neueste Update aus dem Hause VMware gehen.

vSphere/Veeam - NFC storage connection is unavailable

VMware hat vor wenigen Tagen ein Update 60u1 für vCenter und ESXi Maschinen veröffentlicht (Changelog). 
Dieses bringt neben Neuerungen auch neue Probleme mit sich, so lässt sich nach einem Update auf die aktuellste Version keine virtuelle Maschine mit der Sicherungssoftware Veeam sichern, auch wenn dort die aktuellste Patch Version installiert ist. 

Die Sicherung bricht mit dem folgenden Fehler ab:

Getting VM info from vSphere
Error: NFC storage connection is unavailable. Storage: [stg:datastore-666,nfchost:host-666,conn:127.0.1.1]. Storage display name: [datastore]
Failed to create NFC download stream. NFC path: [nfc://conn:127.0.1.1,nfchost:host-667,stg:datastore-666@localhost.vmx]. 

Im Netz finden sich einige Vorschläge die dieses Problem angeblich lösen. Viele bringen den Fehler mit falschen DNS Einstellungen in Verbindung und schlagen vor alle Geräte richtig ins DNS einzutragen, bzw. die Host Datei anzupassen.
Leider beziehen sich die Lösungen oft auf ältere ESXi bzw. Veeam Versionen und führen somit nicht zum gewünschten Ziel.

veeam

Hier hilft ein Blick in die Logs der Sicherungssoftware oft weiter:

ERR |Failed to initiate NFC session. Target host: [127.0.0.1]. VI connection ID: [127.0.1.1]. Storage MOID: [datastore-666].
ERR |SSL error, code: [3368].error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
>>  |SSL_connect() function call has failed.

Der Meldung lässt sich entnehmen, dass die Verbindung an der SSL Aushandlung scheitert. Der Fehler hat somit Nichts mit DNS oder ähnlichem zu tun, es kommt schlicht keine sichere Verbindung zu Stande.


Ein weiterer Blick in den Changelog von ESXi 6.0 Update 1 zeigt folgenden Satz "Support for SSLv3: Support for SSLv3 has been disabled by default."
Das heißt, aktualisierte ESXi Hosts unterstützen dieses Protokoll in der neuesten Version nicht mehr. Das ist nicht weiter verwunderlich, denn es gilt als unsicher.

vSphere6

Leider benötigt Veeam SSLv3 weiterhin für seine Sicherungen, genauer betrifft es den Port 902. Die Funktion lässt sich über einen Eintrag in der Config wieder aktivieren. Dazu muss auf die jeweilige ESXi Maschine via SSH zugegriffen werden. Die unten erwähnte Konfigurationsdatei gilt es anzupassen.

cp /etc/vmware/config /etc/vmware/config.date
vi /etc/vmware/config
    vmauthd.ssl.noSSLv3 = false
    

Danach ist ein Neustart des Dienstes erforderlich

/etc/init.d/rhttpproxy restart 

Nach dieser Änderung sollten Sicherungen mit Veeam wieder funktionieren. Weitere Details dazu unter kb2063.

Tomcat 7/8 absichern - SSLv2 und SSLv3 deaktivieren - PFS aktivieren

In den damaligen Artikel über Poodle und SSLv3 Abschaltung bzw. Servehärtung ist der Tomcat total untergegangen. Das will ich mal schnell nachholen.

tomcat

Tomcat 7/8 härten - unsicheres SSL abschalten

Im Prinzip muss nicht viel gemacht werden, es sollten lediglich die richtigen Parameter in der server.xml hinterlegt werden. Zusätzlich darf natürlich gerne eine aktuelle und sichere Java Version verwendet werden.

Wichtig 

  • Aktuelle Java Version einsetzen
  • Aktuelle Tomcat Version einsetzen
  • Aktuelle DB Connectoren einsetzen

HTTPS Servereinstellungen

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" maxHttpHeaderSize="8192" minSpareThreads="25" scheme="https" secure="true" keystoreFile="\PfadzumKeystore\keystore" keystorePass="Password" clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"

ciphers="

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"
 
/>

Die Erklärung für die einzelnen Attribute dieser Konfiguration könnt ihr hier finden.

Wer sich nun fragt, wo hier Perfect Forward Secrecy konfiguriert ist, der findet diese in allen Cipher Suites mit "ECDHE_ECDSA und ECDHE_RSA" wieder. Da diese präferiert werden ist ein Diffie-Hellman Schlüsselaustauschverfahren gewährleistet. ECDH_ECDSA und ECDH_RSA unterstützen übrigens kein PFS.

Weiterführende Links

Poodle - SSL 3.0 auf Windows Server deaktivieren

Die letzten Tage hatte ich einen Artikel auf dem Blog, der sich mit dem Abschalten des SSL 3.0 Protokolls auf Apache, Nginx oder Postfix Servern beschäftigte.

Was bei diesen linuxbasierten Servern natürlich komplett fehlte, waren Windows Systeme.

Auch auf einem IIS Server lässt sich SSLv3 recht einfach abschalten.

SSL3 auf Windows Servern deaktivieren

SSL3deaktivieren

Wie von anderen Problemen von Windows Systemen bekannt lassen sich diese meist über die Registry "regedit.exe" lösen. So ist das auch mit der aktuellen Poodle Lücke.

Es genügt zwei Werte in den Sicherheitseinstellungen der Registry zu setzen und schon, einen Neustart vorausgesetzt, ist SSL 3.0 nicht mehr aktiv.

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]

"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]

"DisabledByDefault"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]

"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]

"DisabledByDefault"=dword:00000001

Der Einfachheit halber, habe ich euch die zu ändernden Werte in eine ausführbare Registry Datei gepackt.

Diese könnt ihr herunterladen, entpacken und ausführen und müsst nicht in den Untiefen der Registry suchen.

Window_Server_SSL_3.0_deaktivieren


Anleitung - Poodle SSL 3.0 Lücke in Apache, Nginx oder Postfix deaktivieren

Seit ein paar Tagen ist der Pudel los. Zumindest bei einigen. Gemeint ist die neue, von Google entdeckte SSLv3 Lücke. Diese erlaubt bei bestimmter Konstellationen einen Angriff auf die verwendeten Systeme. Um so einen Angriff zu verhindern haben Browserhersteller bereits vorgebeugt und wollen SSLv3  aus dem eigenen Browser verbannen (siehe Mozilla).

Ich möchte euch kurz zeigen, wie die Deaktivierung von SSLv3 unter Apache und Nginx funktioniert. Zunächst sollte aber getestet werden, ob der Server SSLv3 überhaupt freigeschaltet hat.

Apache oder Nginx auf SSLv3 Lücke testen

Es genügt ein einfacher Konsolenbefehl, um abzuprüfen, wie es mit dem Server steht

openssl s_client -connect REMOTE_SERVER:443 -ssl3

Sollte die Verbindung via SSLv3 aktiviert sein, erhaltet ihr bei einen erfolgreichen Handshake ein paar Werte zurück. Hier bei einem Apache Server

SSL handshake has read 1260 bytes and written 322 bytes

New, .../SSLv3, Cipher is DHE-RSA-AES256-SHA

Ist SSLv3 bereits deaktiviert, werden Fehlermeldungen ausgegeben

CONNECTED(00000003)

139957739407008:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1260:SSL alert number 40

139957739407008:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:

no peer certificate available

No client certificate CA names sent

SSL handshake has read 7 bytes and written 0 bytes

New (NONE), Cipher is (NONE)

Secure Renegotiation IS NOT supported

apache

Apache Server - SSLv3 abschalten

Im Prinzip hatte ich es schon einmal beim Thema Hardening Apache Server erwähnt, wie bestimmte Protokolle festgelegt werden können. Es genügt folgende Zeile in der "default-ssl.conf" bzw. "ssl.conf" zu hinterlegen, um SSLv3 zu unterdrücken.

sudo nano /etc/apache2/mods-available/ssl.conf

SSLProtocol All -SSLv2 -SSLv3

Alternativ können auch einfach alle Protokolle außer TLS deaktiviert werden. Dazu werden mit Minus alle blockiert und mit Plus die gewünschten Protokolle hinzugefügt.

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

Alternativ dazu können mit dem Befehl "SSLCipherSuite" die gewünschten Chiffren angegeben, bzw. eine Priorisierung festlegt werden. Ich hatte dies im besagten Hardening Artikel bereits beschrieben. Weiter Details findet ihr hier.

Danach wie nach jeder Änderung der Konfiguration

sudo service apache2 restart 

nginx

Nginx Server - SSLv3 deaktvieren

Für den inzwischen auf Platz 1. gelisteten Webserver (der 10 000 größten Webseiten) gilt ein ähnliches Vorgehen, wie beim Kollegen Apache. Auch hier hatte ich bereits einen Artikel verfasst.

In der Config muss lediglich SSL 3.0 entfernt werden.

sudo nano /etc/nginx/nginx.conf

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

sudo service nginx restart 

Gleiches gilt für die hinterlegten Ciphersuites. Hier kann beim Apache Webserver nachgeschaut werden. 

SSLv3 lässt sich nicht deaktivieren, was tun?

Auf manchen Servern ist es nicht möglich SSLv3 zu deaktivieren, welche Gründe es auch immer haben mag. Hier bleibt die Möglichkeit auf OpenSSL 1.0.1j, 1.0.0o bzw. 0.9.8zc zu aktualisieren. Denn in den aktuellen Versionen ist TLS_FALLBACK_SCSV aktiv, was Schutz vor Poodle bietet. Ob OpenSSL nach einem Update akutell ist , lässt sich dies mit SSL LABS prüfen.

Sollte auch ein Update auf neuere Versionen nicht möglich sein, ist es möglich schädliche ChipherSuites zu verbieten.

Folgende Cipher Suites sollen NICHT enthalten sein, wenn ein Poodle Angriff verhindert werden soll.

IDEA-CBC-SHA, EXP-DES-CBC-SHA, DES-CBC-SHA, DES-CBC3-SHA, EXP-DH-DSS-DES-CBC-SHA, DH-DSS-DES-CBC-SHA, DH-DSS-DES-CBC3-SHA, EXP-DH-RSA-DES-CBC-SHA, DH-RSA-DES-CBC-SHA, DH-RSA-DES-CBC3-SHA, EXP-DHE-DSS-DES-CBC-SHA, DHE-DSS-CBC-SHA, DHE-DSS-DES-CBC3-SHA, EXP-DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC3-SHA, EXP-ADH-DES-CBC-SHA, ADH-DES-CBC-SHA, ADH-DES-CBC3-SHA, EXP-RC2-CBC-MD5, IDEA-CBC-SHA, EXP-DES-CBC-SHA, DES-CBC-SHA, DES-CBC3-SHA, EXP-DHE-DSS-DES-CBC-SHA, DHE-DSS-CBC-SHA, DHE-DSS-DES-CBC3-SHA, EXP-DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC3-SHA, ADH-DES-CBC-SHA, ADH-DES-CBC3-SHA, AES128-SHA, AES256-SHA, DH-DSS-AES128-SHA, DH-DSS-AES256-SHA, DH-RSA-AES128-SHA, DH-RSA-AES256-SHA, DHE-DSS-AES128-SHA, DHE-DSS-AES256-SHA, DHE-RSA-AES128-SHA, DHE-RSA-AES256-SHA, ADH-AES128-SHA, ADH-AES256-SHA

postfix

Postfix - SSL 3.0 ausschalten

Auch auf dem bekannten Mailserver Postfix lässt sich SSL 3.0 unterbinden, hier genügt ein einfach Eingriff  "/etc/postfix/main.cf"

sudo nano /etc/postfix/main.cf 

smtpd_tls_security_level = encrypt

smtpd_tls_mandatory_ciphers = high

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

smtpd_tls_protocols = !SSLv2 !SSLv3


smtp_tls_protocols = !SSLv2, !SSLv3

smtp_tls_security_level = encrypt

smtp_tls_mandatory_ciphers = high

smtp_tls_mandatory_protocols = !SSLv2 !SSLv3

sudo service postfix restart


Letzendlich gilt es, die eigenen Server immer im Auge zu haben und auf aktuelle Sicherheitslücken zu scannen.