All posts filed under “Non classé

Découverte Rpyc

Il y a peu de temps j’ai découvert RPYC https://rpyc.readthedocs.io/en/latest/

L’outil est pratique pour piloter des machines a distance a travers ssh.

Pourquoi ne pas utiliser Ansible  ?

Disons que c’est une méthode différente.
Ansible est très pratique (je l’utilise parfois), beaucoup de module et grosse communauté mais je préférerais écrire du python pour faire des boucle, des while etc, et je dois bien dire que je ne suis pas très fan du yaml …

RPYC permet de faire discuter deux connexion python ensemble, par exemple, je suis capable de créer une liste (python) sur un serveur1, de la récupérer sur mon poste (python local) pour la renvoyer via RPYC sur une connexion python du serveur2

Je découvre donc les possibilités, voici un bout de code d’exemple :

[pastacode lang= »python » manual= »import%20rpyc%0Afrom%20rpyc.utils.classic%20import%20upload_package%0Afrom%20rpyc.utils.zerodeploy%20import%20MultiServerDeployment%0Afrom%20rpyc.utils.zerodeploy%20import%20DeployedServer%0Afrom%20plumbum%20import%20SshMachine%0Aimport%20ldap3%0Aimport%20pyasn1%0A%0A%23%20create%20the%20deployment%0A%0Alist_host%3D%5B’mysrv.domain.lan’%5D%0Alist_ssh%3D%5B%5D%0A%0Afor%20f%20in%20list_host%3A%0A%20%20%20%20mach%20%3D%20SshMachine(f%2C%20user%3D%22root%22%2C%20keyfile%3D%22%2Fhome%2Fuser%2F.ssh%2Fid_ed25519%22%2Cport%3D%2222%22)%0A%20%20%20%20list_ssh.append(mach)%0A%0A%0Adef%20get_etc_file()%3A%0A%20%20%20%20import%20glob%0A%20%20%20%20allfile%20%3D%20%5B%5D%0A%20%20%20%20for%20i%20in%20glob.glob(‘%2Fetc%2F*’)%3A%0A%20%20%20%20%20%20%20%20allfile.append(i)%0A%20%20%20%20return%20allfile%0A%0Adef%20get_ldap_version()%3A%0A%20%20%20%20import%20ldap3%0A%20%20%20%20return%20ldap3.__version__%0A%0A%0Adep%20%3D%20MultiServerDeployment(list_ssh)%0Aconns%20%3D%20dep.classic_connect_all()%0A%0Afor%20conn%20in%20conns%3A%0A%0A%20%20%20%20run_get_etc_file%20%3D%20conn.teleport(get_etc_file)%0A%20%20%20%20print(run_get_etc_file())%0A%0A%20%20%20%20rpyc.classic.upload_package(conn%2C%20ldap3)%0A%20%20%20%20rpyc.classic.upload_package(conn%2C%20pyasn1)%0A%20%20%20%20run_get_ldap_version%20%3D%20conn.teleport(get_ldap_version)%0A%0A%20%20%20%20print(run_get_ldap_version())%0A » message= »Exemple rpyc » highlight= » » provider= »manual »/]

Dans l’exemple ici on a quelque chose d’intéressant, j’utilise rpyc.classic.upload_package, en gros les serveurs sur lequel je me connecte n’ont pas le paquet ldap3, mais il est installé sur ma machine, du coup avec rpyc je le pousse dans la connexion python instancier avec rpyc, (je le l’install pas sur le serveur !), et du coup il est utilisable. teleport lui me permet d’envoyer une fonction sur le python distant pour ensuite l’executer sur le distant. J’aime bien l’idée.

Je découvre l’outil et je vois un potentiel intéressant. Attention je n’ai pas fais de réel test en prod ni d’utilisation intensive, mais j’aime bien l’idée.

 

Samba4 Password Synchro

Bonjour a tous

Petit article pour vous annoncer que je me suis enfin re-penché sur la synchronisation des mots de passe avec samba4:

