Mam problem i nie mogłem wymyślić, jak sobie z tym poradzić. Mam SQL Server na serwerze Windows 2008 R2. Ten SQL Server 2005 jest używany do otrzymywania subskrypcji DB z innego SQL Server zlokalizowanego gdzie indziej w Internecie. Mam port serwera SQL otwarty przez zaporę, jednak w zakresie podałem adres IP innego programu SQL Server. Czyniąc to, miałem nadzieję, że żądania połączenia przez ten port nie dotrą do SQL Servera, chyba że żądania pochodzą z innego serwera SQL Server (którego adres IP jest wymieniony w zakresie w regule zapory). Ale kiedy widzę dziennik, istnieją setki wpisów „logowanie użytkownika nie powiodło się” (i przychodzą one z każdą sekundą). Wygląda na to, że haker próbuje brutalnie odgadnąć hasło użytkownika. Ale pytanie brzmi: dlaczego system Windows pozwala tym żądaniom dotrzeć do programu SQL Server, mimo że nie pochodzą one z adresu IP wymienionego w zakresie zapory? Jaki jest właściwy sposób ochrony tego programu SQL Server. Żaden inny adres IP niż adres IP innego programu SQL Server nie musi łączyć się z tym serwerem SQL.
EDYCJA - dalsze informacje:
Uruchomiłem telnet na porcie serwera SQL z różnych komputerów. Telnet kończy się niepowodzeniem, z wyjątkiem sytuacji, gdy jest uruchamiany z komputera wymienionego w zakresie zapory. Wygląda więc na to, że zapora sieciowa dobrze blokuje port serwera SQL. Ale dlaczego widzę te nieudane żądania logowania do użytkownika „sa” z różnych adresów IP w dzienniku SQL Server? Czy to możliwe, że haker wchodzi do komputera przez port 80, a następnie próbuje w jakiś sposób połączyć się z serwerem SQL? Port 80 i 443 są otwarte dla wszystkich. Wszystkie pozostałe porty są zamknięte, z wyjątkiem portu serwera SQL (i który jest otwarty tylko dla jednego określonego adresu IP). Na serwerze 80 na porcie 80 nie działa nic, co mogłoby prowadzić użytkownika do serwera SQL. W rzeczywistości istnieje tylko jeden plik index.html (czysty HTML bez połączenia z SQL) na serwerze WWW. To tylko serwer testowy konfigurowany do przyszłego użytku. Testuj tylko dane w SQL Server.
EDYTOWAĆ:
Włączyłem śledzenie zapory ogniowej, aby uwzględnić zarówno połączenia upuszczania, jak i połączenia powodzenia. Teraz śledzi wszystko. Następnie przechodzę do dziennika programu SQL Server, gdzie widzę te nieudane próby logowania z różnych adresów IP w Chinach. Ale w dzienniku zapory nie ma wpisów dla tych adresów IP. Jak to jest możliwe? Czy mogą dostać się na serwer SQL całkowicie omijając zaporę? Jeśli przypuśćmy, że jakiś port zapory był otwarty, przez który mogliby wejść, dziennik zapory powinien pokazywać wpis dla tego adresu IP. Mam całkowitą stratę.
źródło
Odpowiedzi:
Wygląda na to, że zapora nie jest poprawnie skonfigurowana. To pierwszy krok.
Normalnie nie alfonsowałbym książki, którą napisałem, ale w tym przypadku zrobię wyjątek. Nazywa się Zabezpieczanie programu SQL Server i zapewni dobry początek.
źródło
Po prostu powiedziałem - nie. Nie używałbym firewall itp. - serwer SQL nie ma prawa być w Internecie. BARDZO BARDZO kilka wyjątków.
Do replikacji skonfiguruj prawidłową sieć VPN.
źródło
Oprócz prawidłowej konfiguracji zapory, oto kilka ogólnych zaleceń, aby zabezpieczyć SQL Server przed atakami siłowymi:
Wyłącz konto „sa”. Znajomość dokładnej nazwy użytkownika ułatwi ataki
Inną opcją jest zmiana nazwy konta „sa” na mniej oczywistą nazwę
Bardziej użyteczne rekomendacje tutaj: Zapobieganie brutalnej sile lub atakowi słownikowemu: Jak uchronić brutali przed łupem
źródło