UCS-App opsi und Authentifizierung

Antworten
MasinAD
Beiträge: 6
Registriert: 24 Aug 2018, 10:33

UCS-App opsi und Authentifizierung

Beitrag von MasinAD »

Hallo!

Im UCS-Forum kann mir wohl keiner helfen, deswegen frage ich jetzt hier nach, da das Problem meines Erachtens auch eher bei Opsi bzw. der UCS-Appcenter-App opsi liegt.

Zwischen meiner Frage bei Univention und heute liegt ein schwerer, schwerer Weg, wo ich nach viel Code-Analyse die Zeilen 252-256 auskommentieren musste, damit das Installationsskript /var/lib/univention-install/99opsi4ucs.inst aus dem Paket opsi4ucs nach einer Deinstallation durchlaufen konnte. Natürlich mag mein Setup damit jetzt korrumpiert sein, der Fehler, der mich hierher gebracht hat, ist jedoch auch schon bei der Erstinstallation aufgetreten.

Starte ich den opsi-configed auf meinem Client und will mich am OPSI-Dienst anmelden, läuft das im Log auf:

Code: Alles auswählen

Aug 27 13:41:54 kappa slapd[26705]: conn=22250 op=30364 SRCH base="dc=wikimedia,dc=de" scope=0 deref=0 filter="(objectClass=*)"
Aug 27 13:41:54 kappa slapd[26705]: conn=22250 op=30364 SEARCH RESULT tag=101 err=0 nentries=1 text=
Aug 27 13:41:54 kappa python[32450]: pam_krb5(opsi-auth:auth): user maal authenticated as maal@WIKIMEDIA.DE
Aug 27 13:41:54 kappa unix_chkpwd[26723]: could not obtain user info (maal)
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 fd=22 ACCEPT from IP=172.16.66.4:46812 (IP=0.0.0.0:7389)
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=0 EXT oid=1.3.6.1.4.1.1466.20037
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=0 STARTTLS
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=0 RESULT oid= err=0 text=
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 fd=22 TLS established tls_ssf=256 ssf=256
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=1 BIND dn="" method=128
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=1 RESULT tag=97 err=0 text=
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=2 SRCH base="dc=wikimedia,dc=de" scope=2 deref=0 filter="(uid=maal)"
Aug 27 13:41:54 kappa slapd[26705]: OVER: rs->sr_err != LDAP_SUCCESS on "dc=wikimedia,dc=de" ERR: 0x32
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=2 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 27 13:41:54 kappa python[32450]: pam_ldap: ldap_search_s Insufficient access
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 op=3 UNBIND
Aug 27 13:41:54 kappa slapd[26705]: conn=27653 fd=22 closed
/var/log/opsi/opsiconfd/[ip].log (log level 7):

Code: Alles auswählen

[7] [Aug 27 13:59:24] Now using log-file '/var/log/opsi/opsiconfd/172.16.66.209.log' for object 0x7f251fdf8758 (Logger.py|489)
[6] [Aug 27 13:59:24] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|444)
[6] [Aug 27 13:59:24] Worker <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f251fdf8758> started processing (Worker.py|250)
[5] [Aug 27 13:59:24] Application 'opsi config editor 4.0.7.6.34' on client '172.16.66.209' did not send cookie (workers.py|185)
[7] [Aug 27 13:59:24] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 13:59:24] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 13:59:24] New session created (session.py|77)
[7] [Aug 27 13:59:24] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 13:59:24] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 13:59:24] Authorization request from maal@172.16.66.209 (application: opsi config editor 4.0.7.6.34) (workers.py|217)
[6] [Aug 27 13:59:24] Connection from admin network (workers.py|259)
[7] [Aug 27 13:59:24] Trying to authenticate by operating system... (BackendManager.py|595)
[7] [Aug 27 13:59:24] PAM conversation: query 'login:', type 2 (BackendManager.py|727)
[7] [Aug 27 13:59:24] PAM conversation: query 'Password: ', type 1 (BackendManager.py|727)
[6] [Aug 27 13:59:24] Traceback: (Logger.py|798)
[6] [Aug 27 13:59:24]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 269, in _authenticate
    forceGroups=forceGroups
 (Logger.py|798)
[6] [Aug 27 13:59:24]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/BackendManager.py", line 600, in __init__
    raise BackendAuthenticationError(forceUnicode(e))
 (Logger.py|798)
