Megosztás:


Kulcsfülek elforgatása Linuxon futó SQL Serverhez

A következőkre vonatkozik:SQL Server Linux rendszeren

A szervezet biztonsági ajánlott eljárásai alapján előfordulhat, hogy rendszeresen el kell forgatnia a jelszót az network.privilegedadaccountmssql.conf megadott Windows Active Directory-fiókhoz, vagy bármely más fiókhoz, amely az SQL Server szolgáltatásnévneveit (SPN) birtokolja. A fiók jelszavának módosítására szolgáló támogatott módszert ebben a cikkben dokumentáljuk. A jelszómódosítás anélkül lép érvénybe, hogy újra kellene indítania az SQL Server szolgáltatást Linuxon.

A adutil eszközzel frissítheti a kulcstáblát. Az adutil parancsot tartományhoz csatlakoztatott gépről kell futtatni. Az adutil és az eszköz letöltéséről további információt az Bevezetés az adutil – Active Directory segédprogramcímű témakörben talál.

Az Active Directoryban való frissítés előtt fontos, hogy a keytab új jelszavát a következő kvno számmal frissítse. A következő kvno szám használata megakadályozza, hogy az SQL Server szolgáltatást újra kell indítani a jelszó módosítása után. Ha először az Active Directoryban frissíti a jelszót, majd módosítja a kulcstáblát, újra kell indítania az SQL Server szolgáltatást, hogy az Active Directory-hitelesítés megfelelően működjön.

Forgatókönyv a kulcstartó elforgatására

Vegyünk egy példát. Az Active Directory-hitelesítés már engedélyezve van a Linuxon futó SQL Serverhez. A mssql.conf fájlban a network.privilegedadaccountsqluserértékre állítja. A fiók sqluser@CONTOSO.COM már létrejön az Active Directoryban, és a keytab az alapértelmezett helyen is létrejön /var/opt/mssql/secrets/mssql.keytab. Most meg szeretné változtatni a sqluser@CONTOSO.COMjelszavát. Az alábbi lépéseket kell követnie:

  1. Telepítse az adutil a(z) tartományhoz csatlakoztatott gépre.

  2. Szerezze be vagy újítsa meg a Kerberos TGT-t (jegykiadó jegy) a kinit paranccsal. Használjon emelt szintű fiókot a kinit parancshoz. A fióknak engedéllyel kell rendelkeznie a tartományhoz való csatlakozásra, és képesnek kell lennie fiókokat és szolgáltatásneveket létrehozni a tartományban. Ebben az esetben a(z) privilegeduser@CONTOSO.COM fiókot használjuk, amely rendelkezik a CONTOSO.COMnevű tartományban fiókok és szolgáltatásfőneveket (SPN-eket) létrehozhat engedélyekkel.

    kinit privilegeduser@CONTOSO.COM
    
  3. Miután futtatja a kinit-t a TGT megszerzéséhez/megújításához, lekérdezze az aktuális kvno számot a network.privilegedadaccount-on. Ebben az esetben sqluser@CONTOSO.COM.

    kvno sqluser@CONTOSO.COM
    

Dönthet úgy is, hogy az mssql-confbillentyűabát elforgatja, vagy manuálisan forgassa el a kulcstartót az adutilhasználatával.

A kulcstartó elforgatása mssql-conf használatával

