Obracanie zakładek kluczy dla SQL Server w Linuxie
Dotyczy:programu SQL Server — Linux
W oparciu o najlepsze rozwiązania w zakresie zabezpieczeń organizacji może być wymagane regularne obracanie hasła dla konta usługi Windows Active Directory podanego jako network.privilegedadaccount
w mssql.conf
lub inne konto, które jest właścicielem głównych nazw usług (SPN) dla usługi SQL Server. Obsługiwana metoda zmiany hasła dla konta jest udokumentowana w tym artykule. Zmiana hasła jest obowiązuje bez konieczności ponownego uruchamiania usługi SQL Server w systemie Linux.
Narzędzie adutil służy do aktualizowania keytab. Polecenie adutil musi zostać uruchomione z komputera przyłączonego do domeny. Aby uzyskać więcej informacji na temat adutil i sposobu pobierania tego narzędzia, zobacz Wprowadzenie do adutil - narzędzia Active Directory .
Konieczne jest zaktualizowanie nowego hasła w keytabie z kolejnym numerem kvno, zanim zostanie ono zaktualizowane w usłudze Active Directory. Użycie następnego numeru kvno zapobiega konieczności ponownego uruchamiania usługi SQL Server po zmianie hasła. Jeśli najpierw zaktualizujesz hasło w systemie Active Directory, a następnie zmienisz plik keytab, musisz ponownie uruchomić usługę SQL Server, aby upewnić się, że uwierzytelnianie systemu Active Directory działa prawidłowo.
Scenariusz rotacji pliku keytab
Rozważmy przykład. Uwierzytelnianie usługi Active Directory jest już włączone dla programu SQL Server w systemie Linux. W pliku mssql.conf
ustawisz network.privilegedadaccount
na sqluser
. Konto sqluser@CONTOSO.COM
zostało już utworzone w usłudze Active Directory, a plik keytab również został utworzony w lokalizacji domyślnej /var/opt/mssql/secrets/mssql.keytab
. Teraz chcesz zmienić hasło dla sqluser@CONTOSO.COM
. Poniżej przedstawiono kroki, które należy wykonać:
Zainstaluj adutil na komputerze przyłączonym do domeny.
Uzyskaj lub odnów bilet TGT Kerberos przy użyciu polecenia
kinit
. Użyj konta uprzywilejowanego dla poleceniakinit
. Konto musi mieć uprawnienia do nawiązywania połączenia z domeną i powinno mieć możliwość tworzenia kont i nazw SPN w domenie. W tym przypadku używamy kontaprivilegeduser@CONTOSO.COM
, które ma uprawnienia do tworzenia kont i nazw SPN w naszej domenie o nazwieCONTOSO.COM
.kinit privilegeduser@CONTOSO.COM
Po uruchomieniu
kinit
w celu uzyskania/odnowienia biletu TGT, wykonaj zapytanie dotyczące bieżącego kvnonetwork.privilegedadaccount
. W tym przypadku jest tosqluser@CONTOSO.COM
.kvno sqluser@CONTOSO.COM
Możesz obrócić kartę kluczy przy użyciumssql-conf lub obrócić kartę kluczy ręcznie przy użyciu narzędzia adutil.
Obracanie pliku keytab za pomocą mssql-conf
Można zainstalować adutil i zintegrować go z mssql-conf, co oznacza, że można rotować keytab przy użyciu mssql-conf.
Zaloguj się jako użytkownik główny i przejdź do użytkownika
mssql
.su mssql
Uzyskaj lub odnów bilet przyznawania dostępu (TGT) protokołu Kerberos, używając polecenia
kinit
. Użyj konta uprzywilejowanego dla poleceniakinit
. Konto musi mieć uprawnienia do nawiązywania połączenia z domeną i powinno mieć możliwość tworzenia kont i nazw SPN w domenie. W tym przypadku używamy kontaprivilegeduser@CONTOSO.COM
, które ma uprawnienia do tworzenia kont i nazw SPN w naszej domenie o nazwieCONTOSO.COM
.kinit privilegeduser@CONTOSO.COM
Uruchom polecenie mssql-conf, podając keytab SQL Server i szczegóły
network.privilegedadaccount
. W tym przykładzieprivilegedadaccount
jestsqluser
../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'
Po wyświetleniu monitu o hasło wprowadź nowe hasło, którego chcesz użyć. Opcja
--use-next-kvno
przydziela bieżące kvno + 1.opcjonalne: możesz również użyć opcji
--kvno
z poleceniemmssql-conf setup-ad-keytab
, aby podać określony kvno. Najpierw upewnij się, że uzyskasz obecny kvno dla użytkownika, a następnie odpowiednio zaktualizujesz nowe kvno, które będzie obecnym kvno zwiększonym o 1.Klucze tab klucza można wyświetlić za pomocą polecenia :
klist -kte /var/opt/mssql/secrets/mssql.keytab
Zauważysz, że keytab został zaktualizowany o następne kvno zarówno dla wpisów użytkownika, jak i nazwy SPN.
Teraz możesz zmienić hasło użytkownika
sqluser
. Oto przykład.Ważny
Jeśli podczas tego kroku zostanie wyświetlony monit o ponowne uruchomienie programu SQL Server, możesz go zignorować. Pamiętaj również, aby zmienić hasło w usłudze Active Directory.
bash-4.4$ kinit privilegedaccount@CONTOSO.COM Password for privilegedaccount@CONTOSO.COM: bash-4.4$ ./mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno sqluser@contoso.com's password: Confirm sqluser@contoso.com's password: SQL Server needs to be restarted in order to adopt the new AD configuration. To restart, run `systemctl restart mssql-server.service`. bash-4.4$ klist -kte /var/opt/mssql/secrets/mssql.keytab Keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)
Ręczne obracanie tabu klucza za pomocą narzędzia adutil
Jeśli chcesz ręcznie zaktualizować kartę klucza przy użyciu narzędzia adutil, zapoznaj się z poniższymi krokami.
Aktualizowanie keytabu przy użyciu narzędzia adutil dodaje wpis do bieżącego keytabu. Jeśli na przykład numer kvno z poprzedniego polecenia to 2
, użyj numeru kvno 3
podczas aktualizowania keytab. Poniżej przedstawiono polecenia adutil, które należy uruchomić.
- Zmień numer portu (
-p
), nazwę hosta (-H
), ścieżkę do pliku keytab (-k
) i numer kvno, aby dostosować je do swojego środowiska.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H mssql.contoso.com --password '<newpassword>' -s MSSQLSvc --kvno 3
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<newpassword>' --kvno 3
-k:
to ścieżka do bieżącego keytabu używanego przez program SQL Server i ustawianego za pomocą opcji network.kerberoskeytabfile
w pliku mssql.conf
.
-H:
jest w pełni kwalifikowaną nazwą domeny hosta programu SQL Server.
-p:
to port skonfigurowany przez usługę SQL Server do nasłuchiwania w pierwszym poleceniu. W drugim poleceniu -p
reprezentuje network.privilegedadaccount
, dla którego chcesz zaktualizować hasło.
kvno:
wartość musi być równowarta bieżącej wartości kvno plus 1. Bieżąca wartość kvno jest uzyskiwana z kroku 3.
Po uruchomieniu powyższych poleceń należy podać wybrany typ szyfrowania dla wpisów na karcie kluczy. Upewnij się, że wybierasz odpowiedni dla swojego środowiska.
Sprawdź wpisy w pliku keytab
Po zaktualizowaniu keytabu powinny być teraz widoczne wpisy w keytabu dla kvno 3
(nowe), a także kvno 2
(stare) dla tego samego konta sqluser@CONTOSO.COM
i SPN. Możesz uruchomić następujące polecenie klist
, aby sprawdzić wpisy w keytab:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Zmienianie hasła konta w usłudze Active Directory
Ostatnim krokiem jest zaktualizowanie hasła network.privilegedadaccount
lub konta, które jest właścicielem nazw SPN programu SQL Server w usłudze Windows Active Directory. W poprzednim scenariuszu musimy zaktualizować hasło dla sqluser@CONTOSO.COM
w usłudze Active Directory. Zmień hasło na <newpassword>
podane w kroku 3 w poprzedniej sekcji. Uwierzytelnianie usługi Active Directory powinno nadal działać i bez konieczności ponownego uruchamiania usługi SQL Server.
Powiązana zawartość
- Samouczek: Konfiguracja uwierzytelniania Active Directory w SQL Server w systemie Linux przy użyciu narzędzia adutil
- samouczek : konfigurowanie uwierzytelniania usługi Active Directory za pomocą programu SQL Server w kontenerach systemu Linux
- Omówienie uwierzytelniania usługi Active Directory dla programu SQL Server w systemie Linux i kontenerach
- Rozwiązywanie problemów z uwierzytelnianiem usługi Active Directory dla programu SQL Server w systemie Linux i kontenerach