Depotmounting-Fehler mit webdav

Antworten
volfo
Beiträge: 24
Registriert: 26 Mär 2021, 09:35

Depotmounting-Fehler mit webdav

Beitrag von volfo »

Hallo zusammen,

wir haben bei uns den aktuellen opsi-client-agent (4.1.1.41-1) installiert,
seitdem habe ich das Problem, dass unsere Depots nur noch mit CIFS mountbar sind.

Unter WEBDAV erhalten wir folgenden Fehler:

Code: Alles auswählen

(25656)   [5] [2021-07-30 09:45:14.663] [event processing on_demand{user_logged_in}] MasterOnly --> 'False'   (Config.py:605)
(25667)   [5] [2021-07-30 09:45:14.766] [event processing on_demand{user_logged_in}] Selected depot for mode 'mount' is '<OpsiDepotserver(id='opsi-experimental.***domain***', isMasterDepot=True)>', protocol 'webdav'   (Config.py:750)
(25673)   [5] [2021-07-30 09:45:14.787] [event processing on_demand{user_logged_in}] Executing: 'C:\Program Files (x86)\opsi.org\opsi-client-agent\\opsiclientd_rpc.exe "test-vm-0013.***domain***" "***secret***" "4441" "setCurrentActiveDesktopName(\"1\", System.getActiveDesktopName())"' in session '1' on desktop 'winsta0\winlogon'   (Windows.py:1501)
(25674)   [3] [2021-07-30 09:45:14.788] [event processing on_demand{user_logged_in}] (2, 'CreateProcessAsUser', 'Das System kann die angegebene Datei nicht finden.')   (Opsiclientd.py:600)
(25675)   [5] [2021-07-30 09:45:14.789] [event processing on_demand{user_logged_in}] Mounting depot share webdavs://opsi-experimental.***domain***:4447/depot   (EventProcessing.py:355)
(25677)   [5] [2021-07-30 09:45:14.791] [event processing on_demand{user_logged_in}] Mounting 'https://opsi-experimental.***domain***:4447/depot' to 'p:'   (Windows.py:820)
(25678)   [3] [2021-07-30 09:45:14.854] [event processing on_demand{user_logged_in}] Failed to mount 'https://opsi-experimental.***domain***:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.')   (Windows.py:833)
(25679)   [3] [2021-07-30 09:45:14.870] [event processing on_demand{user_logged_in}] Failed to process product action requests: Failed to mount 'https://opsi-experimental.***domain***:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.')   (EventProcessing.py:779)
(25680)   Traceback (most recent call last):
(25681)     File "OPSI\System\Windows.py", line 829, in mount
(25682)   pywintypes.error: (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.')
(25683)   
(25684)   The above exception was the direct cause of the following exception:
(25685)   
(25686)   Traceback (most recent call last):
(25687)     File "opsiclientd\EventProcessing.py", line 761, in processProductActionRequests
(25688)     File "opsiclientd\EventProcessing.py", line 882, in runActions
(25689)     File "opsiclientd\EventProcessing.py", line 398, in mountDepotShare
(25690)     File "OPSI\System\Windows.py", line 834, in mount
(25691)   RuntimeError: Failed to mount 'https://opsi-experimental.***domain***:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.')
Wir nutzen Opsi 4.1 unter Debian9, alle patches sind aktuell:
opsiconfd version 4.1.1.20
python-opsi version 4.1.1.101

Ich habe die smb.conf überprüft und alle Rechte, sicherheitshalber

Code: Alles auswählen

opsi-setup --auto-configure-samba
opsi-set-rights

Ein ähnliches Problem kann ich im Forum nicht finden, ich bin ziemlich ratlos wo ich den Fehler in den Einstellungen suchen muss.

Achja, mit dem vorherigen opsi-client-agent 4.1.1.32-1 funktioniert das mounten mit webdav...
wie gesagt, ich bin ziemlich ratlos.
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: Depotmounting-Fehler mit webdav

Beitrag von wolfbardo »

Danke für den Bugreport!

Mindestens bis

Code: Alles auswählen

opsi-client-agent         4.1.1.32-1
wurde bei

Code: Alles auswählen

clientconfig.depot.protocol	[webdav]
dieser Eintrag bei "on_demand" ignoriert und versucht den Depotshare via cifs zu mounten.

Webdav wurde dann nur im Zusammnhang mit dem WAN/VPN Modul bei den sync-events verwendet.

Code: Alles auswählen

opsi-client-agent         4.1.1.41-1   
versucht nun den Share per webdav zu mounten und das schlaegt aktuell je nach opsi-Server-Version und Clientkonfiguration fehl.

Als Workaround kann man bei "on_demand"

zuvor

Code: Alles auswählen

clientconfig.depot.protocol	[cifs]
setzen.


Ich rechne nächste Woche mit einem Fix.

Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

Basisworkshop Mainz :

17. - 20. 06. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
damien.leviet
Beiträge: 110
Registriert: 24 Feb 2014, 11:30

Re: Depotmounting-Fehler mit webdav

Beitrag von damien.leviet »

Hallo,

wurde das Problem mittlerweile behoben?