Telepítheti az adutil-t, és integrálhatja a mssql-conf-mal, ami azt jelenti, hogy a keytab-ot a mssql-confhasználatával elforgathatja.

  1. Jelentkezzen be gyökérfelhasználóként, és váltson a mssql felhasználóra.

    su mssql
    
  2. Szerezze be vagy újítsa meg a Kerberos TGT-t (jegykiadó jegy) a kinit paranccsal. Használjon emelt szintű fiókot a kinit parancshoz. A fióknak engedéllyel kell rendelkeznie a tartományhoz való csatlakozásra, és képesnek kell lennie fiókokat és szolgáltatásneveket létrehozni a tartományban. Ebben az esetben a(z) privilegeduser@CONTOSO.COM fiókot használjuk, amely rendelkezik a CONTOSO.COMnevű tartományban fiókok és szolgáltatásfőneveket (SPN-eket) létrehozhat engedélyekkel.

    kinit privilegeduser@CONTOSO.COM
    
  3. Futtassa az mssql-conf parancsot, és adja meg az SQL Server-kulcstartót és a network.privilegedadaccount részleteit. Ebben a példában a privilegedadaccountsqluser.

    ./mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'
    

    Amikor a rendszer kéri a jelszót, adjon meg egy új jelszót, amelyet használni szeretne. A --use-next-kvno opció lefoglalja az aktuális kvno értéket, + 1.

    Választható: Használhatja a --kvno parancs mssql-conf setup-ad-keytab lehetőségével is, hogy egy adott kvno-t adjon meg. Először meg kell győződnie arról, hogy megszerezte a felhasználó aktuális kvno értékét, majd frissítse az új kvno értékét, amely a jelenlegi kvno + 1 lesz.

  4. A keytab kulcsait a következő paranccsal listázhatja:

    klist -kte /var/opt/mssql/secrets/mssql.keytab
    

    Észreveheti, hogy a keytab frissül a következő kvno értékkel mind a felhasználói, mind az SPN bejegyzések esetében.

  5. Mostantól módosíthatja a sqluser felhasználó jelszavát. Íme egy példa.

    Fontos

    Ha a rendszer a lépés során az SQL Server újraindítását kéri, figyelmen kívül hagyhatja. Ne felejtse el módosítani a jelszót az Active Directory is.

    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)
    

A kulcstartó manuális elforgatása az adutil használatával

Ha manuálisan szeretné frissíteni a kulcstartót adutilhasználatával, tekintse meg az alábbi lépéseket.

A keytab frissítése az adutil használatával egy bejegyzést ad hozzá az aktuális keytabhoz. Ha például az előző parancs kvno száma 2, használja a kvno számot 3 a keytab frissítésekor. Az alábbi adutil parancsokat kell futtatnia.

  • Módosítsa a portszámot (-p), a gazdagépnevet (-H), a keytab (-k) elérési útját és a kvno számot a környezetnek megfelelően.
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
Paraméter Description
-k Az SQL Server által jelenleg használt keytab aktuális elérési útja, amely a network.kerberoskeytabfile fájlban található mssql.conf opció segítségével van beállítva.
-H Az SQL Server-gazdagép teljes tartományneve.
-p Az a port, amelyre az SQL Server szolgáltatást az első parancsban konfigurálják figyelésre. A második parancsban -p azt a network.privilegedadaccount jelöli, amelyhez frissíteni szeretné a jelszót.
kvno Az értéknek az aktuális kvno + 1 értéknek kell lennie. Az aktuális kvno érték a 3. lépésből származik.

A fenti parancsok futtatása után meg kell adnia a keytab-bejegyzések titkosítási típusának kiválasztását. Győződjön meg arról, hogy a környezetének megfelelőt választja.

A keytab bejegyzéseinek ellenőrzése

A keytab frissítése után most már látnia kell a kvno 3 (új) kulcstabában lévő bejegyzéseket, valamint kvno 2 (régi) egyazon fiók sqluser@CONTOSO.COM és SPN-jeihez. A következő klist parancs futtatásával ellenőrizheti a keytab bejegyzéseit:

klist -kte /var/opt/mssql/secrets/mssql.keytab

Fiókjelszó módosítása az Active Directoryban

Az utolsó lépés a network.privilegedadaccount vagy a Windows Active Directory SQL Server SPN-jeinek tulajdonosa fiók jelszavának frissítése. Az előző forgatókönyvben frissíteni kell a sqluser@CONTOSO.COM jelszavát az Active Directoryban. Változtassa meg a jelszót a <newpassword>-ra, amit az előző szakasz 3. lépésében adott meg. Az Active Directory-hitelesítésnek továbbra is működnie kell, és nem kell újraindítania az SQL Server szolgáltatást.