Les Zeuils de Neuneuil

 


mercredi 26 août 2009

Automatiser l'administration de votre serveur Ubuntu par ssh - partie 2


Suite de l'article : Automatiser l'administration de votre serveur Ubuntu par ssh - partie 1

N.B. : je ne détaille pas certaines choses, comme le transfert du fichier de la clé publique par exemple, car je considère que si vous appliquez ce tutoriel, vous possédez déjà certaines connaissances avancées. Si ce n'est pas le cas, je vous conseille de ne pas aller plus loin car les manipulations ci-dessous peuvent compromettre la sécurité de vos systèmes si elles sont mal appliquées ou mal comprises.



L'attente fut longue, mais voilà enfin la suite et fin de ce tutoriel ! Après avoir vu comment simplifier l'administration de ses machines par ssh via l'utilisation de scripts shell, nous allons voir comment aller encore plus loin en utilisant l'authentification par clés pour ssh.

Les identités SSH


Les identités SSH sont ce qui permet de prouver votre identité à un serveur SSH. Une identité est formée de deux parties, la clé privée et la clé publique, elles forment une paire de clés.

La clé privée permet à un client SSH de prouver son identité au serveur SSH auquel il veut se connecter. Le serveur SSH examine alors la clé publique correspondante qu'il a en sa possession, et, par un test cryptographique, si les clés correspondent, la connexion réussit.

La clée privée doit absoluement être gardée secrète. Une personne en possession de cette clé privée pourrait se connecter à vos comptes aussi facilement que vous.

La clé publique n'a pas besoin d'être secrète, elle ne peut pas servir à pénétrer par effraction dans votre compte.

Génération de son identité


Rien de plus simple, tapez dans un terminal :

ssh-keygen -t dsa

Le programme vous demande à quel endroit enregistrer la clé, laissez le choix par défaut.
Ensuite on vous demande une passphrase, il s'agit d'un mot de passe protégeant la clé privée. Pour pouvoir vous logguer sans avoir à rentrer de mot de passe, ne rentrez rien, validez par la touche entrée (deux fois). Nous verrons plus loin comment mieux sécuriser celà.
La clé privée est donc générée sous ~/.ssh/id_dsa, et la clé publique sous ~/.ssh/id_dsa.pub.

Envoi de la clé publique sur le serveur SSH


Tout d'abord, envoyez le fichier ~/.ssh/id_dsa.pub sur le serveur distant, par exemple par FTP, dans le répertoire racine de l'utilisateur sur lequel vous voulez vous connecter sur le serveur.

Il faut ensuite rentrer cette clé dans le fichier ~/.ssh/authorized_keys sur le serveur. Connectez-vous en ssh par la manière traditionnelle dessus, et tapez la commande suivante :

cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

Puis effacez le fichier de clé publique transféré précédemment par le moyen de votre choix : rm ~/id_dsa.pub

Test de connexion


Allez, hop, on peut tester la connexion et vérifier que ssh ne nous demande plus de mot de passe : ssh user@machine.com

Normalement, ça fonctionne sans problème si vous avez bien suivi les instructions ci-dessus !

Variante avec passphrase et utilisation de ssh-agent


Si quelqu'un vous vole votre clé privée, comme elle ne possède pas de passphrase la protégeant, le voleur pourra l'utiliser pour se connecter sur votre serveur SSH. Pour résoudre ce problème, il vous suffit de donner une passphrase au moment de la génération de votre identité (ssh-keygen -t dsa). Je vous conseille de mettre une passphrase assez longue, en utilisant des moyens mémotechniques comme les premières lettres de chaque mot d'une longue phrase, ou en supprimant les voyelles, et en mixant les majuscules/minuscules, chiffres et caractères spéciaux.

Le point négatif de la passphrase est qu'il faut la fournir pour déverrouiller la clé privée avant la connexion ssh, on revient donc en arrière au niveau ergonomique. C'est là que le programme ssh-agent va nous aider !

