none
SQL 2008 Anmeldeversuche unterbinden RRS feed

  • Frage

  • Wie kann ich nach x anmeldeversuchen am besten automatisch eine ip aussperren so das diese nicht die ganze zeit alles passwörter durchspielem kann und mir so den server blockiert

    mssql 2008 auf einem 2008 server

    Samstag, 16. Oktober 2010 18:56

Antworten

  • Hallo,

    je IP geht das nicht, wäre bei Wählleitungen auch sinnfrei, da dort IP leicht gewechselt werden kann.

    Allerdings kannst Du für eine Anmeldung die Zahl der Fehlversuche begrenzen.
    Für eine Windows Anmeldung über die Kennwortrichtlinie und Kontosperrrichtline der Domäne (oder des lokalen Rechners).

    Gleiches kannst Du für SQL Server Anmeldungen erreichen, in dem Du die Kennwortrichtlinie
    mit CHECK_POLICY erzwingst, siehe CREATE LOGIN (auch CHECK_EXPIRATION sollte gesetzt werden).
    Um solche Attacken zu erkennen, aktiviere auch die Protokollierung von Anmeldefehlversuchen
    sowohl auf Windows-Ebene als auch für den SQL Server (unter Eigenschaften).

    Gruß Elmar

    Samstag, 16. Oktober 2010 22:03
    Beantworter
  • Den IP Port einer Instanz kannst Du im SQL Server Konfigurations-Manager unter den Protokollen => TCP/IP konfigurieren.

    In einem Logon-Trigger könntest Du bestimmte Prüfungen vornehmen und ggf. den Anmeldeversuch abbrechen. Nur ob Du an die IP Adresse kommen kannst, weiss ich nicht. In sys.sysprocesses steht im Feld net_address ein "eindeutige Bezeichner für die Netzwerkkarte auf der Arbeitsstation jedes einzelnen Benutzers"; nur ob das hilfreich ist?

    Aber vorsichtig mit Logon-Trigger: Wenn Du da einen (logischen) Fehler rein baust, kannst u.U. Du selbst Dich nicht mehr anmelden. Von daher vorher gut auf einer Test-Instanz testen und vorher die master DB bei runtergefahrenem Dienst kopieren; den ein Restore wäre schwierig, wenn man sich nicht anmelden kann.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Freitag, 22. Oktober 2010 06:05

Alle Antworten

  • Hallo,

    je IP geht das nicht, wäre bei Wählleitungen auch sinnfrei, da dort IP leicht gewechselt werden kann.

    Allerdings kannst Du für eine Anmeldung die Zahl der Fehlversuche begrenzen.
    Für eine Windows Anmeldung über die Kennwortrichtlinie und Kontosperrrichtline der Domäne (oder des lokalen Rechners).

    Gleiches kannst Du für SQL Server Anmeldungen erreichen, in dem Du die Kennwortrichtlinie
    mit CHECK_POLICY erzwingst, siehe CREATE LOGIN (auch CHECK_EXPIRATION sollte gesetzt werden).
    Um solche Attacken zu erkennen, aktiviere auch die Protokollierung von Anmeldefehlversuchen
    sowohl auf Windows-Ebene als auch für den SQL Server (unter Eigenschaften).

    Gruß Elmar

    Samstag, 16. Oktober 2010 22:03
    Beantworter
  • Hallo MCDPone,

    ich kann mir schon vorstellen, was Dich "bedrückt". Im Protokoll siehst Du wahrscheinlich tausende von Anmeldeversuchen mit dem Namen "root" oder "sa". Wenn Du dann die IP-Bereiche nachverfolgst, kommen die Einträge wohl aus Litauen / China / usw. Liege ich da richtig?

    Wie Elmar bereits ausgeführt hat, kann man das über die Passwort-Policy aushebeln; macht aber in dem Moment keinen Sinn mehr, wenn man mit dem Account des sa (wäre sinnfrei ist aber manchmal so!) auch tatsächlich arbeitet. Dann müßte nämlich der Account jedes Mal wieder aktiviert werden.

    Wenn Du Hackerangriffe vermeiden willst, mußt Du bereits an der Firewall entsprechende Regeln definieren (IP Masks).
    Eine andere - bevorzugte - Variante wäre der Zugriff über einen anderen Port als 1433 (das weiß nämlich jeder Hacker).

    Nimm' einen anderen Port auf der Firewall (z. B. 51433) und leite ihn intern auf 1433.
    Von aussen sperrst Du 1433 und schlagartig wird die Anzahl der fehlgeschlagenen Anmeldeversuche reduziert.

    HTH ;-)


    Uwe Ricken
    Microsoft Certified Database Administrator SQL Server 2005
    db Berater GmbH
    http://www-db-berater.de
    Dienstag, 19. Oktober 2010 14:47
  • Man kann den sa Account seit SQL Server 2005 auch umbenennen, das erhöht auch noch mal die Sicherheit: Renaming sa account in SQL Server 2005
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Dienstag, 19. Oktober 2010 14:55
  • Hallo Olaf,

    ja, das wäre sicherlich auch eine Option; schützt aber nicht vor den Versuchen, sich mit diesem Account anzumelden. Hier ist nur ein Blocking auf der Firewall selbst eine Hilfe... Habe ich leider selbst auch schon erfahren müssen ;-(

     


    Uwe Ricken
    Microsoft Certified Database Administrator SQL Server 2005
    db Berater GmbH
    http://www-db-berater.de
    Dienstag, 19. Oktober 2010 14:57
  • Hallo Uwe,

    es soll auch nicht eine/die Option sein, sondern nur eine zusätzliche zu allen anderen Maßnahmen.
    Der Account "sa" ist allgemein bekannt; benennt man ihn um, muss nicht nur das Passwort "erraten" werden, sondern zusätzlich auch noch der Account Namen; macht es doppelt so aufwendig.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Dienstag, 19. Oktober 2010 18:47
  • Wow kaum macht man mal 3 tage urlaub schon stapel sich die antworten - danke erst einmal hierfür

    was mir bei der einen sache noch nicht so ganz klar ist wie und wo kann ich den port umleiten

     

    ich hatte da selber noch eine idee weiss nur nicht ob sich diese in irgendeiner form umsetzen lässt - es müssen nur besteimmte kunden auf ihre datenbank zugreifen diese kunden haben alle ein dyndns konto - gibt es da nicht irgendwie die möglichkeit über die dyndns adresse - sprich dann der damit verbundenen aufgelösten ip nur diese durch zu lassen

     

    Donnerstag, 21. Oktober 2010 16:29
  • Den IP Port einer Instanz kannst Du im SQL Server Konfigurations-Manager unter den Protokollen => TCP/IP konfigurieren.

    In einem Logon-Trigger könntest Du bestimmte Prüfungen vornehmen und ggf. den Anmeldeversuch abbrechen. Nur ob Du an die IP Adresse kommen kannst, weiss ich nicht. In sys.sysprocesses steht im Feld net_address ein "eindeutige Bezeichner für die Netzwerkkarte auf der Arbeitsstation jedes einzelnen Benutzers"; nur ob das hilfreich ist?

    Aber vorsichtig mit Logon-Trigger: Wenn Du da einen (logischen) Fehler rein baust, kannst u.U. Du selbst Dich nicht mehr anmelden. Von daher vorher gut auf einer Test-Instanz testen und vorher die master DB bei runtergefahrenem Dienst kopieren; den ein Restore wäre schwierig, wenn man sich nicht anmelden kann.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Freitag, 22. Oktober 2010 06:05