Forum Linux.général [résolu] Puppet - Apache2 - Passenger - SSL

Posté par  (site web personnel) .
Étiquettes :
-1
23
avr.
2012

Bonjour, je pose ma question ici, car je ne sais plus vers qui/quoi me tourner…

Je suis en phase de test pour la mise en place d'un serveur Puppet (http://puppetlabs.com/). Mon parc de test n'est composé que de CentOS 6.2 pour le moment. Sur chacune de ces machines, SELinux est pour le moment désactivé.

Le serveur Puppet est un serveur physique, avec la dernière version stable en date : 2.7.13. L'utilisation du serveur Webrick étant déconseillée, l'application est publiée grâce à Apache2 + mod_ssl + passenger. L'agent puppet installé sur le serveur arrive bien à se synchroniser.

J'ai un deuxième client qui fait office d'hyperviseur (libivrt + qemu/kvm). Lui aussi arrive parfaitement à se synchroniser avec le serveur Puppet. Le serveur est configuré pour accepter automatiquement les demandes de certificats.

Sur mon hyperviseur, j'ai créé une machine virtuelle avec le dernier client puppet, à l'image des deux autres serveurs (même kickstart pour les trois). Depuis la machine virtuelle, je résoud bien le nom 'puppet' qui pointe vers la bonne machine. Lorsque l'agent se lance, un certificat est généré puis signé par le serveur. Mais lorsque le client tente de récupérer sa configuration, alors j'obtiens l'erreur SSL suivante :
[root@machine-1 ~]# puppet agent --test
err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server session ticket A: tlsv1 alert protocol version
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
err: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server session ticket A: tlsv1 alert protocol version

Dans les logs sur le serveur, j'ai le résultat suivant :
[Mon Apr 23 10:57:16 2012] [info] [client 192.168.1.51] SSL library error 1 in handshake (server medion.chatillon.betrancourt.net:8140)
[Mon Apr 23 10:57:16 2012] [info] SSL Library Error: 336130315 error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
[Mon Apr 23 10:57:16 2012] [info] [client 192.168.1.51] Connection closed to child 3 with abortive shutdown (server medion.chatillon.betrancourt.net:8140)

(medion étant mon serveur puppet)

Concernant l'architecture, ma machine virtuelle accède au réseau par du NAT géré manuellement par l'hyperviseur. En gros, j'ai un bridge sur l'hyperviseur, qui n'est relié a aucune carte réseau physique. Des règles iptables se chargent alors de transférer le trafic dans un sens ou dans l'autre.

Petit détail qui a peut-être son importance, lorsque je me connecte depuis un tout autre poste directement en SSH à la machine virtuelle, j'obtiens régulièrement l'erreur suivante :
Bad packet length XXXXX.
Disconnecting: Packet corrupt

Cette erreur est systématique lorsque je lance vim par exemple. Peut-être que du coup ce phénomène se reproduit pendant le handshake SSL, ce qui invalide la connexion… En me documentant sur cette erreur, je tombe sur de vieux tickets avec des anomalies résolues, mais rien de bien concret pour mon cas…