[6] [Aug 27 13:59:24]      ==>>> Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (workers.py|290)
[7] [Aug 27 13:59:24] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[6] [Aug 27 13:59:24] Session timer <_Timer(Thread-2, stopped 139797247694592)> canceled (Session.py|128)
[5] [Aug 27 13:59:24] Session 'rRknTeNQdtiN0nmClNPGSJeNgV8oEiAy' from ip '172.16.66.209', application 'opsi config editor 4.0.7.6.34' deleted (Session.py|234)
[7] [Aug 27 13:59:24] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[7] [Aug 27 13:59:24] <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f251fdf8758>._setCookie (Worker.py|434)
[2] [Aug 27 13:59:24] Traceback: (Logger.py|798)
[2] [Aug 27 13:59:24]   File "/usr/lib/python2.7/dist-packages/OPSI/Service/Worker.py", line 291, in _errback
    failure.raiseException()
 (Logger.py|798)
[2] [Aug 27 13:59:24]   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
 (Logger.py|798)
[2] [Aug 27 13:59:24]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 293, in _authenticate
    raise OpsiAuthenticationError(u"Forbidden: %s" % error)
 (Logger.py|798)
[2] [Aug 27 13:59:24]      ==>>> Opsi authentication error: Forbidden: Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (Worker.py|293)
Beim ersten Versuch hatte ich das ja noch mit meinem lokal installierten opsi-configed probiert, bei der bereitgestellten configed.jnlp taucht dahingegen ein Dialog auf, der so gar nicht nach OPSI ausschaut, eher wie ein gewöhnlicher GTK+-Dialog, der mich mit "Der Server von kappa.wikimedia.de fordert Authentifizierung an. Er sagt: "OPSI Service" nach Benutzername und Kennwort fragt. Gebe ich dort meine Zugangsdaten ein, zeigt das Log:

Code: Alles auswählen

Aug 27 13:47:31 kappa python[32450]: pam_krb5(opsi-auth:auth): user maal authenticated as maal@WIKIMEDIA.DE
Aug 27 13:47:31 kappa unix_chkpwd[27443]: could not obtain user info (maal)
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 fd=20 ACCEPT from IP=172.16.66.4:47254 (IP=0.0.0.0:7389)
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=0 EXT oid=1.3.6.1.4.1.1466.20037
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=0 STARTTLS
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=0 RESULT oid= err=0 text=
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 fd=20 TLS established tls_ssf=256 ssf=256
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=1 BIND dn="" method=128
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=1 RESULT tag=97 err=0 text=
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=2 SRCH base="dc=wikimedia,dc=de" scope=2 deref=0 filter="(uid=maal)"
Aug 27 13:47:31 kappa slapd[26705]: OVER: rs->sr_err != LDAP_SUCCESS on "dc=wikimedia,dc=de" ERR: 0x32
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=2 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 27 13:47:31 kappa python[32450]: pam_ldap: ldap_search_s Insufficient access
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 op=3 UNBIND
Aug 27 13:47:31 kappa slapd[26705]: conn=27686 fd=20 closed
Aug 27 13:47:32 kappa slapd[26705]: conn=22250 op=30453 SRCH base="dc=wikimedia,dc=de" scope=0 deref=0 filter="(objectClass=*)"
Aug 27 13:47:32 kappa slapd[26705]: conn=22250 op=30453 SEARCH RESULT tag=101 err=0 nentries=1 text=
Sieht ziemlich ähnlich aus. opsiconfd-Log (nachgeschoben – ich hatte zu spät daran gedacht):

Code: Alles auswählen

[7] [Aug 27 14:01:59] Now using log-file '/var/log/opsi/opsiconfd/172.16.66.209.log' for object 0x7f2520049e18 (Logger.py|489)
[6] [Aug 27 14:01:59] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|444)
[6] [Aug 27 14:01:59] Worker <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f2520049e18> started processing (Worker.py|250)
[5] [Aug 27 14:01:59] Application 'opsi config editor 4.0.7.6.34' on client '172.16.66.209' did not send cookie (workers.py|185)
[7] [Aug 27 14:01:59] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 14:01:59] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 14:01:59] New session created (session.py|77)
[7] [Aug 27 14:01:59] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 14:01:59] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 14:01:59] Authorization request from maal@172.16.66.209 (application: opsi config editor 4.0.7.6.34) (workers.py|217)
[6] [Aug 27 14:01:59] Connection from admin network (workers.py|259)
[7] [Aug 27 14:01:59] Trying to authenticate by operating system... (BackendManager.py|595)
[7] [Aug 27 14:01:59] PAM conversation: query 'login:', type 2 (BackendManager.py|727)
[7] [Aug 27 14:01:59] PAM conversation: query 'Password: ', type 1 (BackendManager.py|727)
[6] [Aug 27 14:01:59] Traceback: (Logger.py|798)
[6] [Aug 27 14:01:59]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 269, in _authenticate
    forceGroups=forceGroups
 (Logger.py|798)
