[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