Votre société de services en logiciels libres

Certification Amazon Web Services

9 janvier 2017   

Solutions Architect-Associate

Forts de plusieurs années de pratique sur le Cloud AWS, nous avons obtenu cette la certification AWS Certified – Solutions Architect – Associate.

N’hésitez pas à nous consulter pour vos projets Cloud : nous vous aiderons à tirer parti du meilleur des services AWS, pour une architecture souple, redondante, dimensionnable, au meilleur coût !

Linux Mag n°198 – Stockage de données temps-réel avec InfluxDB

3 novembre 2016   
lm198 Ce mois-ci, nous vous faisons découvrir InfluxDB, un SGBD noSQL (c’est la mode !), destiné à stocker et rendre des données temps-réels. Facile d’utilisation, performant, écrit en Go (encore un !), nous l’utilisons avec succès sur un projet IoT.

 

 

Linux Mag n°192 – Cluster Galera avec MySQL/MariaDB

25 mars 2016   
linuxmag-192 Nous signons ce mois-ci un article qui pose les bases pour réaliser un cluster actif/actif avec MySQL et le mécanisme de réplication de Galera.

Pour que SSHD aille chercher les clés publiques dans un annuaire LDAP…

15 janvier 2016   
Pour que SSHD aille chercher les clés publiques dans un annuaire LDAP…

L’authentification par clé publique est un « must » de sshd par rapport à l’utilisation des mots de passe. Or, bien souvent, les utilisateurs sont définis dans un annuaire LDAP. Le problème devient alors : où stocker les clés publiques des utilisateurs ?

Si la réponse est : dans chaque répertoire de tous les utilisateurs, sur toutes les machines auxquelles ils ont accès, je gage que vous devrez utiliser des outils de déploiement pour éviter cette tâche fastidieuse…

Mais puisque vous avez un annuaire : pourquoi ne pas stocker les clés dans l’annuaire ?

Cette opération est réalisée en 3 étapes :

Enrichir le schéma de l’annuaire

avec OpenLDAP, il fut ajouter la configuration :

dn: cn=openssh-lpk,cn=schema,cn=config
 objectClass: olcSchemaConfig
 cn: openssh-lpk
 olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
 DESC 'MANDATORY: OpenSSH Public key'
 EQUALITY octetStringMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
 olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
 DESC 'MANDATORY: OpenSSH LPK objectclass'
 MAY ( sshPublicKey $ uid )
 )

Configurer le démon sshd pour qu’il récupère indirectement les clés publiques
Pour cela, ajoutez les deux lignes suivantes dans /etc/ssh/sshd_config :

AuthorizedKeysCommand /etc/ssh/ldap-auth-keys.sh
AuthorizedKeysCommandUser nobody

Vérifiez que l’utilisateur « nobody » existe.

Lors d’une authentification par clé publique, sshd va lancer la commande /etc/ssh/ldap-auth-keys.sh en lui passant le nom de l’utilisateur en paramètre. Cette commande doit retourner la ou les clés publiques associées à l’utilisateur dans l’annuaire, s’il y en a.

Ecrire la commande /etc/ssh/ldap-auth-keys.sh

Le script adéquat peut contenir la commande suivante :

ldapsearch -x '(&(objectClass=posixAccount)(uid='"$1"'))' 'sshPublicKey' |
sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/\n *//g;s/sshPublicKey: //gp'

Maintenant les tests !

Conservez une connexion ssh active sur le serveur et faite un « reload » : si le démon ne redémarre pas, faites un « start » pour avoir l’erreur sur l’écran…

Créer un dépôt GIT à partir de sources existants

18 octobre 2015   

Je n’applique pas toujours les « bonnes » pratiques concernant la mise en gestion de configuration et il m’arrive souvent de créer un dépôt GIT après avoir validé une maquette…et j’oublie toujours les commandes qui me permettent de créer le nouveau dépôt à partir des sources pré-existants. Alors, pour ne plus oublier, je les liste ici.

Je suppose que tous les sources et fichiers à mettre dans GIT sont dans le répertoire ./monappli. Les commandes à exécuter sont :

1.Initialisation du dépôt local :

$ cd ./monapp
$ git init

2.A ce moment là, nous vous suggérons de créer le fichier .gitignore

3.On ajoute les fichiers dans le dépôt local :

$ git add .

4.Puis on les « commit » :

$ git commit -m "commit initial"

5.Au besoin, on définit le dépôt GIT distant :

$ git remote add origin URL_du_dépôt_distant

6.Enfin, on met à jour le dépôt distant à partir du dépôt local :

$ git push origin master