Gruß Damien
ricky_opsifan
Beiträge: 31
Registriert: 18 Aug 2020, 15:51

Re: Depotmounting-Fehler mit webdav

Beitrag von ricky_opsifan »

ich habe leider den gleichen Fehler bei der aktuellsten opsi-client-agent Version (4.2.0.17-2) ...

sollte der Fix dafür schon enthalten sein?

ich habe folgendes unternommen:
beim client das WAN Modul aktiviert (da ich gelesen habe, dass webdav nur mit wan modul funktioniert) :!:
bei den host-parametern "clientconfig.depot.protocol" auf "webdav" gesetzt :!:
on demand angestoßen, damit er die konfig vom server erhält :!:
den client neugestartet :!:

leider lässt sich nun kein produkt cachen über webdav.
normalerweise sollte der ja beim hochfahren oder zwischendurch anfangen, das product zu cachen...
wenn ich über https://localhost:4441 auf die infopage gehe, kann ich sehen, dass er probleme beim mounten hat:
Failed to process product action requests (Thread-17): Failed to mount 'https://opsi-wan.de:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.')
im clientconnect log steht folgendes:
(21805) [3] [2021-12-27 15:50:07.477] [event processing gui_startup{installation_pending}] Failed to mount 'https://opsi-wan.de:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.') (Windows.py:848)
(21806) [3] [2021-12-27 15:50:07.477] [event processing gui_startup{installation_pending}] Failed to process product action requests: Failed to mount 'https://opsi-wan.de:4447/depot': (1244, 'WNetAddConnection2', 'Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.') (EventProcessing.py:840)
ich bin mir nicht ganz sicher, ob dies das gleiche fehlerbild ist...
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1802
Registriert: 29 Mai 2008, 15:14

Re: Depotmounting-Fehler mit webdav

Beitrag von j.schneider »

Hallo,

ältere opsi-client-agents (4.1.x) haben bei verschiedenen Events das globale Setting clientconfig.depot.protocol hard-codiert überschrieben.
Das hatte zur Folge, dass, obwohl clientconfig.depot.protocol = webdav gesetzt war, trotzdem ein CIFS-Mount stattgefunden hat.

Mittlerweile unterstützt der opsi-client-agent einen direkten Mount von WebDAV-Shares auch unter Windows.
Daher wirkt sich das gesetzte clientconfig.depot.protocol jetzt auf alle Events aus.

Ein WebDAV-Share kann unter Windows nur per webdavs (TLS) gemountet werden.
Damit das funktioniert, muss das Betriebssystem dem Server-Zertifikat des WebDAV-Servers vertrauen.
Sollte Windows dem Zertifikat nicht vertrauen, führt das beim Mounten zu der missverständlichen Fehlermeldung:

Code: Alles auswählen

Der angeforderte Vorgang konnte nicht ausgeführt werden, da der Benutzer nicht authentifiziert wurde.
Der WebDAV-Server ist hier in der Regel der opsi-Depotserver (opsiconfd auf Port 4447).
Damit Windows diesem vertraut, muss das Server-Zertifikat bzw. das Zertifikat der ausstellenden CA im Zertifikats-Store des Betriebssystems hinterlegt werden.
Betreibt man einen opsi 4.2-Server mit opsi CA (was der Standard ist), dann kann man einfach die folgenden Configs setzen damit das Mounten des WebDAV-Shares funktioniert:

Code: Alles auswählen

opsiclientd.global.verify_server_cert	[true]
opsiclientd.global.install_opsi_ca_into_os_store	[true]
Verwendet man auf dem opsi-Server nicht die opsi CA, sondern eigene Zertifikate, muss man sich auch um deren Verteilung selbst kümmern.

Für die meisten Umgebungen ist es aber empfehlenswert nicht per WebDAV zu mounten, sondern das alte Verhalten wiederherzustellen (Cachen der Dateien per WebDAV, Mount per CIFS).
Das funktioniert, indem man das Depot-Protokoll für einzelne Events abweichend setzt.
Hierfür existiert das Attribut depot_protocol in der Event-Konfiguration.

In der Regel ist folgendes zu setzen:

Code: Alles auswählen

clientconfig.depot.protocol	[cifs]
clientconfig.depot.protocol.netboot	[cifs]
opsiclientd.event_sync.depot_protocol	[webdav]
Das hat zur Folge, dass standardmäßig CIFS verwendet wird, das Cachen der Dateien im WAN/VPN-Modus aber über WebDAV erfolgt.
Die Events net_connection und timer erben durch super = sync in der Regel vom Event sync.

Andersherum kann man natürlich auch clientconfig.depot.protocol = webdav belassen und für einzelne Events, wie on_demand, depot_protocol = cifs setzen.

Grüße
Jan Schneider
ricky_opsifan
Beiträge: 31
Registriert: 18 Aug 2020, 15:51

Re: Depotmounting-Fehler mit webdav

Beitrag von ricky_opsifan »

Vielen lieben Dank für die ausführliche Antwort.

Das OS meiner Clients traut der opsi CA nicht, das wird es wohl sein...
Ich werde es austesten und ggfs. Rückmeldung geben hier.

edit:
webdav mount geht nun :D
Antworten