[6] [Aug 27 14:01:59]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/BackendManager.py", line 600, in __init__
    raise BackendAuthenticationError(forceUnicode(e))
 (Logger.py|798)
[6] [Aug 27 14:01:59]      ==>>> Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (workers.py|290)
[7] [Aug 27 14:01:59] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[6] [Aug 27 14:01:59] Session timer <_Timer(Thread-4, stopped 139797247694592)> canceled (Session.py|128)
[5] [Aug 27 14:01:59] Session 'SpXhIWGKWxlGqzies5YHm7EZdtXJD9VR' from ip '172.16.66.209', application 'opsi config editor 4.0.7.6.34' deleted (Session.py|234)
[7] [Aug 27 14:01:59] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[7] [Aug 27 14:01:59] <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f2520049e18>._setCookie (Worker.py|434)
[2] [Aug 27 14:01:59] Traceback: (Logger.py|798)
[2] [Aug 27 14:01:59]   File "/usr/lib/python2.7/dist-packages/OPSI/Service/Worker.py", line 291, in _errback
    failure.raiseException()
 (Logger.py|798)
[2] [Aug 27 14:01:59]   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
 (Logger.py|798)
[2] [Aug 27 14:01:59]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 293, in _authenticate
    raise OpsiAuthenticationError(u"Forbidden: %s" % error)
 (Logger.py|798)
[2] [Aug 27 14:01:59]      ==>>> Opsi authentication error: Forbidden: Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (Worker.py|293)
Nächster Versuch: Administrator und dessen Passwort. Kein Erfolg, opsi-configed schmiert dieses Mal auch ab.

opsiconfd-Log (nachgeschoben):

Code: Alles auswählen

[7] [Aug 27 14:13:51] Now using log-file '/var/log/opsi/opsiconfd/172.16.66.209.log' for object 0x7f25200493f8 (Logger.py|489)
[6] [Aug 27 14:13:51] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|444)
[6] [Aug 27 14:13:51] Worker <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f25200493f8> started processing (Worker.py|250)
[5] [Aug 27 14:13:51] Application 'opsi config editor 4.0.7.6.34' on client '172.16.66.209' did not send cookie (workers.py|185)
[7] [Aug 27 14:13:51] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 14:13:51] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 14:13:51] New session created (session.py|77)
[7] [Aug 27 14:13:51] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 14:13:51] Authorization header found (type: basic) (workers.py|109)
[5] [Aug 27 14:13:51] Authorization request from Administrator@172.16.66.209 (application: opsi config editor 4.0.7.6.34) (workers.py|217)
[6] [Aug 27 14:13:51] Connection from admin network (workers.py|259)
[7] [Aug 27 14:13:51] Trying to authenticate by operating system... (BackendManager.py|595)
[7] [Aug 27 14:13:51] PAM conversation: query 'login:', type 2 (BackendManager.py|727)
[7] [Aug 27 14:13:51] PAM conversation: query 'Password: ', type 1 (BackendManager.py|727)
[6] [Aug 27 14:13:51] Traceback: (Logger.py|798)
[6] [Aug 27 14:13:51]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 269, in _authenticate
    forceGroups=forceGroups
 (Logger.py|798)
[6] [Aug 27 14:13:51]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/BackendManager.py", line 600, in __init__
    raise BackendAuthenticationError(forceUnicode(e))
 (Logger.py|798)
