Как защитить SQL Server от хакеров


9

У меня возникла проблема, и я не мог понять, как ее решить. У меня есть SQL Server на сервере Windows 2008 R2. Этот SQL Server 2005 используется для получения подписок БД от другого SQL Server, расположенного в другом месте в Интернете. Я имею порт сервера sql открытый через брандмауэр, однако в области я ввел IP другого сервера SQL. При этом я надеялся, что запросы на подключение через этот порт не достигнут SQL Server, если запросы не поступают от другого SQL Server (чей IP-адрес указан в области действия в правиле брандмауэра). Но, когда я вижу журнал, появляются сотни записей «сбой входа пользователя sa» (и они приходят каждую секунду). Похоже, какой-то хакер пытается грубой силой угадать пароль пользователя. Но вопрос в том, почему Windows позволяет этим запросам достигать SQL Server, даже если они не поступают с IP-адреса, указанного в области брандмауэра? Какой правильный способ защитить этот SQL Server. Никакой другой IP-адрес, кроме IP-адреса другого сервера SQL, не требуется для подключения к этому серверу SQL.

РЕДАКТИРОВАТЬ - Дополнительная информация:

Я запускал telnet на порт сервера sql с разных машин. Сбой Telnet, за исключением случаев, когда он запускается с компьютера, который специально указан в области межсетевого экрана. Таким образом, похоже, что брандмауэр нормально блокирует порт сервера SQL. Но тогда почему я вижу эти неудачные запросы входа в систему для пользователя «sa» с разных IP-адресов в журнале SQL Server? Возможно ли, что хакер входит в компьютер через порт 80, а затем пытается подключиться к серверу sql? Порты 80 и 443 открыты для всех. Все остальные порты закрыты, за исключением порта сервера sql (и он открыт только для одного определенного IP). На веб-сервере с портом 80 ничего не работает, что может привести посетителя к серверу SQL. Фактически на веб-сервере есть только один файл index.html (чистый HTML без подключения к SQL). Это просто тестовый сервер, который настраивается для будущего использования. Только тестовые данные в SQL Server.

РЕДАКТИРОВАТЬ:

Я включил трассировку брандмауэра, чтобы включить как сбрасываемые, так и успешные соединения. Сейчас отслеживает все. Затем я захожу в журнал SQL Server, где вижу неудачные попытки входа с разных IP-адресов в Китае. Но в журнале брандмауэра нет записей для этих IP-адресов. Как это возможно? Могут ли они добраться до сервера SQL в обход брандмауэра полностью? Если предположить, что какой-либо порт брандмауэра был открыт для входа, в журнале брандмауэра должна быть запись для этого IP-адреса. Я в полной растерянности.


Как насчет использования Logon Trigger ? Кроме того, SQL Server не должен быть подключен к Интернету (общедоступный). Кроме того, вы можете использовать правила программы в брандмауэре Windows для ограничения диапазона IP-адресов.
Кин Шах

Да, я мог бы, но в глубине души это не совсем касается SQL Server. Я пытаюсь выяснить, почему брандмауэр Windows не выполняет то, что он должен делать, то есть не пропускает эти запросы, потому что они не приходят с единственного разрешенного IP-адреса.

1
Да, похоже, ваш брандмауэр Windows настроен неправильно. Возможно, у вас есть другое, более общее правило, разрешающее порт 1433 (или разрешающее все), или, возможно, брандмауэр Windows отключен на сетевом сетевом адаптере. Трудно сказать, не видя конфигурации. Но это действительно больше вопрос для ServerFault, как говорит Макс. Кстати, вы имели в виду Windows 2008 R2? «RC» - Release Candidate, предварительная версия программного обеспечения для тестирования.
Джеймс Л


1
Вы действительно используете старую версию кандидата на выпуск операционной системы ?! Исправьте это сначала.
Майкл Хэмптон

Ответы:


12

Похоже, ваш брандмауэр не настроен правильно. Это первый шаг.

Обычно я бы не стал сводить книгу, которую написал, но в этом случае я сделаю исключение. Он называется « Защита SQL Server», и он даст вам хорошее начало.


Что ж, ваша книга точно подходит для этого вопроса :-)
mfinni

Круто! Имеется ли в нем предписывающее руководство по использованию сертификатов вместо локальной аутентификации / аутентификации Windows для интернет-серверов? ;-)
Грег Аскью

Смотрите мои правки. Брандмауэр, кажется, работает нормально. Это еще одна хитрость, которую играют китайские хакеры, чтобы добраться до SQL Server.
Аллен Кинг

1
Если кто-то подключается к порту SQL с публичного IP-адреса, брандмауэр настроен неправильно. Если они приходят с внутреннего IP-адреса, у вас есть другие проблемы. Сам по себе SQL не поддерживает сертификаты. Вы должны сделать это через AD и сопоставления сертификатов.
Мрденный

Вернемся к чертежу действительно для брандмауэра. Я бы отключил SQL-сервер от Интернета, пока вы не разрешите ситуацию с брандмауэром Таким образом, вы сможете относительно легко запретить IP-адреса на всех диапазонах IP-адресов.
Технарь Джо

4

Проще говоря - нет. Я бы не использовал afirewall и т. Д. - SQL-сервер не имеет права быть в интернете. ОЧЕНЬ ОЧЕНЬ мало исключений.

Для репликации настройте подходящий VPN.


я немного смущен. Если сервер БД не подключен к Интернету, как внутренний сервер веб-приложений достигнет сервера БД?
Аллен Кинг,

Через внутреннюю сеть. Базовая настройка. Веб-приложение находится в обеих сетях.
TomTom

3

Помимо правильной настройки брандмауэра, вот несколько общих рекомендаций по защите SQL Server от атак методом перебора:

  • Отключить учетную запись 'sa'. Знание точного имени входа облегчит атаки

    ALTER LOGIN sa DISABLE
    

Другой вариант - переименовать учетную запись 'sa' в менее очевидное имя.

ALTER LOGIN sa WITH NAME = SimonXZY
  • Используйте аутентификацию Windows вместо аутентификации в смешанном режиме. Аутентификация Windows применяет политику паролей Windows и блокирует вход в систему в случае последовательных неудачных попыток входа
  • Аудит неудачных входов. Самый простой способ сделать это - установить параметр Аудит входа в систему в свойствах Сервера, на вкладке «Безопасность» выбрать «Только неудачные входы» или «Оба неудачных и успешных входа». Это не поможет вам защитить от атак грубой силы, но поможет вам быть в курсе атак

Более полезные рекомендации здесь: Предотвращение грубой силы или атаки по словарю: как уберечься от своей добычи

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.