Wprowadzenie
W zeszłym roku otrzymaliśmy wymóg zapewnienia szyfrowanych połączeń z naszymi instancjami SQL Server. Wcześniej nie sądziliśmy, że jest to konieczne – wszystkie nasze instancje były dostępne wewnętrznie przez usługi aplikacji. Mimo to bezpieczne połączenia chronią instancję i klientów przed atakami typu man-in-the middle, więc zrobiliśmy to.
Szyfrowanie połączenia różni się od przezroczystego szyfrowania danych, ale w obu przypadkach potrzebny jest certyfikat. W tym artykule opisujemy procedurę konfigurowania szyfrowanego połączenia dla instancji SQL Server.
Konfigurowanie przystawki certyfikatu w programie MMC
Certyfikat to podpisany cyfrowo dokument zawierający klucze publiczne i prywatne służące do szyfrowania połączeń. Klucze publiczny i prywatny są „parą kluczy” – klucz publiczny szyfruje dane i tylko klucz prywatny może je odszyfrować.
Certyfikaty są wydawane przez urząd certyfikacji, podmiot, któremu ufają zarówno serwer, jak i klient. W naszym przypadku certyfikat wygenerowaliśmy z serwera hostującego SQL Server.
Proces ten rozpoczynamy od uruchomienia konsoli Microsoft Management Console (mmc.exe) .
Po uruchomieniu programu MMC przechodzimy do Plik> Dodaj i usuń przystawki… (Rysunek 1). Tutaj dodajemy przystawkę Menedżera certyfikatów do naszej konsoli, aby zarządzać certyfikatami na serwerze. Zwróć uwagę, że są inne sposoby dotarcia do tego punktu.
Chcemy zarządzać certyfikatami z naszego konta komputera w taki sposób, aby inni administratorzy nie mieli żadnych problemów z uprawnieniami, gdy muszą również zarządzać certyfikatami (Rysunek 2).
W tym artykule zajmujemy się zarządzaniem certyfikatami na lokalnym komputerze, na którym zainstalowana jest nasza instancja SQL Server (Rysunek 3).
Po zakończeniu procesu tworzenia przystawki Certyfikatu możemy go użyć.
Zacznij od wybrania Wszystkie zadania> Poproś o nowy certyfikat :
Rejestracja certyfikatu MMC
Akcja z rysunku 5 uruchamia kreatora – szybko go uruchomimy. Szczegóły są bardziej istotne dla administratora Windows, ale najważniejszą rzeczą jest uzyskanie ważnego certyfikatu, z którego może korzystać SQL Server.
Sprawdź niezbędne warunki:
Wybierz zasady rejestracji i typ certyfikatu, który chcesz. W naszym przypadku wybraliśmy politykę skonfigurowaną przez naszego administratora domeny do celów takich jak ten. Możesz porozmawiać z administratorem domeny, aby określić najlepszą opcję w swoim środowisku.
Rejestracja certyfikatu to proces żądania certyfikatu cyfrowego od urzędu certyfikacji. W niektórych środowiskach urząd certyfikacji jest częścią infrastruktury klucza publicznego.
Konfigurowanie serwera SQL
Teraz, gdy mamy certyfikat, przechodzimy do SQL Server i konfigurujemy go tak, aby używał tego certyfikatu.
- Otwórz Menedżera konfiguracji SQL Server i przejdź do Konfiguracja sieci SQL Server> Protokoły dla MS SQL Server .
- Kliknij prawym przyciskiem myszy ten element i wybierz Właściwości z menu rozwijanego (Rysunek 11):
- W Właściwościach wybierz Certyfikat patka. Jeśli prawidłowo dokonałeś rejestracji certyfikatu, powinieneś zobaczyć go w menu rozwijanym oznaczonym Certyfikat (Rysunek 12). W ten sposób kojarzymy ten certyfikat z instancją SQL Server. Zauważ, że możemy również zobaczyć szczegóły certyfikatu w SQL Server Configuration Manager.
- Po zakończeniu stosowania ważnego certyfikatu przeglądamy Flagi i ustaw Wymuś szyfrowanie zaznacz TAK . Zapewnia, że wszystkie połączenia z SQL Server są szyfrowane.
Protokół kryptograficzny używany przez SQL Server do szyfrowania połączeń będzie zależał od konfiguracji systemu operacyjnego. Następnie należy ponownie uruchomić instancję SQL Server. Ładuje ten nowy certyfikat po nim.
Możemy zobaczyć dane w Podglądzie zdarzeń systemu Windows – dziennik błędów SQL Server. Możemy również zweryfikować szyfrowanie połączeń za pomocą takich narzędzi, jak Monitor sieci firmy Sys Internals (Rysunek 14).
Wniosek
Szyfrowane połączenie jest zwykle wymagane w organizacjach zainteresowanych bezpieczeństwem. W tym artykule podzieliliśmy się naszym doświadczeniem na temat konfigurowania zaszyfrowanych połączeń na serwerze SQL.
Nasze podejście polegało na zarejestrowaniu certyfikatu, zastosowaniu go do instancji SQL Server i włączeniu wymuszonego szyfrowania. Należy zauważyć, że po ustawieniu Wymuś szyfrowanie na TAK w SQL Server, wszyscy klienci łączący się z instancją muszą używać tego samego protokołu kryptograficznego.
Referencje
- Włącz szyfrowane połączenia
- Certyfikaty SQL Server i klucze asymetryczne