Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Astuces

Fil des billets

samedi, 17 mars 2012

Installation de QEMU/KVM geré par Libvirt sous Archlinux

Bonjour,
virtualisation

Un petit billet pour coucher sur l'écran la procédure d'installation de QEMU-KVM allié à une GUI virt-manager sous ArchLinux.

QEMU est un logiciel de virtualisation fonctionnant sous GNU/Linux qui permet d'émuler un ou plusieurs systèmes d'exploitations sur votre ordinateur hôte.

KVM est un fork de QEMU apportant le support du module KVM qui améliore sensiblement la vitesse de virtualisation. Même si dans cet article, nous allons utiliser à proprement parler le logiciel KVM, j'utiliserai quand même l’appellation QEMU/KVM.

D'abord, une petite vérification de la capacité de votre processeur à utiliser correctement le module KVM :

egrep '^flags.*(vmx|svm)' /proc/cpuinfo >/dev/null && echo OK || echo KO

Si vous avez OK, vous pouvez passer aux étapes suivantes, sinon il faudra vous contenter de QEMU tout seul.

Voici les paquets dont nous avons besoin et leur intérêts :

  • qemu-kvm : le logiciel qui va vous permettre d'émuler vos machines.
  • virt-manager : une GUI pour gérer vos machines virtuelles.
  • dnsmasq : Forwader DNS et serveur DHCP léger, indispensable pour fournir du réseau à vos machines émulées.
  • virtinst : CLI permettant de gérer le provisionning des machines virtuels.
  • libvirt : API pour dialoguer avec vos machines virtuelles (openvz,kvm,qemu,virtualbox,xen,etc..)

Maintenant, il suffit de les installer avec votre gestionnaire de paquet favoris :

yaourt -Sy qemu-kvm virt-manager dnsmasq virtinst libvirt

Afin de pouvoir utiliser notre application en tant qu'utilisateur, il est necessaire de vous mettre dans le groupe KVM :

sudo usermod martin -aG kvm

Pour ceux qui ont la chance de supporter le module KVM (cf ligne de commande plus haut), il est temps de le charger :

sudo modprobe -v kvm

Et selon la marque de votre processeur de charger également l'un des deux modules suivants :

sudo modprobe -v kvm_intel
sudo modprobe -v kvm_amd

Ensuite, il est necessaire de lancer le daemon vous permettant de communiquer avec vos machines virtuelles :

sudo /etc/rc.d/libvirtd start

Les paramétrages précédents ne sont valables que pour la session en cours. Aussi, pour éviter ces manipulations à chaque utilisation de votre solution de virtualisation, je vous conseille de modifier le rc.conf :

sudo nano /etc/rc.conf :
MODULES=(kvm kvm_amd ...)
DAEMONS=(libvirtd ...)

Ensuite, il vous suffit de lancer la commande pour pouvoir bénéficier de votre travail:

virt-manager

Pour plus d'information sur l'utilisation de l'outil en lui-même, je vous renvoie vers ce billet très complet de NicoLargo.

A tantôt tout le monde !

mardi, 21 février 2012

Paramètrages "avancés" de Midnight Commander

Bonjour,

Il y a trois mois dans cet l'article, je vous avais promis de vous donner deux trois astuces complémentaires.
Mon ordinateur de boulot fonctionnant sous Windows 7, je n'ai pas eu l'occasion de me replonger sur le merdier (mc).

Pourquoi maintenant me direz-vous ?
Parce que j'ai réussi à installer Archlinux sur un de mes PC de boulot. La chose n'a pas été aisée mais je ne rentrerai pas dans les détails aujourd'hui, un article est prévu pour vous décrire par le menu mes péripéties.
Tout ça pour dire que je suis bien content de pouvoir travailler sous Archlinux, cela me permet de tester rapidement les applications et configurations de ma (votre) distribution préférée.

Pour revenir au but du billet, voici quelques petites choses qui devraient vous permettre de vous sentir chez vous avec Midnight Commander.

Choisir ce qu'affiche Midnight Commander :
Par défaut, mc n'est peut être pas à votre goût, sachez que vous pouvez le configurer simplement grâce à un certain nombre de boite de dialogue. Voici les options que j'ai choisi pour l'affichage des fichiers.
Il faut activer le menu du haut (F9), puis choisir le menu contextuel Option (o) et sélectionner l'item Panel Options. La boite de dialogue ci-dessous vous permettra de cocher/décocher les options de votre choix à l'aide de la touche espace.
Dans notre cas, il suffit de décocher la ligne Show hidden files afin de ne plus afficher les fichiers cachés.
Décocher également l'affichage des fichiers backup.
Cocher la ligne Mix all files. Cela permet d'avoir un tri alphabétiques sur les fichiers/dossiers confondus.

MC Panel Option

Une recherche rapide dans un listing de fichiers :
Dans beaucoup d'explorateurs de fichiers, vous pouvez préselectionner un fichier en tapant ces initiales. Avec mc, la chose est possible.
La recherche d'un pattern s'effectue à l'aide du raccourci clavier Ctrl+s. Pour changer d’occurrence, il suffit de retaper Ctrl+s. Il est à noter que la recherche peut s'effectuer avec des jokers Bash (* ?), ce qui est plutôt agréable.