[6] [Aug 27 14:13:51]      ==>>> Backend authentication error: Backend authentication error: PAM authentication failed for user 'Administrator': ('Authentication failure', 7) (workers.py|290)
[7] [Aug 27 14:13:51] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[6] [Aug 27 14:13:51] Session timer <_Timer(Thread-6, stopped 139797247694592)> canceled (Session.py|128)
[5] [Aug 27 14:13:51] Session '8HzPdjtVOw5a90yEC9j4wSosewp70Msi' from ip '172.16.66.209', application 'opsi config editor 4.0.7.6.34' deleted (Session.py|234)
[7] [Aug 27 14:13:51] Freeing session <OpsiconfdSession(<opsiconfd.session.OpsiconfdSessionHandler object at 0x7f2515551450>, name=u'OPSISID', sessionMaxInactiveInterval=120> (Worker.py|318)
[7] [Aug 27 14:13:51] <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f25200493f8>._setCookie (Worker.py|434)
[2] [Aug 27 14:13:51] Traceback: (Logger.py|798)
[2] [Aug 27 14:13:51]   File "/usr/lib/python2.7/dist-packages/OPSI/Service/Worker.py", line 291, in _errback
    failure.raiseException()
 (Logger.py|798)
[2] [Aug 27 14:13:51]   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
 (Logger.py|798)
[2] [Aug 27 14:13:51]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 293, in _authenticate
    raise OpsiAuthenticationError(u"Forbidden: %s" % error)
 (Logger.py|798)
[2] [Aug 27 14:13:51]      ==>>> Opsi authentication error: Forbidden: Backend authentication error: Backend authentication error: PAM authentication failed for user 'Administrator': ('Authentication failure', 7) (Worker.py|293)

[7] [Aug 27 14:13:52] Now using log-file '/var/log/opsi/opsiconfd/172.16.66.209.log' for object 0x7f25200361b8 (Logger.py|489)
[6] [Aug 27 14:13:52] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|444)
[6] [Aug 27 14:13:52] Worker <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f25200361b8> started processing (Worker.py|250)
[5] [Aug 27 14:13:52] Application 'opsi config editor 4.0.7.6.34' on client '172.16.66.209' did not send cookie (workers.py|185)
[7] [Aug 27 14:13:52] Trying to get username and password from Authorization header (workers.py|105)
[7] [Aug 27 14:13:52] Authorization header found (type: basic) (workers.py|109)
[7] [Aug 27 14:13:52] <opsiconfd.workers.WorkerOpsiconfdJsonRpc instance at 0x7f25200361b8>._setCookie (Worker.py|434)
[2] [Aug 27 14:13:52] Traceback: (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/OPSI/Service/Worker.py", line 291, in _errback
    failure.raiseException()
 (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
 (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 193, in _getSession
    WorkerOpsi._getSession(self, result)
 (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/OPSI/Service/Worker.py", line 391, in _getSession
    sessionId = self._getSessionId()
 (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 431, in _getSessionId
    return WorkerOpsiconfd._getSessionId(self)
 (Logger.py|798)
[2] [Aug 27 14:13:52]   File "/usr/lib/python2.7/dist-packages/opsiconfd/workers.py", line 188, in _getSessionId
    raise OpsiAuthenticationError(u"Application '%s' on client '%s' did neither supply session id nor password" % (self._getUserAgent(), self.request.remoteAddr.host))
 (Logger.py|798)
[2] [Aug 27 14:13:52]      ==>>> Opsi authentication error: Application 'opsi config editor 4.0.7.6.34' on client '172.16.66.209' did neither supply session id nor password (Worker.py|293)
Letzter Versuch: root und dessen Passwort. Auch da zeigt das Log nichts Neues an, dafür meldet sich ein Fenster "opsi config editor: problems Occurred" (sic!):

Code: Alles auswählen

Aug 27  13:50:06.293  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_updateObjects' denied for user 'root': Backend permission denied error: Access denied
Aug 27  13:50:06.326  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_updateObjects' denied for user 'root': Backend permission denied error: Access denied
Aug 27  13:50:06.545  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'group_getObjects' denied for user 'root'
Aug 27  13:50:06.686  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'objectToGroup_getObjects' denied for user 'root'
Aug 27  13:50:06.720  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_updateObjects' denied for user 'root': Backend permission denied error: Access denied
Aug 27  13:50:07.038  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'configState_getObjects' denied for user 'root'
Aug 27  13:50:07.039  2018 -- JSONReMapper: Exception on reproducing  null, java.lang.NullPointerException
Aug 27  13:50:07.921  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_updateObjects' denied for user 'root': Backend permission denied error: Access denied
Aug 27  13:50:08.006  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_updateObjects' denied for user 'root': Backend permission denied error: Access denied
Aug 27  13:50:08.568  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'product_getObjects' denied for user 'root'
Aug 27  13:50:08.569  2018 -- JSONReMapper: Exception on reproducing  null, java.lang.NullPointerException
Aug 27  13:50:08.602  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'productOnDepot_getObjects' denied for user 'root'
Aug 27  13:50:08.603  2018 -- JSONReMapper: Exception on reproducing  null, java.lang.NullPointerException
Aug 27  13:50:08.675  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_getObjects' denied for user 'root'
Aug 27  13:50:08.710  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'productProperty_getObjects' denied for user 'root'
Aug 27  13:50:08.711  2018 -- JSONReMapper: Exception on reproducing  null, java.lang.NullPointerException
Aug 27  13:50:09.305  2018 -- Opsi service error:  [BackendPermissionDeniedError] Backend permission denied error: Access to method 'config_getObjects' denied for user 'root'
In der Logdatei von opsiconfd läuft zu viel für phpBB auf, deswegen habe ich das als gist bei GitHub hinterlegt.

Das ist ja vollkommen in Ordnung, dass root keinen Zugriff darauf bekommt. Man sollte das Konto eh nicht nutzen. Ich wäre auch viel glücklicher, würden die Konten maal oder Administrator Erfolg zeigen.

Der Vollständigkeit halber:
  • maal ist in den Gruppen opsifileadmins und opsiadmin
  • Administrator ist zumindest in opsiadmin
  • root ist nur in root
  • SSH-Anmeldung funktioniert bei allen dreien mit Passwort, wenn ich Passwort-Authentifizierung erlaube (war anfangs nicht, nach Überprüfung im Zuge meiner Installationsschwierigkeiten habe ich das dann erlaubt)
Was könnte also das Problem sein? Aus meinen Erfahrungen mit einem Domainjoin in den letzten Wochen würde ich vermuten, dass irgendeine Komponente von opsiconfd versucht, eine Authentifizierung gegen das (Samba?) LDAP durchzuführen und will dafür auf das machine.secret zurückgreifen, was aber root:root gehört und 0600 als permissions hat … mal dem kurz nachgehen … naja, hätte ja sein können. Aber ein paar Mal gibt es schon "Permission denied":
  • open("/etc/krb5.keytab", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
  • open("/etc/libnss-ldap.conf", O_RDONLY) = -1 EACCES (Permission denied)
  • open("/etc/libnss-ldap.conf", O_RDONLY) = -1 EACCES (Permission denied)
Die beiden Dateien haben folgende Attribute:

Code: Alles auswählen

root@kappa:~# ll /etc/krb5.keytab /etc/libnss-ldap.conf
-rw------- 1 root       root 21840 Aug  5 01:10 /etc/krb5.keytab
-r--r----- 1 messagebus root   728 Aug  5 01:10 /etc/libnss-ldap.conf
Starte ich den opsiconfd allerdings als root, kann ich mich anmelden. Für mich sieht das ziemlich deutlich nach einem Rechteproblem aus …

Mehr Infos habe ich erstmal nicht. Wäre schön, wenn ich noch Hinweise kriegen könnte, denen ich nachgehen kann. Ich lese mich jetzt erstmal ein in Linux-LDAP-Authentifizierung

Beste Grüße aus Berlin-Kreuzberg
Masin Al-Dujaili
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: UCS-App opsi und Authentifizierung

Beitrag von n.wenselowski »

Hallo Masin,

was für ein UCS kommt denn eigentlich zum Einsatz und auf welcher Rolle wird gearbeitet?
MasinAD hat geschrieben:Zwischen meiner Frage bei Univention und heute liegt ein schwerer, schwerer Weg, wo ich nach viel Code-Analyse die Zeilen 252-256 auskommentieren musste, damit das Installationsskript /var/lib/univention-install/99opsi4ucs.inst aus dem Paket opsi4ucs nach einer Deinstallation durchlaufen konnte. Natürlich mag mein Setup damit jetzt korrumpiert sein, der Fehler, der mich hierher gebracht hat, ist jedoch auch schon bei der Erstinstallation aufgetreten.
Wenn ich das richtig sehe meinst du damit das Hinzufügen des Users opsiconfd zur Gruppe opsiadmin, oder? Hast du das noch nachgeholt? Falls nicht, würde ich das zumindest noch machen, damit es nicht schon daran scheitert.

In Bezug auf die Probleme bei der Installation: Hast du vielleicht noch Logs darüber was dabei nicht funktioniert hat (Log, Fehlermeldung, Traceback etc...)?
MasinAD hat geschrieben:Beim ersten Versuch hatte ich das ja noch mit meinem lokal installierten opsi-configed probiert, bei der bereitgestellten configed.jnlp taucht dahingegen ein Dialog auf, der so gar nicht nach OPSI ausschaut, eher wie ein gewöhnlicher GTK+-Dialog, der mich mit "Der Server von kappa.wikimedia.de fordert Authentifizierung an.
Ich teste mit folgendem Befehl:

Code: Alles auswählen

opsi-admin -u niko method backend_info
Wenn alles klappt liefert er dir u.A. die opsiVersion.

Der Befehl nimmt auch mit -p <pw> direkt das Kennwort entgegen, was für Tests schneller sein kann, weil man es nicht neu tippen muss.

MasinAD hat geschrieben:Das ist ja vollkommen in Ordnung, dass root keinen Zugriff darauf bekommt. Man sollte das Konto eh nicht nutzen. Ich wäre auch viel glücklicher, würden die Konten maal oder Administrator Erfolg zeigen.

Der Vollständigkeit halber:
  • maal ist in den Gruppen opsifileadmins und opsiadmin
  • Administrator ist zumindest in opsiadmin
  • root ist nur in root
  • SSH-Anmeldung funktioniert bei allen dreien mit Passwort, wenn ich Passwort-Authentifizierung erlaube (war anfangs nicht, nach Überprüfung im Zuge meiner Installationsschwierigkeiten habe ich das dann erlaubt)
Gruppenmitgliedschaft für maal sieht okay aus.
Mehr sollte es nicht benötigen.
MasinAD hat geschrieben:Was könnte also das Problem sein? Aus meinen Erfahrungen mit einem Domainjoin in den letzten Wochen würde ich vermuten, dass irgendeine Komponente von opsiconfd versucht, eine Authentifizierung gegen das (Samba?) LDAP durchzuführen und will dafür auf das machine.secret zurückgreifen, was aber root:root gehört und 0600 als permissions hat … mal dem kurz nachgehen … naja, hätte ja sein können. Aber ein paar Mal gibt es schon "Permission denied":
  • open("/etc/krb5.keytab", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
  • open("/etc/libnss-ldap.conf", O_RDONLY) = -1 EACCES (Permission denied)
  • open("/etc/libnss-ldap.conf", O_RDONLY) = -1 EACCES (Permission denied)
Die beiden Dateien haben folgende Attribute:

Code: Alles auswählen

root@kappa:~# ll /etc/krb5.keytab /etc/libnss-ldap.conf
-rw------- 1 root       root 21840 Aug  5 01:10 /etc/krb5.keytab
-r--r----- 1 messagebus root   728 Aug  5 01:10 /etc/libnss-ldap.conf
Starte ich den opsiconfd allerdings als root, kann ich mich anmelden. Für mich sieht das ziemlich deutlich nach einem Rechteproblem aus …
opsi verwendet zum auth PAM über die Datei /etc/pam.d/opsi-auth. Die Datei scheint bei dir vorhanden sein und auch verwendet zu werden.
Du könntest Testweise den Inhalt verkürzen (erst @include common-session, dann @include common-auth raus) und nach jeder Änderung prüfen, ob die Anmeldung klappt.
Zugriff auf das machine.secret ist eigentlich nichts, was der opsiconfd benötigt und Zugriff auf weitere Files wird idr per PAM gehandelt und spezielle Berechtigung für einzelne Dienste/User auf diese Files wäre mir ehrlich gesagt neu.

Mein Test-Server hat bisher keine weiteren Einstellungen bekommen was die Authentifizierung angeht. Kannst du erzählen was bei dir konfiguriert ist?



Gruß

Niko

Code: Alles auswählen

import OPSI
MasinAD
Beiträge: 6
Registriert: 24 Aug 2018, 10:33

Re: UCS-App opsi und Authentifizierung

Beitrag von MasinAD »

Hallo Nico,

entschuldige bitte die späte Antwort, Krankheit und Telekomkatastrophen haben meine Aufmerksamkeit gebunden.
n.wenselowski hat geschrieben: was für ein UCS kommt denn eigentlich zum Einsatz und auf welcher Rolle wird gearbeitet?
UCS 4.2-3 als Domain Master.
n.wenselowski hat geschrieben: Wenn ich das richtig sehe meinst du damit das Hinzufügen des Users opsiconfd zur Gruppe opsiadmin, oder? Hast du das noch nachgeholt? Falls nicht, würde ich das zumindest noch machen, damit es nicht schon daran scheitert.

In Bezug auf die Probleme bei der Installation: Hast du vielleicht noch Logs darüber was dabei nicht funktioniert hat (Log, Fehlermeldung, Traceback etc...)?
Da ich die erste Installation über das Webinterface gemacht habe, habe ich leider nichts dergleichen. Die Folgeversuche machte ich dann im Terminal. Da meldete dann das von univention-app gestartete apt dann, dass opsi4ucsappcenter opsi4ucs benötige, aber nicht installiert werde. Die weitergehende Recherche brachte dann zutage, dass das Skript 99opsi4ucs in besagten Zeilen die Weiterarbeit verweigerte, weil in /var/univention-join/status die Zeile(n)

Code: Alles auswählen

opsi4ucs v44 successful
opsi4ucs v29 successful
vorhanden sind(waren). Ich kann nicht sagen, warum dort zwei deutlich unterschiedliche Versionen eingetragen sind, außer dass es womöglich unterschiedliche Pakete sind, die aus dem Appcenter oder via Anleitung aus dem "OPSI Getting Started"-Dokument installiert werden. Ich habe die Zeilen auch erst im Rahmen meiner Recherche gefunden, kann also nicht ausschließen, dass irgendein Skript tatsächlich beide Zeilen in die Datei hineinschreibt.

Jedenfalls werden diese Zeilen im Falle einer Deinstallation wohl nicht entfernt, weswegen Reinstallationen scheitern.
n.wenselowski hat geschrieben: Ich teste mit folgendem Befehl:

Code: Alles auswählen

opsi-admin -u niko method backend_info
Wenn alles klappt liefert er dir u.A. die opsiVersion.
Probieren wir es doch mal:

Code: Alles auswählen

# opsi-admin -u maal method backend_info
Password: 
[2] Traceback: (Logger.py|798)
[2]   File "/usr/bin/opsi-admin", line 1697, in <module>
    main(sys.argv[1:])
 (Logger.py|798)
[2]   File "/usr/bin/opsi-admin", line 282, in main
    sessionId=sessionId
 (Logger.py|798)
[2]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/JSONRPC.py", line 355, in __init__
    self.connect()
 (Logger.py|798)
[2]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/JSONRPC.py", line 423, in connect
    self._interface = self._jsonRPC(u'backend_getInterface')
 (Logger.py|798)
[2]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/JSONRPC.py", line 596, in _jsonRPC
    return jsonrpc.execute()
 (Logger.py|798)
[2]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/JSONRPC.py", line 146, in execute
    return self.waitForResult()
 (Logger.py|798)
[2]   File "/usr/lib/python2.7/dist-packages/OPSI/Backend/Backend.py", line 165, in waitForResult
    raise self.error  # pylint: disable=raising-bad-type
 (Logger.py|798)
[2]      ==>>> Opsi authentication error: Forbidden: Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (error on server) (opsi-admin|1704)
[3] Error during execution: Opsi authentication error: Forbidden: Backend authentication error: Backend authentication error: PAM authentication failed for user 'maal': ('Authentication failure', 7) (error on server) (opsi-admin|1705)
n.wenselowski hat geschrieben: opsi verwendet zum auth PAM über die Datei /etc/pam.d/opsi-auth. Die Datei scheint bei dir vorhanden sein und auch verwendet zu werden.
Du könntest Testweise den Inhalt verkürzen (erst @include common-session, dann @include common-auth raus) und nach jeder Änderung prüfen, ob die Anmeldung klappt.
Zugriff auf das machine.secret ist eigentlich nichts, was der opsiconfd benötigt und Zugriff auf weitere Files wird idr per PAM gehandelt und spezielle Berechtigung für einzelne Dienste/User auf diese Files wäre mir ehrlich gesagt neu.
Ich habe das mal getestet, bekomme aber jedes Mal einen Stacktrace wie den obigen – oberflächlich verglichen ist es jedes Mal derselbe.
n.wenselowski hat geschrieben: Mein Test-Server hat bisher keine weiteren Einstellungen bekommen was die Authentifizierung angeht. Kannst du erzählen was bei dir konfiguriert ist?
An Auth-Einstellungen haben wir hier nichts gedreht. Zumindest ist mir nichts bekannt, und ich wüsste auch nicht, wo ich da was machen könnte. Die Defaults waren mir bislang gut genug.

Besten Gruß aus Berlin-Kreuzberg
Masin
MasinAD
Beiträge: 6
Registriert: 24 Aug 2018, 10:33

Re: UCS-App opsi und Authentifizierung

Beitrag von MasinAD »

Ich habe mir jetzt mal eine VM mit dem Virtualbox-Image erstellt und dort die Installation auf der Kommandozeile durchgetestet (univention-app install opsi):
  • Nach der Installation funktionierte der o.g. opsi-admin-Aufruf sowohl mit Administrator wie auch mit dem zu diesem Zweck angelegten Benutzerkonto maal.
  • Die Reinstallation scheiterte mit dem beschriebenen Fehler
  • Es scheint keine Nebenwirkungen zu haben, wenn ich die opsi-Zeile aus /var/univention-join/status rausschmeiße; die Neuinstallation läuft dann wieder durch.
  • Der Aufruf von opsi-admin funktioniert dann wie bei der Erstinstallation
journalctl loggt folgende Ereignisse:

Code: Alles auswählen

Sep 26 13:31:57 ucs unix_chkpwd[15619]: check pass; user unknown
Sep 26 13:31:57 ucs unix_chkpwd[15619]: password check failed for user (maal)
Sep 26 13:31:57 ucs python[7066]: pam_unix(opsi-auth:auth): authentication failure; logname= uid=2008 euid=2008 tty=/dev/null ruser= rhost=  user=maal
Sep 26 13:31:57 ucs python[7066]: pam_krb5(opsi-auth:auth): user maal authenticated as maal@WMDE.INTRANET
Sep 26 13:31:57 ucs unix_chkpwd[15620]: could not obtain user info (maal)
Sep 26 13:31:57 ucs unix_chkpwd[15621]: check pass; user unknown
Sep 26 13:31:57 ucs unix_chkpwd[15621]: password check failed for user (maal)
Sep 26 13:31:57 ucs python[7066]: pam_unix(opsi-auth:auth): authentication failure; logname= uid=2008 euid=2008 tty=/dev/null ruser= rhost=  user=maal
Sep 26 13:31:57 ucs python[7066]: pam_krb5(opsi-auth:auth): user maal authenticated as maal@WMDE.INTRANET
Sep 26 13:31:57 ucs unix_chkpwd[15622]: could not obtain user info (maal)
Auf unserem Produktivsystem sieht das hingegen folgendermaßen aus:

Code: Alles auswählen

Sep 26 13:41:25 kappa slapd[26705]: conn=179343 op=6 SRCH base="dc=wikimedia,dc=de" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uid=maal))"
Sep 26 13:41:25 kappa slapd[26705]: conn=179343 op=6 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass
Sep 26 13:41:25 kappa slapd[26705]: conn=179343 op=6 SEARCH RESULT tag=101 err=0 nentries=1 text=
Sep 26 13:41:25 kappa python[4623]: pam_krb5(opsi-auth:auth): user maal authenticated as maal@WIKIMEDIA.DE
Sep 26 13:41:25 kappa unix_chkpwd[22383]: could not obtain user info (maal)
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 fd=20 ACCEPT from IP=172.16.66.4:59768 (IP=0.0.0.0:7389)
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=0 EXT oid=1.3.6.1.4.1.1466.20037
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=0 STARTTLS
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=0 RESULT oid= err=0 text=
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 fd=20 TLS established tls_ssf=256 ssf=256
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=1 BIND dn="" method=128
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=1 RESULT tag=97 err=0 text=
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=2 SRCH base="dc=wikimedia,dc=de" scope=2 deref=0 filter="(uid=maal)"
Sep 26 13:41:25 kappa slapd[26705]: OVER: rs->sr_err != LDAP_SUCCESS on "dc=wikimedia,dc=de" ERR: 0x32
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=2 SEARCH RESULT tag=101 err=50 nentries=0 text=
Sep 26 13:41:25 kappa python[4623]: pam_ldap: ldap_search_s Insufficient access
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 op=3 UNBIND
Sep 26 13:41:25 kappa slapd[26705]: conn=179400 fd=20 closed
Sep 26 13:41:25 kappa slapd[26705]: conn=165044 op=52356 SRCH base="dc=wikimedia,dc=de" scope=0 deref=0 filter="(objectClass=*)"
Sep 26 13:41:25 kappa slapd[26705]: conn=165044 op=52356 SEARCH RESULT tag=101 err=0 nentries=1 text=
Spannend, dass dort sofort der slapd befragt wird … ich untersuche mal die pam.d-Dateien, habe aber jetzt Termine und danach Feierabend. Es gibt auf jeden Fall deutliche Unterschiede in common-account und common-auth.

BG
Masin
MasinAD
Beiträge: 6
Registriert: 24 Aug 2018, 10:33

Re: UCS-App opsi und Authentifizierung

Beitrag von MasinAD »

Der Vergleich der Dateien in /etc/pam.d zeigte, dass die beteiligten Dateien unterschiedlich waren. Irgendwas muss an den Dateien herumgepfuscht haben.

Nach

Code: Alles auswählen

ucr commit /etc/pam.d/*
zur Neuerstellung der Dateien klappte dann die Authentifizierung.
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: UCS-App opsi und Authentifizierung

Beitrag von n.wenselowski »

Hi,
MasinAD hat geschrieben:Der Vergleich der Dateien in /etc/pam.d zeigte, dass die beteiligten Dateien unterschiedlich waren. Irgendwas muss an den Dateien herumgepfuscht haben.

Nach

Code: Alles auswählen

ucr commit /etc/pam.d/*
zur Neuerstellung der Dateien klappte dann die Authentifizierung.
Dann lag ich ja doch nicht komplett falsch :D
Freut mich, dass es jetzt klappt :)


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Antworten