Sleuteltabs roteren voor SQL Server op Linux
van toepassing op:SQL Server- - Linux
Op basis van de best practices voor beveiliging van uw organisatie moet u mogelijk het wachtwoord regelmatig roteren voor het Windows Active Directory-account dat is verstrekt als network.privilegedadaccount
in mssql.conf
, of een ander account dat eigenaar is van de spn (service-principal names) voor de SQL Server-service. De ondersteunde methode voor het wijzigen van het wachtwoord voor het account wordt beschreven in dit artikel. De wachtwoordwijziging wordt van kracht zonder dat de SQL Server-service op Linux opnieuw hoeft te worden opgestart.
Het hulpprogramma adutil wordt gebruikt om de keytab bij te werken. De opdracht adutil moet worden uitgevoerd vanaf een computer die lid is van een domein. Zie voor meer informatie over adutil en het downloaden van het hulpprogramma Inleiding tot adutil - Active Directory hulpprogramma.
Het is essentieel om het nieuwe wachtwoord in de keytab bij te werken met het volgende kvno- nummer voordat u het bijwerkt in Active Directory. Als u de volgende kvno nummer gebruikt, voorkomt u dat de SQL Server-service opnieuw moet worden opgestart nadat het wachtwoord is gewijzigd. Als u eerst het wachtwoord in Active Directory bijwerkt en vervolgens de keytab wijzigt, moet u de SQL Server-service opnieuw starten om ervoor te zorgen dat Active Directory-verificatie goed werkt.
Scenario voor het roteren van de keytab
Laten we eens kijken naar een voorbeeld. Active Directory-verificatie is al ingeschakeld voor SQL Server in Linux. In het bestand mssql.conf
stelt u de network.privilegedadaccount
in op sqluser
. Het account sqluser@CONTOSO.COM
is al gemaakt in Active Directory en de keytab wordt ook gemaakt op de standaardlocatie /var/opt/mssql/secrets/mssql.keytab
. Nu wilt u het wachtwoord voor de sqluser@CONTOSO.COM
wijzigen. Dit zijn de stappen die u moet volgen:
Installeer adutil op de computer die lid is van het domein.
Verkrijg of vernieuw de Kerberos TGT (ticket-granting ticket) door de opdracht
kinit
te gebruiken. Gebruik een bevoegd account voor de opdrachtkinit
. Het account moet gemachtigd zijn om verbinding te maken met het domein en moet accounts en SPN's in het domein kunnen maken. In dit geval gebruiken we het accountprivilegeduser@CONTOSO.COM
met machtigingen voor het maken van accounts en SPN's in ons domein met de naamCONTOSO.COM
.kinit privilegeduser@CONTOSO.COM
Nadat u
kinit
hebt uitgevoerd om de TGT te verkrijgen/vernieuwen, vraagt u het huidige kvno van denetwork.privilegedadaccount
op. In dit geval is hetsqluser@CONTOSO.COM
.kvno sqluser@CONTOSO.COM
U kunt ervoor kiezen om de keytab te draaien met mssql-confof de keytab handmatig te draaien met behulp van adutil.
Werk de keytab bij met mssql-conf
U kunt adutil installeren en integreren met mssql-conf, wat betekent dat u de keytab kunt draaien met mssql-conf.
Meld u aan als hoofdgebruiker en schakel over naar de
mssql
gebruiker.su mssql
Verkrijg of vernieuw de Kerberos TGT (ticket-granting ticket) met behulp van de opdracht
kinit
. Gebruik een bevoegd account voor de opdrachtkinit
. Het account moet gemachtigd zijn om verbinding te maken met het domein en moet accounts en SPN's in het domein kunnen maken. In dit geval gebruiken we het accountprivilegeduser@CONTOSO.COM
met machtigingen voor het maken van accounts en SPN's in ons domein met de naamCONTOSO.COM
.kinit privilegeduser@CONTOSO.COM
Voer de opdracht mssql-conf uit, waarbij u de SQL Server-keytab en de
network.privilegedadaccount
details oplevert. In dit voorbeeld is deprivilegedadaccount
sqluser
../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'
Wanneer u wordt gevraagd om een wachtwoord, voert u een nieuw wachtwoord in dat u wilt gebruiken. Met de optie
--use-next-kvno
wordt de huidige kvno- + 1 toegewezen.Optioneel: U kunt ook
--kvno
gebruiken met de opdrachtmssql-conf setup-ad-keytab
om een specifieke kvnoop te geven. U moet ervoor zorgen dat u eerst de huidige kvno- voor de gebruiker krijgt en vervolgens de nieuwe kvno dienovereenkomstig bijwerkt, wat de huidige kvno + 1 zou zijn.U kunt de sleutels van de keytab weergeven met behulp van de opdracht:
klist -kte /var/opt/mssql/secrets/mssql.keytab
U ziet dat de keytab wordt bijgewerkt met de volgende kvno voor zowel de gebruiker als de SPN-vermeldingen.
U kunt nu het wachtwoord voor de
sqluser
gebruiker wijzigen. Hier volgt een voorbeeld.Belangrijk
Als u tijdens deze stap wordt gevraagd SQL Server opnieuw op te starten, kunt u deze negeren. Vergeet niet om ook het wachtwoord in Active Directory te wijzigen.
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)
De keytab handmatig draaien met adutil
Als u de keytab handmatig wilt bijwerken met adutil, raadpleegt u de volgende stappen.
Het bijwerken van de keytab met behulp van adutil voegt een vermelding toe aan de huidige keytab. Als de kvno- nummer uit de vorige opdracht bijvoorbeeld is 2
, gebruikt u de kvno- nummer 3
bij het bijwerken van de keytab. Hieronder vindt u de adutil opdrachten die u moet uitvoeren.
- Wijzig het poortnummer (
-p
), hostnaam (-H
), het pad naar keytab (-k
) en kvno-nummer, zodat deze overeenkomt met uw omgeving.
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:
is het pad naar de huidige keytab die wordt gebruikt door SQL Server en ingesteld met behulp van de optie network.kerberoskeytabfile
in het mssql.conf
bestand.
-H:
is de volledig gekwalificeerde domeinnaam van de SQL Server-host.
-p:
is de poort waarop de SQL Server-service is geconfigureerd om in de eerste opdracht te luisteren. In de tweede opdracht vertegenwoordigt -p
de network.privilegedadaccount
waarvoor u het wachtwoord gaat bijwerken.
kvno:
waarde moet de huidige waarde van kvno plus 1 zijn. De huidige kvno waarde wordt verkregen uit stap 3.
Nadat u de bovenstaande opdrachten hebt uitgevoerd, moet u uw keuze voor het versleutelingstype opgeven voor de keytab-vermeldingen. Zorg ervoor dat u de juiste kiest voor uw omgeving.
De keytab-vermeldingen controleren
Nadat u de keytab hebt bijgewerkt, ziet u nu de vermeldingen in de keytab voor kvno 3
(nieuw) en ook voor kvno 2
(oud) voor hetzelfde account sqluser@CONTOSO.COM
en SPN's. U kunt de volgende klist
opdracht uitvoeren om de vermeldingen in de keytab te controleren:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Het accountwachtwoord wijzigen in Active Directory
De laatste stap is het bijwerken van het wachtwoord van de network.privilegedadaccount
of het account dat eigenaar is van de SQL Server SPN's in Windows Active Directory. In het vorige scenario moeten we het wachtwoord voor sqluser@CONTOSO.COM
in Active Directory bijwerken. Wijzig het wachtwoord naar de <newpassword>
die u in stap 3 van de sectie ervoor hebt opgegeven. Active Directory-verificatie moet blijven werken en zonder dat de SQL Server-service opnieuw moet worden opgestart.
Verwante inhoud
- Zelfstudie: Adutil gebruiken om Active Directory-verificatie te configureren met SQL Server op Linux
- Zelfstudie: Active Directory-verificatie configureren met SQL Server op Linux-containers
- Inzicht in Active Directory-verificatie voor SQL Server in Linux en containers
- Problemen met Active Directory-verificatie oplossen voor SQL Server in Linux en containers