Уже конец дня, и я только что получил самое интересное задание. Мой клиент хочет подключиться к своему Microsoft SQL Server через общедоступную сеть без VPN, и он спрашивает меня, как мы можем лучше защитить это соединение. Первое, что всплыло у меня в голове, — это шифрование!
Поэтому я сказал ему, что давайте принудительно используем шифрование для трафика, проходящего через порт 1433, поэтому мы можем максимально уменьшить эту гигантскую лазейку, которая напрямую обращается к Microsoft SQL Server через общедоступную сеть.
Теперь, чтобы иметь возможность даже начать процесс настройки шифрования, нам сначала нужны самые важные вещи из всех остальных: сертификат, имеющий следующее свойство расширенного использования ключа: Аутентификация сервера 1.3.6.1.5.5.7.3.1.
Поэтому при развертывании самозаверяющего сертификата или покупке легитимного сертификата нам необходимо убедиться, что строка «Использование ключа» в точности соответствует указанной выше. Теперь 99% времени достаточно для самозаверяющего сертификата для шифрования, но вы можете получить действительный сертификат у одного из доверенных поставщиков.
Хорошо, теперь, когда я убедился, что у меня есть правильный сертификат, давайте пойдем и скажем SQL, какой сертификат использовать. Для этого нам нужно скопировать отпечаток сертификата и вставить следующий раздел реестра:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLSERVER\SuperSocketNetLib
В этом конкретном ключе есть значение, называемое Сертификат. Нам нужно скопировать и вставить отпечаток сертификата в это значение.
В моем случае это будет выглядеть примерно так:
Теперь перейдем в Диспетчер конфигурации SQL Server, затем перейдите в раздел «Настройка сети SQL Server», в разделе «Протоколы для MSSQLSERVER» перейдите в «Свойства» и перейдите на вкладку «Сертификат». Вот где мы увидим сертификат, который мы только что развернули в реестре. Осталось только выбрать сертификат и перезапустить службу SQL Server.
Далее мы перейдем к принудительному шифрованию протокола, щелкнув правой кнопкой мыши на собственной конфигурации клиента SQL и убедившись, что для параметра «Принудительное шифрование» установлено значение «Да».
Теперь, когда мы настроили сертификат, давайте вернемся к службам SQL Server и перезапустим службу, щелкнув правой кнопкой мыши службу SQL Server (MSSQLSERVER) и выбрав Перезапустить.
Вуаля, теперь мы настроили порт 1433 для шифрования связи!
Следующим шагом является настройка зашифрованных соединений в нашем приложении или при подключении из SQL Server Management Studio.
Чтобы сделать это в SSMS, нам нужно выполнить следующие шаги:
- Нажмите на Подключиться к базе данных Engine
- В диалоговом окне «Подключение к серверу» выберите «Параметры».
- На вкладке Свойства соединения нажмите Зашифровать соединение.
Вот и все, довольно просто и понятно. Я надеюсь, вам понравилась эта статья, и надеюсь, что вы вернетесь к более классным статьям.