Synchro des mots de passe avec google apps : https://github.com/sfonteneau/samba4-gaps

C’est clairement un dérivé de la version de baboons. A la différence qu’il ne nécessite plus l’activation de « store-plaintext » dans samba4.
Il demande en revanche l’activation de CryptSHA256 in smb.conf

En comparaison avec le script de baboons, le nouveau script le renvoi pas tous les mot de passe au redémarrage de gaps puisque il vérifie si la valeur de pwdlastset a changé depuis le dernier envoi. Ce script peut clairement être modifé pour d’autre application acceptant CryptSHA256 ou CryptSHA512.

Je me suis également penché sur sur l’envoie de mot de passe a des applications qui ne supporte pas le CryptSHA256 ou CryptSHA512, comme Windows Azure …

La seul solution dans ce cas est de stocké le mot de passe de l’utilisateur en clair et donc d’utiliser le mode « store-plaintext » dans active directory.

J’ai donc fais un script qui permet de récupérer les mot de passe en clair des utilisateurs et de les envoyés dans un script, puis une fois traité par celui-ci, le mot de passe en clair est supprimé: https://github.com/sfonteneau/samba4-sync-password

Dans le cas de windows azure le script précédent peut appeler un script de changement de mot de passe dans windows azure :  https://github.com/sfonteneau/send_password_in_azure

Une fois le mot de passe correctement envoyé à windows azure celui-ci sera supprimé de samba.

En espérant que cela peut vous être utile !

 

 

 

 

 

comment 0

Gitea – Solution simple pour faire du versioning

Article rapide pour vous présenter rapidement un produit que je découvre en ce moment: Gitea.

Gitea c’est quoi : c’est un service Git auto-hébergé sans prise de tête

Pourquoi pas gitlab ? Il est vrais certes que gitlab est plus complet. voir ici

Mais gitea a un gros avantage, sa faible très faible consommation CPU et RAM.

Je trouve également gitea plus réactif. Bref un outils très efficace si vous avez du code/doc a versionner.

PS: Pour les windosien, le gitea fonctionne aussi sous windows !

Seafile, une solution différente

Récemment, je vous ai parlé de nextcloud. Aujourd’hui je vous parle de seafiles

Seafile fonctionne différemment, sa vision est différente. Là où nextcloud va proposer un system de plugin et essayer d’être le plus polyvalent possible, Seafile va se concentrer sur la partie la plus importante: l’hébergement de fichier.

Seafile se différencie par sa façon dont sont stockée les données. Comme l’indique ce document, le fonctionnement se rapproche du fonctionnement GIT

Seafile stock en block, l’avantage de ce type de fonctionnement, c’est que c’est très efficace. En effet par exemple sur un Document libreoffice de 50mo, si ce document est édité, tous le document se sera pas uploadé. Seafile se débrouillera avec les bloc pour ne synchroniser que la différence. Ce mode de fonctionnement a l’avantage de rendre la synchronisation plus rapide entre le client et le serveur mais également d’optimiser la place côter serveur pour la partie versionning.

Seafile a aussi un avantage avec le « Virtual Drive Clients »

Le Virtual Drive Client permet d’installer sur le client un disque dur virtuel seafile sur son ordinateur.

L’arborescence apparaît ainsi que les fichiers.  Le contenu du fichier sera téléchargé lorsque vous ouvrirez un fichier. Le fichier récemment ouvert sera mis en cache sur votre disque local. Tous les fichiers mis en cache seront marqués d’une coche verte. Cela évite de télécharger tout un dossier.

Seafile gère également très bien Collabora et onlyoffice

Vous ne pourrez pas en revanche connecter celui-ci a un storage externe a la manière de nextcloud avec un serveur de fichiers de cifs. Seafile est plus dans l’optique de remplacer celui-ci.

Le webdav est dispo !