Et la magie d'Ubuntu et Gnome opère : gnome-keyring intègre ssh-agent, normalement c'est activé par défaut, en tout cas dans la version 9.04 d'Ubuntu. Pour faire simple, redémarrer votre pc et lors de la première connexion au serveur SSH, la passphrase vous sera demandée via une fenêtre graphique pour la seule et unique fois (jusqu'au prochain reboot de votre PC, bien sur). C'est un moindre mal : auparavant il fallait donner un mot de passe à chaque connexion ssh, désormais il ne faut plus donner qu'une seule fois une passphrase.

Conclusion


Certains vont encore plus loin dans l'utilisation des identités SSH. Pour sécuriser au maximum l'accès à certains serveurs, l'authentification par mot de passe est désactivé, il faut obligatoirement utiliser une paire de clés SSH. Ca rajoute des contraintes, mais c'est le prix de la sécurité.
Associé avec la création de scripts comme on l'a vu dans le premier article, l'utilisation de clés SSH peut simplifier énormément la vie. Mais il faut rester prudent dans l'utilisation de ces techniques car une mauvaise utilisation pourrait compromettre la sécurité de vos systèmes, en particulier en cas de vol de votre clé privée.

lundi 27 avril 2009

Trouver et afficher son IP publique

Une petite astuce très simple pour trouver et afficher son ip Publique, par exemple dans le prompt de son shell.

Il suffit d'utiliser la commande suivante :

wget -O - -q myip.dk |grep '"Box"' | egrep -o '0-9.+'

Sous Ubuntu, wget est installé par défaut donc ça devrait marcher tout seul !

jeudi 19 mars 2009

Quelques commandes utiles...

A nouveau un billet façon "fiche pratique" pour retrouver facilement quelques commandes qu'on utilise pas souvent mais qui sont bien pratiques quand même.

  • Pour connaitre sa version d'Ubuntu :


lsb_release

vous répond :

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 8.10
Release:	8.10
Codename:	intrepid


  • Manipuler les modules chargés :


lsmod liste les modules chargés.
rmmod nom_du_module "décharge" le module.
modprobe nom_du_module "charge" le module.

  • Lister les fichiers ouverts :


lsof liste tout les fichiers ouverts, par quel processus, etc... Utile quand vous ne pouvez pas supprimer un fichier parce qu'un programme le bloque (par exemple).

  • Manager les services :


sudo sysv-rc-conf à installer par sudo apt-get install sysv-rc-conf, utilisation intuitive.
sudo update-rc.d -f nom_service remove supprime un service de la liste de démarrage.
sudo update-rc.d nom_service defaults rajoute un service à la liste de démarrage.

Et vous, vous avez d'autres commandes utiles ?

dimanche 15 mars 2009

Surveiller l'activité de votre disque dur sous Ubuntu

A force d'entendre gratter mon disque dur alors qu'il n'était pas censé faire grand-chose, j'ai cherché le moyen de trouver quel processus faisait des siennes.

Voilà le résultat de mes recherches : sar et iotop.

sar permet d'observer l'activité de vos disques durs et bien plus encore : le nombre de fichiers ouverts sur votre système, l'activité mémoire, réseau, etc...
Son installation est simple :

sudo apt-get install atsar

et son utilisation également. Pour l'activité des disques :

sar -d 1 5

"-d" signifie que l'on veut qu'il affiche l'activité des disques. Le premier chiffre correspond à l'intervalle entre deux mesures, et le deuxième chiffre le nombre de mesures que l'on souhaite prendre.

Le résultat est le suivant :



Cependant, je ne sais toujours pas quel processus génère cette activité ! C'est là qu'intervient iotop. C'est parti pour l'installation :

sudo apt-get install iotop

Et pour l'utilisation, c'est encore plus simple que sar :

iotop

Et on obtient :



On quitte en tapant q.

Ici, il est clair que c'est Nautilus qui fait des siennes (en fait il s'agit d'une copie de fichiers que j'ai lancé afin de créer un peu d'activité disque).

Facile, et utile, que demander de plus ?

vendredi 3 octobre 2008

Open Pandora, la console des nerds

Vous êtes ce qu'on appelle un nerd, un fou de technologie, un "no-life", ou tout simplement un fan de jeux vidéos et/ou de logiciels libres ?
Voilà une console portable "open", openPandora.
Allez voir, c'est plutôt intéressant et devrait titiller votre curiosité même si vous n'êtes pas des nerds ;)

Open Pandora, la console des nerds - Forums GeekZone