Ich habe unter einem mit KVM virtualisierten Server einen MS SQL Server laufen.
Auf den würde ich jetzt gerne von außerhalb zugreifen.
Meine bisherige Idee: stunnel sowohl auf potentiellen Clients und auf dem Server jeweils mit eigenen Zertifikaten.
Die Clients sind Windows Rechner.
Hat jemand so was schon mal aufgesetzt oder hat eine Ahnung, dass die Idee brilliant/bescheuert/zu kompliziert/zu einfach ist?!
Alternativen sind natürlich willkommen.
MS SQL Server unter virtualisiertem Windows sicher machen
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Steht der MSSQL im Internet oder internen Netz?
Alternative wäre SSH Tunnel oder VPN
Alternative wäre SSH Tunnel oder VPN
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Wird im Internet stehen.FANA hat geschrieben:Steht der MSSQL im Internet oder internen Netz?
Ist der Aufwand einen VPN aufzusetzen vergleichbar mit stunnel?Alternative wäre SSH Tunnel oder VPN
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Hab mit stunnel leider noch nicht gearbeitet. Beim VPN kommt es drauf an, welche Lösung du einsetzt.Liffi hat geschrieben:Ist der Aufwand einen VPN aufzusetzen vergleichbar mit stunnel?
Ziemlich simpel ist z.B. n2n
http://www.ntop.org/products/n2n/
http://packages.debian.org/squeeze/n2n
Da du Windows Client erwähnt hast, wäre Tinc oder OpenVPN möglich. Vor allem Tinc ist auch recht einfach gehalten
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Hallo Liffi,
Bei mir steht der MySQL-Server zwar im Intranet, nicht im Internet; trotzdem habe ich genau das (aus Bequemlichkeit!) selbst genau so in meinem Netz: MySQL auf dem virtuellen Server, Zugriff von Windows-Client über SSH-Tunnel.
Konfiguration serverseitig:
In /etc/ssh/sshd-config den Eintrag "AllowTCPForwarding" auf "yes" setzen - das war's fast auf der Serverseite.
Unter Windows habe ich mit PuTTY und Plink gearbeitet.
Ich habe mir übrigens den plink-Befehl in die Autostart-Gruppe gelegt - und habe keine Last damit, meine User in der Datenbank mit Remote Hosts definieren zu müssen. Alles läuft scheinbar lokal.
Viel Erfolg!
goffe
Bei mir steht der MySQL-Server zwar im Intranet, nicht im Internet; trotzdem habe ich genau das (aus Bequemlichkeit!) selbst genau so in meinem Netz: MySQL auf dem virtuellen Server, Zugriff von Windows-Client über SSH-Tunnel.
Konfiguration serverseitig:
In /etc/ssh/sshd-config den Eintrag "AllowTCPForwarding" auf "yes" setzen - das war's fast auf der Serverseite.
Unter Windows habe ich mit PuTTY und Plink gearbeitet.
- mit PuTTYGen private key und public key generieren; den public Key mit Copx/Paste auf die Server-Seite unter die Verbindungs-UserId bringen, und zwar unter $HOME/.ssh/authorized_keys.Nicht die von PuTTYGen erzeugte Public-Key-File verwenden - die enthält den Key mit Newlines unterbrochen und in Schmutz eingepackt.
- PuTTY: Eine spezielle Session definieren; dabei im Config-Baum (linke Spaltge) unter "Connection->Data" die serverseitige UserId angeben.
- unter Connection->SSH die Checkbox "Don't start a shell or command at all" anclicken.
- Unter Connection-> Auth das Private-Key-File angeben.
- Unter Connection->Tunnels die Checkbox "Remote ports do the same" anclicken, und den Source Port 3306 (das ist MySQL) auf die Destination <DeinServer>:3306 mappen - "Add" clicken.
- Unter "Session" der Session einen Namen geben und speichern.
- Am besten das private-Key-File in den pageant aufnehmen
- Unter Windows in einer Dow-Box ("Befehlszeile") den Befehl "C:\programme\PuTTY\plink.exe -batch -load <session-Name>" eingeben und im Hintergrund laufen lassen.
Ich habe mir übrigens den plink-Befehl in die Autostart-Gruppe gelegt - und habe keine Last damit, meine User in der Datenbank mit Remote Hosts definieren zu müssen. Alles läuft scheinbar lokal.
Viel Erfolg!
goffe
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Danke goffe. Das sieht auch gut aus.
Ich werde mal testen, wie hoch die Akzeptanz eines weiteren laufenden Programms bei den Benutzern ist
.
Ich werde mal testen, wie hoch die Akzeptanz eines weiteren laufenden Programms bei den Benutzern ist
![Smile :-)](./images/smilies/icon_smile.gif)
Re: MS SQL Server unter virtualisiertem Windows sicher mache
Vermutlich werden es zwei weitere laufende Programme werden - pageant und plink. Aber wenn die beide in der Autostart-Gruppe untergebracht werden können, merken die Endbenutzer eigentlich fast gar nichts davon, daher sollte das Akzeptanz-Problem gering sein (und dass ein Sicherheitsproblem wohl nur mit zusätzlich laufender Software gelöst werden kann, müsste man auch Endbenutzern klar machen können).
Schwieriger scheint mir das Deployment dieser Lösung zu sein: Wie bringst Du die Lösung auf die Windows-PCs Deiner Endbenutzer, wenn Du n > 3 Endbenutzer zu bedienen hast? Sich bei jedem Benutzer hinzusetzen und interaktiv die PuTTY-Session zu konfigurieren, wäre ja wohl mehr als ätzend. (Und was ist, wenn sich was ändert?). Da brauchst Du wohl einen maschinengestützen Verteilungs- und Installationprozess.
Dieses Problem habe ich bei meinem privaten Heimnetz nicht, aber sehe es durchaus im Bereich betrieblicher Installationsverwaltung. Zwei Techniken zur Lösung fallen mir hier ein:
Schwieriger scheint mir das Deployment dieser Lösung zu sein: Wie bringst Du die Lösung auf die Windows-PCs Deiner Endbenutzer, wenn Du n > 3 Endbenutzer zu bedienen hast? Sich bei jedem Benutzer hinzusetzen und interaktiv die PuTTY-Session zu konfigurieren, wäre ja wohl mehr als ätzend. (Und was ist, wenn sich was ändert?). Da brauchst Du wohl einen maschinengestützen Verteilungs- und Installationprozess.
Dieses Problem habe ich bei meinem privaten Heimnetz nicht, aber sehe es durchaus im Bereich betrieblicher Installationsverwaltung. Zwei Techniken zur Lösung fallen mir hier ein:
- Die benötigten Key Files (private und public Keys für SSH) könnte man auch zentral generieren und mit der Software verteilen (entweder über Verschlüsselung im Script oder per CD-Wurfsendung - unverschlüsselt sollte man zumindest das private key-file ja nicht übers Netz schicken; dann ware ja der Witz von SSH weg.)
- Die PuTTY-Sessions müsste man sich mit regedt32 aus der Windows-Registry ziehen und mit unter die Benutzer verteilen. (Schlüssel ist "HKEY_CURRENT_USER/Sortware/SimonTatham/PuTTY/Sessions"). Achtung: Der Name des private key-files steht unter dem irreführenden Unterschlüssel PublicKeyFile, und müsste natürlich pro berechtigten Benutzer beim Deployment angepasst werden.
- Dann müsste der Endbenutzer nur noch davon überzeugt werden, dass er eine Passphrase festlegen und bei jeder Anmeldung eingeben muss (wenn pageant in der Autostart-Gruppe liegt).