MC search pattern

C'est tout pour ce billet, Midnight Commander permet bien d'autres choses comme :

  • la copie en tâches de fond
  • la gestion de connexion smb,ftp, ssh
  • Regler le mode listage
  • Configurer les menu
  • Configurer les hotkeys
  • Configurer les raccourcis claviers
  • Configurer l'affichage de l'explorateur (deux panels, un panel, vertical, hortizontal ...)
  • Gestion du multi-ecran
  • Comparaison de fichiers
  • ....

Mais ce ne sont pas des fonctionnalités que j'utilise donc je ne rentrerai pas dans le détail. Sachez que cela existe et que si cela vous intéresse la documentation est là pour vous. En espérant, vous avoir fait découvrir quelque chose à travers ces deux billets.

Merci de votre lecture et de vos commentaires qui sont toujours les bienvenus.

La Pêche !!!

mercredi, 23 novembre 2011

Unable to find template : Un problème de thème ancien avec Dotclear

Hello, Aujourd'hui, un petit partage d'information rapide sur le moteur de mon blog.
Comme vous avez peut être pu le constater, mon blog a fonctionné dans des conditions dégradées depuis quelques jours.
Le problème vient d'être résolu avec succès grâce à la communauté (très) active de Dotclear. Encore un grand merci à eux !

L'anomalie pouvait se résumer de la manière suivante :
Tous les liens pointant sur les tags de mes articles n'étaient plus fonctionnels, du coup les gens venant du planet.archlinux.fr tombaient sur un joli message d'erreur indiquant :

Dotclear
Unable to find template
Something went wrong while loading template file for your blog.

Je pense que le soucis est survenu suite à ma mise à jour en version 2.4.

La solution ?
Puisque mon vieux thème BusinessBlog n'était plus compatible. Il a fallu que je crée un répertoire TPL dans le thème BusinessBlog et que je replace les fichiers HTML du thème dans le répertoire TPL.

Rien de bien sorcier donc, mais encore faut-il le savoir ! Maintenant, il n'y a plus de problème sur mon blog et je croise le bois :p pour les éviter.

La pêche !

mercredi, 12 octobre 2011

Gagnons de la place en étant localevore

Bonsoir,

Un petit billet rapide pour une astuce rapide. J'ai souvent entendu parler de supprimer les locales pour gagner de la place sur son système. Mais, je n'ai jamais creuser pour connaître leur emplacement et leur utilité dans le système. Je vais essayer de vous les définir avant de les tuer. C'est plus honnête.

Les locales, ça sert à quoi ?

Un rapide historique pour répondre à cette question :

Créé par des informaticiens américains, le système Unix était originellement destiné à des utilisateurs anglophones. La diffusion des systèmes de la famille Unix (dont GNU/Linux) vers des publics de langues et de cultures différentes a conduit leurs développeurs à introduire des paramètres régionaux (locale). Ces derniers permettent par exemple de fixer la langue d'affichage des messages, le format des dates ou des nombres. Les paramètres régionaux se présentent à l'utilisateur sous la forme de variables prédéfinies dont le nom commence par LC_.

Où sont les locales ? les locales ??

Ces différents dossiers et fichiers sont situées dans /usr/share/locale. Les locales pour chaque langues sont regroupées en sous repertoires. Sur mon ordinateur portable, ces locales ne prennent pas forcément beaucoup de place mais c'est toujours ça de pris.Baobab_locales

Extermination locales !

Pour ce faire, nous allons installer l'utilitaire localepurge depuis AUR. Ce logiciel automatise la suppression des locales qui ne nous sont pas utiles.

yaourt -S localepurge

Lors de cette compilation, rien à déclarer ;)

Il s'agit ensuite de dire à ce programme ce qui nous arrange de garder sur notre système. Nous allons donc éditer en root le fichier /etc/locale.nopurge :

MANDELETE
SHOWFREEDSPACE
VERBOSE
fr
fr_FR
fr_FR@euro
fr_FR.UTF-8

Et ensuite, étape la plus réjouissante, on extermine tout :

#localepurge

Sur mon ordinateur portable, j'ai gagné 200Mo, sur mon fixe 500Mo ! Cela peut être utile avant de faire des images systèmes ou autres sauvegardes.

I'll be back.

jeudi, 22 juillet 2010

Utiliser l'ami John avec tous ses coeurs

Bonjour,
jack.jpg

Thème du jour : Retrouver rapidement son mot de passe de GNU/Linux.

Rappel :

Les identifiants servant à se connecter à un système GNU/Linux sont stockés dans deux fichiers.
Le fichier texte /etc/passwd (appelé le fichier password), énumère tous les noms d'utilisateurs du système avec les informations qui leur sont associées (uid, gid, home, shell).
Le deuxième fichier /etc/shadow associe les noms d'utilisateurs à leurs mots de passes chiffrés en MD5.
L'algorithme MD5 (Message Digest 5) est une fonction de chiffrement qui permet de créer l'empreinte d'un fichier et de la vérifier.