Bref, Seafile et nextcloud sont deux solutions différentes. On sent bien que les deux solution on été pensées de manière différente. Au niveau performance (coter client de synchronisation) seafile l’emporte. Au niveau interopérabilité et interface web, nextcloud l’emporte.

Bref, faire votre choix 😀

Nextcloud et Outils d’édition collaborative auto hebergée

Vous connaissez tous « google doc » ou « office online » ?

Ce genre d’outils est très prisé en environnement scolaire pour travailler avec des élèves ! En effet un groupe d’élèves qui travaille sur le même exposé peut travailler ensemble sur le même document avec chacun son ordinateur. C’est très puissant.

Il faut savoir que ce genre d’outils (google apps ou office 365) est gratuit en établissement scolaire. Si vous êtes une entreprise, le prix va rapidement augmenter. Egalement, l’idée de ne pas vraiment savoir où sont stockées les données est problématique pour la confidentialité. En plus, il vous faut avoir une connexion internet correcte pour que l’ensemble soit utilisable. Bref, il semble important de proposer une alternative !

J’avais testé il y a maintenant 2 ans quelques outils de collaboration auto-hébergée. A l’époque les produits ne m’avaient pas convaincu plus que ça.

Je profite donc des vacances pour voir les évolutions et re-tester les différents outils open-source du marché.

  • Libreoffice online
  • Onlyoffice

J’ai donc remonté un petit nextcloud rapide pour tester les deux solutions.

Le plus simple ensuite pour mettre en place les deux solutions c’est d’utiliser docker. C’est simple, rapide, efficace et on se fait pas chier pour les mise à jour.

Rien n’est stocké sur onlyoffice ou libreoffice online, l’application n’est qu’un éditeur, rien de plus !

Premier test; très concluant, très réactif ! Les deux solutions fonctionnent vraiment bien.

Onlyoffice semble embarquer pas mal de fonctionnalités le produit est très abouti, rien à envier a google doc ou à word online, voir même il est mieux ! Très très bonne surprise ! A tester rapidement !

Libreoffice online fonctionne très bien également ! Moins de fonctionnalités mais répond très bien a mes besoin ! Faire du doc, du calc, du ppt.

Onlyoffice dans sa version gratuite lui par contre a une limite à 20 utilisateurs simultanée. Au delà, il vous faudra prendre la version payante.

En soit, le logiciel est open source et le code ouvert, rien ne vous empêche d’aller modifier le code pour faire sauter l’avertissement… mais bien entendue, il ne faut pas le faire, il faut encourager financièrement le logiciel pour qu’il évolue et que les dev puissent vivre de leur travail ! Pour libreoffice online il y a égallement une limite ( vous pouvez égallement recompiler pour faire sauter cette limite)

A savoir qu’une réduction de -70% est proposée au école pour l’offre auto-hébergée et gratuite pour l’offre cloud !

Bref, vous pouvez proposer a vos utilisateurs de reprendre la main sur leurs données ! A eux d’en décider !

 

Subtilités technique rencontrée, et retour d’expérience.

Dans mes test j’ai installée les deux solution, onlyoffice et libreoffice online pour tester. Le tout couplée a un nextcloud

Dans les gros bonus; nextcloud est capable de monter des partage cifs pour les utilisateur! Gros avantage donc car on peut monter des partages windows (cifs) directement dans nextcloud, le plus fort dans l’histoire c’est que le tout est synchronisable avec le client lourd nextcloud sans pour autant être stockée sur le serveur nextcloud !

Egalement d’autre « external storage » comme google drive, Amazon, dropbox, ftp, sftp, webdav, openstack object … sont dispo !

Nextcloud peut aussi faire de la fédération si vous avez plusieurs établissement !

Attention par contre lorsque vous faite de l’édition collaborative avec ce genre de partage (car oui c’est possible) ! Il faut bien comprendre que si il y a écriture concurrentiel  entre le onlyoffice le libreoffice online, le client lourd et le fichier sur le partage cifs, c’est le dernier qui a parlée qui a raison ! Pas de versioning sur les external storage ! C’est une mécanique technique a comprendre mais ça va encore.

