Ich habe ein Problem und konnte nicht herausfinden, wie ich damit umgehen soll. Ich habe einen SQL Server auf einem Windows 2008 R2-Server. Dieser SQL Server 2005 wird verwendet, um DB-Abonnements von einem anderen SQL Server zu empfangen, der sich an einer anderen Stelle im Internet befindet. Ich habe den SQL Server-Port über die Firewall geöffnet, habe jedoch im Bereich die IP des anderen SQL Servers eingegeben. Dabei hoffte ich, dass Verbindungsanforderungen über diesen Port den SQL Server nur erreichen, wenn die Anforderungen vom anderen SQL Server stammen (dessen IP im Bereich der Firewall-Regel aufgeführt ist). Aber wenn ich das Protokoll sehe, gibt es Hunderte von Einträgen "Login fehlgeschlagener Benutzer sa" (und sie kommen jede Sekunde). Es scheint, dass ein Hacker Brute Force versucht, das Passwort eines Benutzers zu erraten. Aber die Frage ist: Warum lässt Windows diese Anforderung den SQL Server erreichen, obwohl sie nicht von der IP-Adresse stammen, die im Firewall-Bereich aufgeführt ist? Was ist der richtige Weg, um diesen SQL Server zu schützen? Keine andere IP als die IP des anderen SQL Servers muss eine Verbindung zu diesem SQL Server herstellen.
EDIT - Weitere Infos:
Ich habe Telnet auf dem SQL Server-Port von verschiedenen Computern aus ausgeführt. Telnet schlägt fehl, es sei denn, es wird von dem Computer ausgeführt, der im Firewall-Bereich ausdrücklich erwähnt wird. Es scheint also, dass die Firewall den SQL Server-Port blockiert. Aber warum werden dann diese fehlgeschlagenen Anmeldeanforderungen an den Benutzer "sa" von verschiedenen IP-Adressen im SQL Server-Protokoll angezeigt? Ist es möglich, dass der Hacker über Port 80 in den Computer eindringt und dann irgendwie versucht, eine Verbindung zum SQL Server herzustellen? Port 80 und 443 stehen allen offen. Alle anderen Ports mit Ausnahme des SQL Server-Ports sind geschlossen (und dieser ist nur für eine bestimmte IP geöffnet). Auf dem Webserver an Port 80 wird nichts ausgeführt, was einen Besucher zum SQL Server führen könnte. Tatsächlich gibt es auf dem Webserver nur eine index.html-Datei (reines HTML ohne Verbindung zu SQL). Dies ist nur ein Testserver, der für die zukünftige Verwendung eingerichtet wird. Testen Sie nur Daten in SQL Server.
BEARBEITEN:
Ich habe die Firewall-Ablaufverfolgung aktiviert, um sowohl Drop- als auch Erfolgsverbindungen einzuschließen. Es verfolgt jetzt alles. Dann gehe ich zum SQL Server-Protokoll, wo ich diese fehlgeschlagenen Anmeldeversuche von verschiedenen IP-Adressen in China sehe. Es gibt jedoch keine Einträge für diese IP-Adressen im Firewall-Protokoll. Wie ist das möglich? Können sie unter vollständiger Umgehung der Firewall zum SQL Server gelangen? Wenn angenommen wird, dass ein Firewall-Port geöffnet ist, über den sie eintreten können, sollte im Firewall-Protokoll ein Eintrag für diese IP-Adresse angezeigt werden. Ich bin völlig ratlos.
quelle
Antworten:
Klingt so, als ob Ihre Firewall nicht richtig konfiguriert ist. Dies ist der erste Schritt.
Normalerweise würde ich ein Buch, das ich geschrieben habe, nicht pimpen, aber in diesem Fall mache ich eine Ausnahme. Es heißt Securing SQL Server und bietet Ihnen einen guten Start.
quelle
Einfach gesagt - Sie nicht. Ich würde keine Afirewall usw. verwenden - ein SQL Server hat kein Recht, im Internet zu sein. Sehr sehr wenige Ausnahmen.
Richten Sie für die Replikation ein geeignetes VPN ein.
quelle
Neben der ordnungsgemäßen Konfiguration der Firewall finden Sie hier einige allgemeine Empfehlungen, um SQL Server vor Brute-Force-Angriffen zu schützen:
Deaktivieren Sie das 'sa'-Konto. Wenn Sie den genauen Anmeldenamen kennen, werden Angriffe einfacher
Eine andere Möglichkeit besteht darin, das 'sa'-Konto in einen weniger offensichtlichen Namen umzubenennen
Weitere nützliche Empfehlungen hier: Verhindern eines Brute Force- oder Wörterbuchangriffs: So halten Sie die Brutes von Ihrer Beute fern
quelle