У меня проблема, и я не могу понять, как с ней справиться. У меня есть SQL Server на сервере Windows 2008 R2. Этот SQL Server 2005 используется для получения подписок на БД от другого SQL Server, расположенного в другом месте в Интернете. У меня есть порт сервера sql, открытый через брандмауэр, однако в области действия я ввел IP-адрес другого сервера SQL. При этом я надеялся, что запросы на соединение через этот порт не дойдут до SQL Server, если только запросы не поступают от другого SQL Server (чей IP указан в области действия правила брандмауэра). Но когда я вижу журнал, там есть сотни записей «пользователь не прошел вход в систему sa» (и они появляются каждую секунду). Похоже, какой-то хакер пытается подобрать пароль пользователя грубой силой. Но возникает вопрос, почему Windows позволяет этим запросам достигать SQL Server, даже если они исходят не с IP-адреса, указанного в области действия брандмауэра? Как правильно защитить этот SQL-сервер. Никакой другой IP-адрес, кроме IP-адреса другого SQL Server, не должен подключаться к этому серверу sql.
РЕДАКТИРОВАТЬ - Дополнительная информация:
Я запускал telnet на порту сервера sql с разных машин. Telnet не работает, за исключением случаев, когда он запускается с компьютера, который специально указан в области действия брандмауэра. Таким образом, похоже, что брандмауэр отлично блокирует порт сервера sql. Но тогда почему я вижу в журнале SQL Server те неудавшиеся запросы входа в систему к пользователю sa с разных IP-адресов? Возможно ли, что хакер входит в машину через порт 80, а затем каким-то образом пытается подключиться к серверу sql? Порт 80 и 443 открыты для всех. Все остальные порты закрыты, за исключением порта сервера sql (и он открыт только для одного определенного IP-адреса). На веб-сервере на 80-м порту нет ничего, что могло бы привести посетителя на SQL-сервер. Фактически, на веб-сервере есть только один файл index.html (чистый HTML без связи с SQL). Это просто тестовый сервер, который настраивается для использования в будущем. Только тестовые данные в SQL Server.
РЕДАКТИРОВАТЬ:
Я включил трассировку брандмауэра, чтобы включить как прерывание, так и успешное соединение. Сейчас отслеживает все. Затем я захожу в журнал SQL Server, где вижу эти неудачные попытки входа в систему с разных IP-адресов в Китае. Но в журнале брандмауэра нет записей для этих IP-адресов. Как это возможно? Могут ли они добраться до SQL-сервера, полностью минуя брандмауэр? Если предположить, что какой-то порт межсетевого экрана был открыт, через который они могли войти, в журнале межсетевого экрана должна быть указана запись для этого IP-адреса. Я в полной растерянности.
Похоже, ваш брандмауэр настроен неправильно. Это первый шаг.
Обычно я бы не стал сутенером написанную мной книгу, но в этом случае сделаю исключение. Это называется Обеспечение безопасности SQL Server и это даст вам хорошее начало.
Прямо сказано - нет. Я бы не стал использовать межсетевой экран и т. Д. - SQL-сервер не имеет права находиться в Интернете. ОЧЕНЬ ОЧЕНЬ немного исключений.
Для репликации настройте подходящую VPN.
Помимо правильной настройки брандмауэра, вот несколько общих рекомендаций по защите SQL Server от атак методом грубой силы:
Отключите учетную запись «sa». Знание точного имени пользователя упростит атаки
ALTER LOGIN sa DISABLE
Другой вариант - переименовать учетную запись sa на менее очевидное имя.
ALTER LOGIN sa WITH NAME = SimonXZY
Больше полезных рекомендаций здесь: Предотвращение грубой силы или атаки по словарю: как удержать грубых людей подальше от вашей добычи