La ou cela peut devenir tordu c’est si vous faire de l’édition collaborative sur un partage cifs mais que les différents utilisateurs sont connectée au partage cifs avec un identifiant différent. (l’option identifiant et mot de passe de la session en cour lors de la configuration cifs).
Du coup finalement chaque utilisateur ouvre son propre editeur au niveau du libreoffice online ou du onlyoffice et donc pas d’édition collaborative possible le dernier qui enregistre a raison et écrase les autre changement.

Pour contourner le problème j’ai créer un identifiant « next-cloud-share » pour les partage problématique et je connecte l’external storage en fournissant celui-ci.

Subtilités a comprendre donc …

Autre bonus du nextcloud:

Nextcloud emarque un store d’application. Dans les application interessante :

  • Draw.io
  • Client imap/smtp
  • Client caldev
  • Client cardev
  • Outils d’apelle vidéo
  • Liste de Tache
  • Outils d’organisation …

Bref très bon produit !

comment 0

Self Service Password, google apps, office 365 et check password script

change-your-password-623x427

Un petit article utile pour samba et Windows Active Directory

Dans mon établissement nous avons de plus en plus de classe portable (les élèves apporte leur propre pc portable).

Les identifiants et mot de passe pour accéder au wifi, owncloud, etc sont ceux de l’AD, si l’utilisateur veut changer son mot de passe, il doit se connecter a un pc du domaine pour le changer, pas pratique.

J’ai donc mis en place « Self Service Password »:
http://ltb-project.org/wiki/documentation/self-service-password

C’est une page web qui permet de changer son mot de passe :

ssp_change_nooptions

 

Mais cet interface permet donc d’aller encore plus loin et pourrait bien vous changer la vie. En cas d’oublie de mot de passe, le système peut proposer plusieurs méthode pour le réinitialiser:

 

  • Reset by questions
  • Reset by mail challenge (token sent by mail)
  • Reset by SMS (trough external Email 2 SMS service)

Quelques fonctions supplémentaire sont notamment disponible, notamment le fait de gérer plus finement la politique de mot de passe.

Un email peut également être envoyée après un changement de mot de passe afin de détecter des comportements malveillant.

Une dernière fonctionnalités est très intéressante : le posthock

Le posthook est un script où est envoyé le nom d’utilisateur et le mot de passe après le changement de mot de passe.

Je profite donc du posthock pour envoyer le nouveau mot de passe à mon google apps et mon office 365 avec samba4.

En effet, pour samba4, avant, j’envoyai les mot de passe via ce genre de script :
https://github.com/baboons/samba4-gaps

Mais ce genre de script me force à stocker les mot de passe de façon réversible dans l’AD, et je n’aime pas trop ça…

L’autre méthode que j’ai envisager pour  samba est d’utiliser le
« check password script », mais malheureusement cela ne fonctionne plus avec samba4 : https://lists.samba.org/archive/samba/2016-June/200293.html

Edit 08/11/2016 :
Le « check password script » semble être pris en charge dans la version 4.5 de samba. Malheureusement je n’ai pas trouvée de solution pour récupérer le nom d’utilisateur :-/

Ce genre de système est quand même utile avec un active directory, en effet le système de synchronisation  des mot de passe office 365 synchronise les mot de passe toute les 15 minute il me semble. Avec les script office 365 que j’utilise, le changement est instantanée.

Voici donc mon script posthock pour google Apps et office 365:
https://github.com/sfonteneau/script_modify_password_googleapps_and_office365/

Attention ! Pour que le script fonctionne, la politique de complexités de mot de passe doit être sur 8 caractère minimum et 16 maximum !

J’espère un jour que le « check password script » re-fonctionne a nouveau

 

Edit 2019 :

Voir : https://blog.lesfourmisduweb.org/samba4-password-synchro/