Hvordan konfigurere bruk av Kerberos mot SQL

Under gis en rask innføring i hvordan du setter opp SQL slik at Kerberos autentisering foretas. Fordelen med dette er å redusere antall kall mot domenekontrollere, noe man typisk får ved bruk av NTLM.

Innføring i hvordan “Service Principal Name” konfigureres for bruk mot SQL:

Det første du gjør er å finne hvilken servicebruker SQL-tjenesten går under. Denne burde for en del sikkerhetsmessige grunner være en vanlig domenebruker uten altfor mange rettigheter. Gå til “SQL Server” instansen og sjekk hvilken bruker den går under. Merk at dette må gjøres for hver instans av SQL som går på serveren.

ServiceView
Åpne så et kommandovindu. Hvis du bruker Windows Server 2008 (som i dette eksempelet), må du kjøre vinduet i administratorkontekst.

StartMeny
Når kommandovinduet dukker opp, ønsker du først å sjekke at det ikke eksisterer duplikate SPN i AD. Dette gjøres ved kommandoen “SETSPN -X”. Det er vikitg at du rydder i disse hvis søket finner treff før man registrerer nye.
KommandoV1Videre sjekker du om det er registrert SPN for nodene i SQL-klyngen fra før.
KommandoV2Kommandoen over utføres for begge nodene i SQL-klyngen.

Så lenge ingen av søkene kommer tilbake positivt kan du fortsette til neste steg. Hvis noe dukker opp, må du vurdere om de kan slettes. Dette foretas ved å bruke SetSPN-kommandoen.

Når du har kontroll over at ingen duplikate SPN eksisterer, kan man registrere sine for SQL klyngen på tjeneste kontoen.
KommandoV3NB: Port som vist over finner du ved å gå inn i “SQL Server Configuration Manager”, standard port er som regel 1433.
SQLAdmVelg “Properties” på TCP/IP innslaget.
SQLAdmMenyFra vinduet over kan man bekrefte at denne instansen bruker 1433 som port.

Kommandoer:
setspn -A MSSqlSvc/T-114-230-001:1433 mistraltest\SQLServicesTS001
setspn -A MSSqlSvc/T-114-230-002:1433 mistraltest\SQLServicesTS001
setspn -A MSSqlSvc/T-114-230-001.mistraltest.mistralnett.test:1433  mistraltest\SQLServicesTS001
setspn -A MSSqlSvc/T-114-230-002.mistraltest.mistralnett.test:1433  mistraltest\SQLServicesTS001

For SQL-instansen må du registrere en SPN pr instans som går på serveren:

setspn -A MSSqlSvc/TS-114-230-001 mistraltest\SQLServicesTS001
setspn -A MSSqlSvc/TS-114-230-001.mistraltest.mistralnett.test  mistraltest\SQLServicesTS001

http://msdn.microsoft.com/en-us/library/ms189585(SQL.90).aspx
http://poseidom.wordpress.com/2007/12/16/set-spn-for-sql-2005-sccm-remote-sql-fix/

Om Morten Lerudjordet

Tidligere medarbeider i ErgoGroup med bred erfaring som infrastruktur arkitekt og med kompetanse på enterprise løsninger, sikkerhet og Microsoft infrastruktur komponenter.