2016-06-06 22 views
0

Ich versuche Salz (2015.8.10 Beryllium) mit "external_auth" über PAM zu verwenden. Mein ultimatives Ziel ist es, mit Salz-API eine Anfrage von einem Salz-Diener zu authentifizieren, die es dem Diener erlaubt, seinen eigenen Schlüssel zu akzeptieren. Als ersten Schritt wird vorgeschlagen, dass Sie zuerst die Authentifizierung lokal mit "salt -a pam" auf dem Salz-Master erhalten. Da stecke ich fest.Salz Timeout bei Verwendung der externen Authentifizierung (PAM)

Das Problem, das ich habe, ist, dass Versuche, pam zu verwenden, in dem Salz Anfrage Ablaufen ergeben sie:

[[email protected] ~]# salt -a pam 'box603.example.com' test.ping --log-level all 
[DEBUG ] Reading configuration from /etc/salt/master 
... 
[DEBUG ] LazyLoaded pam.auth 
username: user1 
password: 
[DEBUG ] Initializing new AsyncZeroMQReqChannel for ('/etc/salt/pki/master', 'saltmaster.example.com_master', 'tcp://127.0.0.1:4506', 'clear') 
[TRACE ] Inserted key into loop_instance_map id 18446604434624361104 for key ('/etc/salt/pki/master', 'saltmaster.example.com_master', 'tcp://127.0.0.1:4506', 'clear') and process 11045 
[DEBUG ] SaltReqTimeoutError, retrying. (1/3) 
[DEBUG ] SaltReqTimeoutError, retrying. (2/3) 
[DEBUG ] SaltReqTimeoutError, retrying. (3/3) 
[DEBUG ] LazyLoaded nested.output 
[TRACE ] data = Salt request timed out. The master is not responding. If this error persists after verifying the master is up, worker_threads may need to be increased. 
Salt request timed out. The master is not responding. If this error persists after verifying the master is up, worker_threads may need to be increased. 

Gastgeber in Frage, box603.example.com online ist und pingable ist, wenn sie nicht mit pam-Authentifizierung:

[[email protected] ~]# salt 'box603.example.com' test.ping 
box603.example.com: 
    True 

Mein Saltmaster:/etc/Salz/Master Konfigurationsdatei enthält:

external_auth: 
    pam: 
    user1: 
     - .* 

Und Benutzer1 ist ein gültiger Benutzer in/etc/passwd | shadow, es kann über ssh verwendet werden, und ich kann su dazu.

Die Dokumentation zeigt an, dass beim Versuch, sich mit PAM und SALZ zu authentifizieren, standardmäßig der PAS-Anmeldeservice verwendet wird. Hier ist mein /etc/pam.d/login:

auth definitive   pam_user_policy.so.1 
auth requisite   pam_authtok_get.so.1 
auth required   pam_dhkeys.so.1 
auth required   pam_unix_auth.so.1 
auth required   pam_unix_cred.so.1 

Für das, was es wert ist, das Salz Master Solaris 11 läuft. Ich sehe oft in Beiträgen für Anfragen Salz Probleme Salz --versions-Bericht zu schreiben, so ist hier, dass:

Salt Version: 
      Salt: 2015.8.10 

Dependency Versions: 
     Jinja2: 2.8 
     M2Crypto: 0.24.0 
      Mako: Not Installed 
     PyYAML: 3.11 
      PyZMQ: 15.2.0 
     Python: 2.7.11 (default, Mar 24 2016, 22:19:35) 
      RAET: 0.6.5 
     Tornado: 4.3 
      ZMQ: 4.1.4 
      cffi: 1.5.2 
     cherrypy: 3.2.3 
     dateutil: Not Installed 
      gitdb: Not Installed 
     gitpython: Not Installed 
      ioflo: 1.5.1 
     libgit2: Not Installed 
     libnacl: 1.4.4 
    msgpack-pure: Not Installed 
msgpack-python: 0.4.7 
    mysql-python: Not Installed 
     pycparser: 2.14 
     pycrypto: 2.6.1 
     pygit2: Not Installed 
    python-gnupg: Not Installed 
      smmap: Not Installed 
     timelib: Not Installed 

System Versions: 
      dist: 
     machine: i86pc 
     release: 5.11 

Antwort

1

Zu diesem Zeitpunkt Salt „external_auth“ pam Umsetzung direkt an die Linux-pam-Binärdateien gebunden ist und funktioniert nur unter Linux. Das bedeutet leider kein Solaris.

+0

Es sollte möglich sein, das externe Linux-PAM-Authentifizierungsmodul als Beispiel zu verwenden, damit es mit Solaris funktioniert. Ich habe nur keine Solaris 11-Box, um das zu testen. –