Méthode :

Pour retrouver son mot de passe, il "suffit" donc d'essayer un ensemble de mot et de vérifier s'ils correspondent à l'empreinte MD5 qui est dans le fichier /etc/shadow.
L’embêtant c'est que les utilisateurs lambda n'ont pas accès au fichier /etc/shadow.
Si on utilise le programme login de notre système et que beaucoup d'essais sont invalidés, le système nous bloquera peut être (fail2ban).
Il faudra donc utiliser un livecd ou un autre système GNU/Linux afin de monter notre partition racine pour accéder aux fichiers voulus en tant que root.
Maintenant nous allons utiliser un programme qui va nous aider à retrouver la combinaison gagnante.

Il s'agit de John The Ripper pour plus d'informations sur son fonctionnement allez voir ce lien.

Utilisation classique :

Il nous suffit donc d'installer john puis de rassembler nos deux fichiers contenants les identifiants. John nous fournit l'outil unshadow pour cela :

unshadow /etc/passwd /etc/shadow > toto

Lancez notre ami à l'assaut et allez faire le tour du monde :

john toto

Une fois qu'il a trouvé une collision, john s’arrête, affiche le résultat, l’insère dans john.pot.
Les mots de passes trouvés dans les deux premières phases (attaques login, dictionnaire) sont dit vulnérables. Il faut les changer rapidement.

Bon tout va pour le mieux dans le meilleur des mondes mais si vous essayez John sur un mot de passe normal vous risquez d'y passer de longues heures et certainement beaucoup plus.

Utilisation multi-cœurs :14777.jpg

Si vous possédez plusieurs cœurs dans votre machine (ce qui est le cas de toutes nos machines modernes), il y a un moyen pour aller plus vite. Installez openmpi sur votre machine :

yaourt -S openmpi

Téléchargez, décompressez et compilez une version modifiée de John :

wget http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz
tar zxvf john-1.7.2-bp17-mpi8.tar.gz
rm  john-1.7.2-bp17-mpi8.tar.gz
cd john-1.7.2-bp17-mpi8/src
make
make clean linux-x86-6
cd ../run

Et maintenant relancez votre ami John en replaçant nombredecoeur par le nombre d'unité que vous souhaitez dédier à la recherche.

mpirun -np nombrecoeur ./john -i toto

On prendra soin d’arrêter john sinon ses processus vont continuer.

killall john

Source

That's all Folks !!

dimanche, 11 juillet 2010

Requète Get et Post en Python

Bonjour,

Besoin de récupérer une page html ? remplir un formulaire ? les deux ?
Ce billet est fait pour vous :)

I.Récupération et parsage

Utilisation : On souhaite télécharger une page html accessible sur un serveur Web pour la parser facilement par la suite grâce au langage Python.

1.Connexion au serveur Web et récupération de la page voulue
import httplib

//demande de connexion au serveur
conn = httplib.HTTPConnection("www.toto.com")

//Envoi de la requête GET afin de récupérer www.toto.com/blagues.php
conn.request("GET", "/blagues.php")

// Récupération de la réponse du serveur
response = conn.getresponse()

//Lecture de la reponse
response.read()


2.Mise en forme de la réponse et utilisation

A la place de lire la page dans la sortie standard, on peut la mettre en forme et la stocker proprement.

from lxml import etree
from BeautifulSoup import BeautifulSoup

//Nettoyage de la page
html= etree.HTML(response.read())
result = etree.tostring(html, pretty_print=True, method="html")
soup = BeautifulSoup(result)

Maintenant que nous avons un résultat propre, nous allons pouvoir l'analyser et extraire ce qui nous intéresse.
BeautifulSoup nous permet de rechercher des éléments en fonction de leur nom, leur type et leurs attributs.
Plus d'informations dans la documentation.

Ici je vais chercher un nœud qui a pour attribut "name" et pour valeur "cler".
Par exemple cette balise correspondrait à ma recherche : <balise attr1="toto" name="cler" value="motdepasse" />

cle= soup.find(attrs={"name" :"cler"})

//Récupère la valeur du troisième attribut
value=cle.attrs[2][1]

//value vaudra "motdepasse"



II. Requête POST

Maintenant je souhaite envoyer des données au serveur Web via un formulaire.
Il suffit d'encoder mes données à envoyer puis de les envoyer et enfin attendre la réponse du serveur.

import urllib,urllib2

//URL du formulaire
url = 'http://www.toto.com/sendjoke.php'

//Champ et valeur du formulaire
params = urllib.urlencode({'blague': 'toto va à l'école'})

//Envoi de la requête
req = urllib2.Request(url, params)

//Récupération de la réponse du serveur
response = urllib2.urlopen(req)
data=response.read()
html= etree.HTML(data)

Normalement avec ces briques, vous pouvez :

  • Envoyer les requêtes basiques du HTTP.
  • Nettoyer les pages de leur défauts de conception.
  • Analyser leur contenu efficacement.

That's all folks !!

- page 1 de 3