2014-04-15 14 views
5

Ich benutze Tomcat 7/MySQL 5.6 auf Centos 6. Es ist Zeit, die Datenbank zu einem anderen Server zu trennen. Was ist der beste Ansatz, um die Verbindung zwischen Tomcat und dem Back-End-MySQL-Server zu sichern? Es ist virtualisiert und ich möchte die Verbindung nicht über ein freigegebenes Netzwerk öffnen.Wie sichere ich eine MySQL-Verbindung über das Netzwerk?

Ich denke Tunnel durch SSH. SSL scheint eine Menge Arbeit zu sein. Aber was ist der "empfohlene" Ansatz?

+0

verwenden Sie SSL, Sie haben [this] (https://dev.mysql.com/doc/refman/5.0/en/windows-and-ssh.html) andere Option, ssh zu verwenden, aber es ist auf Windows-Umgebung – fmodos

+0

Da mysql nativ SSL unterstützt, ist dies wahrscheinlich die effizienteste Methode. Allerdings wird ein SSH-Tunnel genauso gut funktionieren. Ich würde 90% "Geschmackssache" sagen. :) SSL könnte mehr Arbeit für die Einrichtung sein, aber wenn Sie es richtig machen, erfordert das Sichern Ihres SSH-Tunnels auch etwas Arbeit, weil es viel flexibler ist und als solches mehr Möglichkeiten bietet, es auszunutzen. – Someone

Antwort

1

Sie müssen mit dem Senden von Datenverkehr über ein offenes Netzwerk vorsichtig umgehen. Das MySQL-Protokoll ist standardmäßig überhaupt nicht verschlüsselt. Wenn also jemand Pakete in Ihrem Netzwerk erfassen kann, können diese alle Ihre Daten sehen.

Ich bevorzuge entweder einen SSH-Tunnel oder eine VPN-Verbindung. Ich finde es einfacher zu konfigurieren.

Mein Kollege Ernie Souhrada bei Percona hat ein paar wirklich gute Blog-Artikel über die Effizienz der Verwendung eines SSH-Tunnels im Vergleich zu MySQL-Client-Optionen für die Verbindung über SSL und den Overhead des Handshakes bei jeder Verbindung veröffentlicht.

Die Auswirkungen auf die Leistung von SSL-Handshake, die Ernie berichtet wird nicht ziemlich viel von einem Problem für eine Tomcat-Umgebung, da Sie in der Regel einen Verbindungspool haben würde, und deshalb würden neue Verbindungen weniger häufig gemacht werden.

+0

Es ist nicht "MySQLs SSL-Protokoll". Es ist eigentlich das TLS-Protokoll der IETF, und ich glaube, dass die Implementierung über OpenSSL erfolgt. – EJP

+0

@EJP, Punkt genommen, ich war ungenau in meiner Formulierung. Siehe Bearbeitungen oben. –

Verwandte Themen