J'ai tout de même tenté une connexion manuelle avec le client SSL, et voici le résultat que j'obtiens :
[root@machine-1 ~]# openssl s_client -host puppet -port 8140 -cert /var/lib/puppet/ssl/certs/machine-1.test.betrancourt.net.pem -key /var/lib/puppet/ssl/private_keys/machine-1.test.betrancourt.net.pem -CAfile /var/lib/puppet/ssl/certs/ca.pem
CONNECTED(00000003)
depth=1 CN = Puppet CA: medion.chatillon.betrancourt.net
verify return:1
depth=0 CN = medion.chatillon.betrancourt.net
verify return:1
139955751876424:error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version:s3_pkt.c:1193:SSL alert number 70
139955751876424:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
---
Certificate chain
0 s:/CN=medion.chatillon.betrancourt.net
i:/CN=Puppet CA: medion.chatillon.betrancourt.net
1 s:/CN=Puppet CA: medion.chatillon.betrancourt.net
i:/CN=Puppet CA: medion.chatillon.betrancourt.net
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFzzCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADA2MTQwMgYDVQQDDCtQdXBw
ZXQgQ0E6IG1lZGlvbi5jaGF0aWxsb24uYmV0cmFuY291cnQubmV0MB4XDTEyMDQw
NTIxMDM1M1oXDTE3MDQwNTIxMDM1M1owKzEpMCcGA1UEAwwgbWVkaW9uLmNoYXRp
bGxvbi5iZXRyYW5jb3VydC5uZXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQDVMn0tmKnx+PaRYHfljncl5S5DveLHujumOFqW+eTQt3ZfkDpb9RiDfwhU
+7jEjeMqBxZkhCKzhE61HG8waxFquoQxc1JYhdWOW2tNXNdmjyDCw04ShQjYoNzI
VLzRLOCgqT2xNrux7gvyVGANhgNZGjc6d4sRJXWOCLOJ499CHgrHT6k1xLMXArEL
IF+jAb4ewF0egpxWYY17KO/YIvB3jA44tiQXituZYHUEqB/JRWuItcCW9JwSU6FP
L760HMfaKvIRBb1tK9oZAroF/1woY4p11pubSka2qGPR8TvMrhUwG0z8iFNGM/tG
JXgqyAXgvulHLBQVzGneACgtoUiWsXdse8pejmywDG34C8wrCeYdsPrIjpygYGHG
M9Bbx38y65r0s3QNk9igyYwVkZOMQ5fQ8Ky31GTVgOt6lRVpezsxC2PIFo3NG0w+
4Cyd+2kv09mjdccwa1870gfjzsOLR992/xQ6UUPLOV96oa/e5l6qW+vK6bBBrlfe
cjSJ+nOJiXtKJFdgNiHSLtmRVqChkNhGkCzPdpZ8BSWDgmPcYZJdOh4I0h50UQmh
iRJd0AGdMaUDmYiD3I001bn5T7x1u7zB67B5aAZWK8ZrLSSXGGX6qXGFU1QMKYn3
UPZmOefXYdSl1kTNgQwjcit0F5CGTwCKzjWJWLsFxY60yi6zWQIDAQABo4HyMIHv
MCAGA1UdJQEB/wQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUUyL7
PST1PBhfrA52ZuRUXj4n5bMwNwYJYIZIAYb4QgENBCoWKFB1cHBldCBSdWJ5L09w
ZW5TU0wgSW50ZXJuYWwgQ2VydGlmaWNhdGUwDgYDVR0PAQH/BAQDAgWgMFUGA1Ud
EQROMEyCIG1lZGlvbi5jaGF0aWxsb24uYmV0cmFuY291cnQubmV0ggZwdXBwZXSC
IHB1cHBldC5jaGF0aWxsb24uYmV0cmFuY291cnQubmV0MAwGA1UdEwEB/wQCMAAw
DQYJKoZIhvcNAQEFBQADggIBAJkm4iLVrhBEJoYyt7n5QYj6NRgnJHAsvhN1slkD
geg9Ivfs3OykQSVvD3En5GeNdf1wkSPrJTJ4s3zpjn5COBt1cJautXnjz2Po/UC2
TS0ePfBSmwOkZ2RboSS2mwQDrJrcVeoTzy108PqpGQTWaDjHK+D/EkCtSSn8t+is
ZkPDvFh8mCiEIF9at9QkvtHE37y2wec3isUV0kHphrYqFcakuBGWhld+dlCT1QN+
38f1MlJYYNZoX6R84kgmsefNJV5JJx1ST2xsO+DjvgWZLZt8cLK7A1kSzH33nzt+
PAItuMIJGik57SALWtoEeGT7D9pjR0ZDv3S3cIeWK1Xx4GPqVPSPr6ei4CXiRc21
NR9+7I064EGL1Rqn+CrxfKOHmCzDnN+IUJJ8Kz2FtTUln3GNrv9pX0Qbsue+eS2u
lqNXxP62kmtyiglj6HpWxB1c1x72pZWPYdAj1tqzNOzHuWfh/5+u20avbMBOkr/d
tikBlZ+G2xCpnpcRyQsru9Cas0DbzulPXRkMflLx8ZY5fS+OUVMxXhY+hojz9UhU
ie4sXjXZnnm6E4nkfp8tOelLbo14U/lsLchfjwvQ9eu5DN3Xt0ravrDhl65/Wpeq
pVwq8yv95Ut+BHl3jCG5dNfBZJOhgvM1q3Qpp7a2yWa5bcI+WhLmND9IKmEzejC2
ngam
-----END CERTIFICATE-----
subject=/CN=medion.chatillon.betrancourt.net
issuer=/CN=Puppet CA: medion.chatillon.betrancourt.net
---
Acceptable client certificate CA names
/CN=Puppet CA: medion.chatillon.betrancourt.net
---
SSL handshake has read 3820 bytes and written 3523 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: zlib compression
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID:
Session-ID-ctx:
Master-Key: 68A123432337BB7681FF3BFD044BFADF910991C18E673EE250880681704838A01B7C497D85239E313707E35ACB382952
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Compression: 1 (zlib compression)
Start Time: 1335164592
Timeout : 300 (sec)
Verify return code: 0 (ok)
---

Cela fait un gros post, mais au moins, je pense qu'il contient le maximum d'informations nécessaires.

  • # résolu...

    Posté par  (site web personnel) . Évalué à 1.

    Après plus d'une semaine de recherche, j'ai finalement réussi par trouver une solution…

    La carte réseau de la machine virtuelle est configurée pour utiliser virtio. Apparemment, il faut désactiver quelques options pour que la connexion soit OK.

    Après exécution de la commande suivante : ethtool -K eth0 tx off sg off tso off gso off (sur chacune des interfaces de la machine virtuelle), tout rentre dans l'ordre…

    Cela servira peut-être à d'autres :)

    • [^] # Re: résolu...

      Posté par  . Évalué à 3.

      penses à executer cette commande en post-up de tes interfaces
      sinon au prochain reboot, tu vas te poser la question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.