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 !
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. |
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…
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