Announcement

Collapse
No announcement yet.

Remotezugriff via Public Internet - Sicherheit?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Remotezugriff via Public Internet - Sicherheit?

    Hallo,

    ich möchte einen SQL Server 2005 Express SP2 auf einem Rechner im Public Internet erlauben, remote connections anzunehmen. Ich habe dazu einige Versuche gemacht und habe nun ein paar Erkenntnisse und auch noch Fragen, für die ich nach Bestätigung bzw. Antworten suche...

    1. Ich muss mit SQL Server Authentifizierung arbeiten. Windows Authentifizierung geht nicht, weil mein Client nicht in die Domäne des Servers eingebunden sein kann. Richtig?

    2. Der SQL-Server hat einen Instanznamen. Ein Verbindung kommt nur zustande, wenn ich auf dem Server nehmen dem SQL Server auch noch den SQL Server Browser starte und den entsprechenden UDP Port freigebe, obwohl der Client im Connect-String den Instanznamen konkret angeben kann. Warum ist der SQL Server Browser eigentlich notwendig?

    3. Wie sicher ist das ganze eigentlich? Ich habe natürlich ein sehr sicheres Passwort gewählt. Gibt es noch weitere Sicherheitsmaßnahmen, die man empfehlen kann/muss, z.B.
    3.1. Einen anderen als den Default Port wählen?
    3.2. Kann man vielleicht irgendwie ein Client-Zertifikat verlangen?
    3.3. Die Verbindung verschlüsseln? Wenn ich diese Option auf der Client-Seite wähle, bekomme ich nur eine Fehlermeldung, dass der "CN Name" nicht übereinstimmt oder so. Wie kann/muss man dies konfigurieren?

    4. Ganz allgemein fragt: Ist das Freigeben von Remote Verbindungen zum SQL-Server einschließlich öffnen der Firewall für den entsprechenden Port im WAN in der Praxis schon ein Sicherheitsrisiko? Oder ist das üblich und halbwegs sicher, so lange man sichere Passworte verwendet?

    Danke für Euren Rat und Meinung.
    Gruss
    KS

  • #2
    Willkommen in der Welt von SQLBlaster :-)

    Eine der größten Wurmwellen der IT-Geschichte wurde durch einen Fehler in der MSDE + der defaultmäßigen Freigabe von externen Verbindungen verursacht. Und da selbst MS keine Fehlerfreiheit per Definition erreichen kann würde eine generelle Freigabe beim MS SQL Server 2005 das gleiche Schadenspotential heraufbeschwören.

    zu 4:
    Normalerweise sind SQL-Server nicht so einfach im Internet erreichbar sondern werden über entsprechende Middle-Tier-Systeme angesprochen oder es steht eine Webanwendung (Java/PHP/ASP.NET/...) zur verfügung.

    Comment


    • #3
      Hallo Karsten,

      1. Ich muss mit SQL Server Authentifizierung arbeiten.
      Für Extranet-Nutzer (ohne Active Directory-Konto) steht noch der Weg über den von Microsoft kostenfrei zur Verfügung gestellten Weg ADAM (Active Directory Application Mode) zur Verfügung. Hinter ADAM steckt ein auf Lightweight Directory Access Protocol (LDAP) basierender Verzeichnisdienst, der parallel zum Active Directory die Internet-Konten verwaltet.


      2. Ein Verbindung kommt nur zustande, wenn ich ... auch noch den SQL Server Browser starte ...
      Der Browserdienst wird nur benötigt, wenn der Client erst zur Laufzeit den Instanznamen und den von dieser Instanz verwendeten Port ermitteln muss. Wenn diese Daten jedoch vorher bekannt sind und in der Verbindungszeichenfolge verbaut werden, darf der SQL Server Browser auch offline bleiben.

      3. Wie sicher ist das ganze eigentlich?
      Wenn die SQL Server Authentifizierung verwendet werden soll, könnte SSL die Situation verbessern. Aber generell würde ich eher zu einer Three-Tier-Architektur raten, bei der ein Anwendungsserver (für eine Internet-Anwendung wird dies ein XML Web Service) als Mittler zwischen dem Client und dem SQL Server eingebunden wird. Wenn nur relativ einfache Operationen im Spiel sind, würde der vom SQL Server 2005 angebotene XML Web Service ausreichen (dieser erzwingt SSL bei einer unverschlüsselten Verbindung).


      Hallo Bernhard

      ..eine generelle Freigabe beim MS SQL Server 2005 das gleiche Schadenspotential heraufbeschwören.
      Der MS SQL Server 2005 steht wie ein Fels in der Brandung. Das folgende Zitat stammt aus dem regelmäßig erscheinenden Sicherheitsbericht der Firma Symantec Coperation: "Microsoft SQL Server was the final database that was assessed for this discussion. It was not affected by any vulnerabilities during any of the reporting periods". Den Vergleich mit den anderen SQL-Servern aus diesem Bericht habe ich als Grafik angehängt.

      Microsoft hat aus SQLBlaster die richtigen Schlüsse gezogen.
      Attached Files

      Comment


      • #4
        Hallo Andreas,

        danke für Deine Hinweise. "ADAM" klingt interessant. Einstweilen verwende ich IPSec, um die Sicherheit zu erhöhen, was auch ganz gut funktioniert und auch noch eine zusätzliche Authentizitierung der Clients erlaubt.

        Noch eine Frage wegen dem Browser Dienst: Nach meinem Vetständnis geht es insb. darum, dass der Client beim Browser den TCP Port der benannten Server Instanz erfragen kann. Wenn man den Port auf der Client-Seite schon weiss und angibt, kann man auf den Browser verzichten? Kann man den Port auch in der Login Maske des Management-Studios angeben? Oder muss man sich einen lokalen Alias einrichten?

        Danke und Gruss
        Karsten

        Comment


        • #5
          Originally posted by Andreas Kosch View Post
          Der MS SQL Server 2005 steht wie ein Fels in der Brandung. ... Den Vergleich mit den anderen SQL-Servern aus diesem Bericht habe ich als Grafik angehängt.

          Microsoft hat aus SQLBlaster die richtigen Schlüsse gezogen.
          Gut das Sie gelernt haben. Jedoch das bisher noch keine Sicherheitslücken erkannt wurden heißt noch nicht das keine existieren. Und wenn diese Version mal das gleiche Verbreitungspotential haben wird wie die MSDE dann bestünde (bei defaultmäßiger Freigabe) auch das gleiche Schadenspotential. Also besser gar nicht so konfigurieren das sowas auftreten könnte.

          Und wer diesen SQL-Server auf seinem PC hat sollte eh gleich DSL haben. So 1/4 GB Update über ISDN oder Modem bei aktiven Windows-Update zu ziehen ist nicht gerade der Bringer.

          Comment


          • #6
            Hallo Karsten

            Oder muss man sich einen lokalen Alias einrichten?
            Du hast die Wahl:
            1. Entweder direkt im Eingabfeld für den Servernamen die Portnummer durch ein Komma abgetrennt mit angeben: tcp:TCP/IP-Adresse,Portnummer
            2. Oder den Alias im SQL Server configuration Manager anlegen
            3. Oder den Alias in C:\WINDOWS\system32\cliconfg.exe anlegen


            Die Optionen sind in BOL auf der Hilfeseite Creating a Valid Connection String Using TCP/IP etwas versteckt ;-)

            Comment

            Working...
            X