[Eisfair] PDC Und wo liegt das Problem? (was: samba 15.0.0 (4.17.9): Umstieg auf neue Mainline 4.17)
Thomas Bork
tom at eisfair.org
Mo Jul 17 20:36:11 CEST 2023
Am 17.07.2023 um 19:41 schrieb Marcus Röckrath:
> Das July-Win-Update ist die Ursache für die Inkompatibilität mit Samba.
Ja. Aber das ist nicht Windows anzulasten. Samba versucht, soweit wie
möglich, dem Verhalten von Windows zu entsprechen. Trotzdem (und wen
wundert's) hinkt es bei der Implementation von immer neuen Protokollen
und Änderungen im Verhalten Windows hinterher.
Hier handelt es sich um ein Problem, was von Seiten Microsofts nicht
dokumentiert war (Stichwort dochelp).
> Inwieweit die Änderung notwendig war, kann ich nicht beurteilen. Worin das
> Problem genau besteht, ist für mich auch wegen nicht ausreichender
> Sprachkenntnisse nicht wirklich exakt ersichtlich, was aber auch egal ist.
Die Änderung ist notwendig:
Samba hat bisher die Netlogon-Fähigkeit 2 nicht implementiert, mit dem
Ergebnis, dass alles ausser der Netlogon-Fähigkeit 1 nicht korrekt
geparst wurde:
> - if (r->in.query_level != 1) {
> - return NT_STATUS_NOT_SUPPORTED;
> - }
NT_STATUS_NOT_SUPPORTED wird nach Verarbeitung durch den RPC-Layer von
Samba zu einem DCERPC_FAULT_BAD_STUB_DATA. Das ist nach dem letztem
MS-Patchday aber die falsche Antwort.
Die richtige Antwort ist DCERPC_NCA_S_FAULT_INVALID_TAG, denn so verhält
sich auch ein ungepatchter MS-Server, weshalb sich gepatchte und
ungepatchte MS-Systeme weiterhin verstehen.
> + switch (r->in.query_level) {
> + case 1:
> + break;
> + case 2:
> + /*
> + * Until we know the details behind KB5028166
> + * just return DCERPC_NCA_S_FAULT_INVALID_TAG
> + * like an unpatched Windows Server.
> + */
> + FALL_THROUGH;
> + default:
> + /*
> + * There would not be a way to marshall the
> + * the response. Which would mean our final
> + * ndr_push would fail an we would return
> + * an RPC-level fault with DCERPC_FAULT_BAD_STUB_DATA.
> + *
> + * But it's important to match a Windows server
> + * especially before KB5028166, see also our bug #15418
> + * Otherwise Windows client would stop talking to us.
> + */
> + DCESRV_FAULT(DCERPC_NCA_S_FAULT_INVALID_TAG);
> + }
> +
@Markus:
Es sollte noch ein weiteres Problem in den Samba-Paketen existieren:
Im Falle von Samba als PDC oder Member, wird eine /etc/user.map
verwendet, in der Administrator als root gemappt wird. Neuere
Samba-Versionen setzen als Default einen Parameter
min domain uid = 1000
root hat die '0', wird also ignoriert und damit funktioniert das Mapping
nicht mehr. Damit im Falle Samba als PDC oder Member dieses Mapping
nicht ignoriert wird, ist
min domain uid = 0
zu setzen...
--
der tom
Mehr Informationen über die Mailingliste Eisfair