Fehler bei Anmeldung am SQL-Server (2022 Express unter Ubuntu 20.04 LTS) mit Windows-Authentifizierung
Hallo zusammen,
bei einigen Problemen in der Vergangenheit bin ich immer wieder über diese Website „gestolpert“ *zwinker* und habe hier schon öfter hilfreiche Lösungen gefunden. Da ich aktuell ein Problem habe, wo ich so gar nicht weiterkomme, dachte ich mir, ich melde mich hier mal an 😊
Dazu muss ich aber einmal kurz ausholen, aber ich versuche mich kurz zu fassen:
Das Netzwerk besteht derzeit aus 3 Servern (Cloud – Hetzner) + Clients
Server 1: Firewall: pfSense + Wireguard + pfBlocker
Server 2: DC: Ubuntu 22.04 LTS mit Samba 4
Server 3: Datenbank: Ubuntu 20.04 mit MS-SQL Express (Kein Docker sondern Direktinstallation)
Die Clients verbinden sich über Wireguard mit dem Netzwerk. Als DNS-Server ist selbstverständlich der DC eingerichtet. Alle Server (außer die pfSense) sowie die Clients sind Mitglieder im AD. Der DB-Server hat selbstverständlich ein MSA und kein „Standardkonto“.
Das DC funktioniert soweit, ich kann GPOs ausrollen, etc. Auf den DB-Server kann ich über das SSMS mit einem Account mit SQL-Server-Authentifizierung ebenfalls zugreifen. Ich konnte bereits auch Clients mit Windows-Authentifizierung anlegen.
Nun kommt aber das Problem: Diese können sich nicht mittels Windows-Authentifizierung anmelden. Ich habe mal die Logs rausgekramt:
023-06-20 17:49:10.98 Logon Error: 18452, Severity: 14, State: 1.
2023-06-20 17:49:10.98 Logon Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication. [CLIENT: 10.20.0.2]
2023-06-20 17:53:15.67 Logon Error: 17806, Severity: 20, State: 14.
2023-06-20 17:53:15.67 Logon SSPI handshake failed with error code 0x80090308, state 14 while establishing a connection with integrated security; the connection has been closed. Reason: AcceptSecurityContext failed. The operating system error code indicates the cause of failure. The token supplied to the function is invalid [CLIENT: 10.20.0.2]
Was mich hier wundert: Die IP-Adresse des „Clients“ in der Fehlermeldung, ist das LAN-Interface der Firewall.
Server-Netz: 10.20.0.0/24
Die Clients fangen ab 10.20.1.2 bzw. 10.20.2.2 an
Wie oben geschrieben Hetzner-Cloud (kein Layer 3 – alles Hostadressen – die .1 also immer das Gateway). Und der Host der Firewall ist ja nun nicht im AD – somit auch nicht das LAN-Interface. Kann das daran liegen?
Allerdings gebe ich ja nicht so schnell auf:
Der Datenbakserver hat ein keytab-file für den MSA, mit dem ich ein TGT bekomme. Ausprobiert über kinit -kt MSA-user@BEISPIEL.DE und dann klist
Weiterhin habe ich ausprobiert über die Konsole auf dem Datenbankserver mal sqlcmd auszuführen.
Dann erscheint folgende Fehlermeldung:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Cannot generate SSPI context.
Oder ist das Problem doch eher intern zu suchen? Hat hier jemand Ideen, wo ich suchen könnte bzw. was ich noch ausprobieren könnte?
Über Zuschriften, Ideen und Ratschläge würde ich mich riesig freuen.
VG
OfficeKrake
PS:
nslookup auf meine domain ausführe, kein Problem
In den Block-Logs der Firewall war zu den o.g. Themen auch nichts dazu und zum testen habe ich intern auch mal kurz etwas mehr geöffnet. Keine Veränderung
bei einigen Problemen in der Vergangenheit bin ich immer wieder über diese Website „gestolpert“ *zwinker* und habe hier schon öfter hilfreiche Lösungen gefunden. Da ich aktuell ein Problem habe, wo ich so gar nicht weiterkomme, dachte ich mir, ich melde mich hier mal an 😊
Dazu muss ich aber einmal kurz ausholen, aber ich versuche mich kurz zu fassen:
Das Netzwerk besteht derzeit aus 3 Servern (Cloud – Hetzner) + Clients
Server 1: Firewall: pfSense + Wireguard + pfBlocker
Server 2: DC: Ubuntu 22.04 LTS mit Samba 4
Server 3: Datenbank: Ubuntu 20.04 mit MS-SQL Express (Kein Docker sondern Direktinstallation)
Die Clients verbinden sich über Wireguard mit dem Netzwerk. Als DNS-Server ist selbstverständlich der DC eingerichtet. Alle Server (außer die pfSense) sowie die Clients sind Mitglieder im AD. Der DB-Server hat selbstverständlich ein MSA und kein „Standardkonto“.
Das DC funktioniert soweit, ich kann GPOs ausrollen, etc. Auf den DB-Server kann ich über das SSMS mit einem Account mit SQL-Server-Authentifizierung ebenfalls zugreifen. Ich konnte bereits auch Clients mit Windows-Authentifizierung anlegen.
Nun kommt aber das Problem: Diese können sich nicht mittels Windows-Authentifizierung anmelden. Ich habe mal die Logs rausgekramt:
023-06-20 17:49:10.98 Logon Error: 18452, Severity: 14, State: 1.
2023-06-20 17:49:10.98 Logon Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication. [CLIENT: 10.20.0.2]
2023-06-20 17:53:15.67 Logon Error: 17806, Severity: 20, State: 14.
2023-06-20 17:53:15.67 Logon SSPI handshake failed with error code 0x80090308, state 14 while establishing a connection with integrated security; the connection has been closed. Reason: AcceptSecurityContext failed. The operating system error code indicates the cause of failure. The token supplied to the function is invalid [CLIENT: 10.20.0.2]
Was mich hier wundert: Die IP-Adresse des „Clients“ in der Fehlermeldung, ist das LAN-Interface der Firewall.
Server-Netz: 10.20.0.0/24
Die Clients fangen ab 10.20.1.2 bzw. 10.20.2.2 an
Wie oben geschrieben Hetzner-Cloud (kein Layer 3 – alles Hostadressen – die .1 also immer das Gateway). Und der Host der Firewall ist ja nun nicht im AD – somit auch nicht das LAN-Interface. Kann das daran liegen?
Allerdings gebe ich ja nicht so schnell auf:
Der Datenbakserver hat ein keytab-file für den MSA, mit dem ich ein TGT bekomme. Ausprobiert über kinit -kt MSA-user@BEISPIEL.DE und dann klist
Weiterhin habe ich ausprobiert über die Konsole auf dem Datenbankserver mal sqlcmd auszuführen.
Dann erscheint folgende Fehlermeldung:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Cannot generate SSPI context.
Oder ist das Problem doch eher intern zu suchen? Hat hier jemand Ideen, wo ich suchen könnte bzw. was ich noch ausprobieren könnte?
Über Zuschriften, Ideen und Ratschläge würde ich mich riesig freuen.
VG
OfficeKrake
PS:
nslookup auf meine domain ausführe, kein Problem
In den Block-Logs der Firewall war zu den o.g. Themen auch nichts dazu und zum testen habe ich intern auch mal kurz etwas mehr geöffnet. Keine Veränderung
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7619852540
Url: https://administrator.de/forum/fehler-bei-anmeldung-am-sql-server-2022-express-unter-ubuntu-20-04-lts-mit-windows-authentifizierung-7619852540.html
Ausgedruckt am: 23.12.2024 um 04:12 Uhr
5 Kommentare
Neuester Kommentar
Moin.
Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen
Hier wird das ganze auch schön erklärt
https://arslan-bobir.medium.com/sql-server-troubleshooting-resolving-the ...
Zeppel
Was mich hier wundert: Die IP-Adresse des „Clients“ in der Fehlermeldung, ist das LAN-Interface der Firewall.
Server-Netz: 10.20.0.0/24
Die Clients fangen ab 10.20.1.2 bzw. 10.20.2.2 an
Du NATest wohl die Wireguard-Clients an der Firewall eingehend auf die FW IP anstatt zu routen, ist überflüssig, macht das ganze langsamer und die Firewall wird unnötig belastet ...Server-Netz: 10.20.0.0/24
Die Clients fangen ab 10.20.1.2 bzw. 10.20.2.2 an
qlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Hier kommt der entsprechende Hinweis was schief läuft. Du hast wohl vergessen den SPN für den SQL-Server im AD zu hinterlegen. SETSPN ist dein Freund. Kerberos mit FQDN aber ohne passend hinterlegten SPN führt genau zu dem Fehler.Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen
Hier wird das ganze auch schön erklärt
https://arslan-bobir.medium.com/sql-server-troubleshooting-resolving-the ...
Zeppel
Zitat von @7426148943:
Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen
qlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Hier kommt der entsprechende Hinweis was schief läuft. Du hast wohl vergessen den SPN für den SQL-Server im AD zu hinterlegen. SETSPN ist dein Freund. Kerberos mit FQDN aber ohne passend hinterlegten SPN führt genau zu dem Fehler.Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen
Du kannst den Befehl
setspn -L <SQL-Server-Name>
👍
Aber wie immer, der Teufel ist ein Eichhörnchen.
Das einem immer mal wieder in die Nüsse tritt ,