Posts Tagged ‘Logiciels libres’

Sécuriser ses données avec le chiffrement

Thursday, January 31st, 2008

Je trouve que la méthode donnée sur Ubuntu-fr.org pour chiffrer ses partitions est trop lente au démarrage. C’est le module de “crypto” qui prend du temps. Je vais donc expliquer dans cette article ma méthode, qui a l’avantage de ne pas ralentir la séquence de démarrage, de ne pas déchiffrer les données systématiquement mais qui a le désavantage de devoir lancer une commande pour déchiffrer les données. A noter que cette commande a un temps d’exécution très court.

Comme je l’ai expliqué il y a quelques billets et un peu là aussi, j’ai chiffré ma partition de données, qui se trouve sur sda7, et ma partition de swap qui se trouve sur sda5. Pour rappel, j’ai fais le choix d’utiliser l’algorithme de chiffrement towfish avec la clé de hashage sha256.

Il faut commencer par installer cryptsetup et par modifier le fichier /etc/fstab en mettant en commentaire les lignes correspondantes à nos partitions sda5 et sda7. Cela permettra de ne plus monter automatiquement ces partitions.

sudo gedit /etc/fstab (faire la modification et enregistrer)

On vérifie que le module qui gère l’algorithme de notre choix est bien présent sur la machine. Si vous le souhaitez, vous pouvez remplacer towfish par un autre de la liste généré par la commande suivante.

sudo modinfo /lib/modules/`uname -r`/kernel/crypto/* | grep ko

Ensuite on formate la partition de données avec l’algorithme de chiffrement que l’on a choisie.


sudo umount /dev/sda7
sudo cryptsetup luksFormat -c twofish -h sha256 /dev/sda7
sudo cryptsetup luksOpen /dev/sda7 c_DATA
sudo mkfs.ext3 /dev/mapper/c_DATA
sudo mount -t ext3 /dev/mapper/c_DATA /mnt/DATA
sudo umount /mnt/DATA
sudo cryptsetup luksClose c_DATA

On crée le script ~/bin/decrypt.sh qui nous permettra d’utiliser une commande pour déchiffrer nos partitions.

touch ~/bin/decrypt.sh

On y met le texte suivant avec gedit par exemple.


#!/bin/sh -e

if [ ! -b /dev/mapper/c_swap ]
then
echo "monte la partition swap chiffree";
sudo cryptsetup -c twofish -d /dev/random -s 128 create c_swap /dev/sda5
sudo mkswap /dev/mapper/c_swap
sudo swapon /dev/mapper/c_swap
fi

if [ -b /dev/mapper/c_DATA ]
then
echo "verrouille la partition DATA";
sudo umount /mnt/DATA
sudo cryptsetup luksClose c_DATA
else
echo "monte la partition DATA chiffree";
sudo cryptsetup luksOpen /dev/sda7 c_DATA
sudo mount -t ext3 /dev/mapper/c_DATA /mnt/DATA
fi

Ensuite on le rend exécutable et on lui donne les droits appropriés.


chmod 755 ~/bin/decrypt.sh
sudo chown root:root ~/bin/decrypt.sh

On finit avec la création de l’alias qui permet de transformer notre script en commande. Il suffit maintenant de taper l’alias dans le terminal pour déchiffrer la partition de données et monter un swap chiffré. En retapant ce même alias on rechiffre en on démonte ces deux partitions.

Ressources complémentaires:

  • http://www.rd.cri74.org/repository/securite/algo_chiffrement.pdf

Créer des alias sous Ubuntu

Monday, January 28th, 2008

La documentation Ubuntu sur les alias n’est pas très clair. Je n’ai pas le temps de la corriger sur le site d’Ubuntu alors j’écris ce petit billet en attendant.

La notion d’alias sera utilisée dans mon prochain billet sur la sécurité des données avec le chiffrement.

Un alias permet de créer une commande. Personnellement, je trouve ça très pratique de créer un script Shell et un alias pour l’appeler facilement. L’ajout d’un alias se fait à la manière du bash, la bonne pratique est d’utiliser un fichier séparé du fichier d’initialisation de bash.

Il faut donc ajouter l’alias dans le fichier ~/.bash_aliases où il faut ajouter une ligne qui ressemble à ça:

alias nom_de_lalias="chemin_vers_un_script_shell"

Ensuite il faut dé-commenter la ligne qui charge le fichier .bash_aliases dans le fichier .bashrc

A chaque re-chargement de la session ce fichier sera chargé.

Pour le charger manuellement, il faut taper la commande suivante:

. ./bash_alias

Lorsque vous créer un script qui contient des commandes root pensez à changer le propriétaire du fichier en root avec des droits en 755:

sudo chown root:root script.sh

sudo chmod 755 script.sh

Partitionner son disque dur

Saturday, January 26th, 2008

Suite à mon dernier billet, voici le tableau de synthèse de la configuration que j’ai choisi pour mes partitions. Vous trouverez à la suite une petite explication de mes choix.

la partition point de montage taille Système de fichier
Le boot /boot 100Mo ext2
Le système / 4Go ext3
Le swap N/A 1Go swap
Les données /mnt/DATA Les reste du disque dur ext3

Explications:

  • Le boot: La partition de boot permet de garder le noyau en dehors du système. Nous utilisons ext2 pour cette partition car il n’y a pas d’utilité d’y avoir un système de journalisation. Le noyau fait quelques dizaines de Mo donc avec 100Mo nous n’aurons pas de problèmes, on aurait même pu en mettre moins mais nous considérons que cette taille est négligeable à côté du disque entier.
  • Le système: 4Go me semble suffisant pour le système car on aura jamais autant de logiciels installés dessus. J’utilise ext3 pour cette partition car c’est le système de fichier standard pour Linux.
  • Le swap: 1Go correspond à la taille de la mémoire RAM. Plusieurs “écoles” existent sur le choix de la taille de cette partition. Mon avis sur la question est que 1Go est suffisant. On pourrait en mettre moins mais je pars du principe que la différence est négligeable par rapport au disque entier. Cette partition n’a pas de point de montage. Le système le détecte automatiquement et l’utilise sans qu’on ai besoin de configurer quoi que ce soit manuellement (sur Ubuntu du moins).
  • Les données: On utilisera le reste du disque dur pour stocker toutes nos données, les documents, les images, les vidéos etc.. J’ai choisi ext3 car je pense que la différence avec un autre système de fichier tel que ReiserFS ou XFS est négligeable par rapport à mon utilisation. (Par exemple ReiserFS est intéressant pour un serveur de fichier)
  • Si comme moi vous êtes obligé de garder une partition MS Windows, pensez à ne pas y toucher en installant Linux, ou en reconfigurant vos partitions avec GParted.

Astuces pour la partition de données

On se retrouve avec un point de montage /mnt/DATA tel qu’on l’a défini à l’installation. Afin d’accéder à ces données depuis le home je change le propriétaire de ce répertoire qui à été initialisé à root par l’installeur.

chown user:group /mnt/DATA

Et je crée des liens symboliques dans mon home.

ln -s /mnt/DATA DATA

ln -s /mnt/DATA/Vidéos Vidéos

ln -s /mnt/DATA/Images Images

ln -s /mnt/DATA/Musique Musique

ln -s /mnt/DATA/Documents Documents

En général les gens préfèrent monter la partition DATA directement sur le home. Personnellement je ne fais pas ainsi pour éviter de stocker tous les fichiers cachés qui sont installés dans mon home sur ma partition de données. Ca me permet de réinstaller un système propre lors de ma prochaine réinstallation. Par contre ca à le désavantage de perdre toutes les configurations des logiciels à chaque réinstalaltion. C’est un choix.

Je parlerais plus en détail du cryptage des partitions dans un prochain billet.

Installation de mon portable Dell Latitude D610

Thursday, January 24th, 2008

J’ai récemment fait l’acquisition d’un ordinateur portable Dell Latitude D610 par le biais de mon employeur, la société Valtech Technology, en tant que matériel de travail professionnel. Je viens d’y installer une distribution Linux en double boot avec le système d’exploitation Microsoft Windows XP. Le système Linux me permettra de travailler dans des conditions sécurisées, avec les outils qui me semblent être les plus efficaces dans mon domaine et cela me permettra également de faire des démos à mes collègues et mes clients.

Je vais décrire dans cet article quatre points qui me semblent importants lors du choix et de l’installation d’un système d’exploitation

Voici ces points avec la solution choisie via Ubuntu:

  • Découpler ses partitions avec GParted (directement utilisable dans l’installeur Ubuntu).
  • Avoir un bon niveau de sécurité avec le système APT et crypt-setup / Luks.
  • Avoir un environnement clairouvert et qui en jetteergonomique avec gnome et compiz-fusion.
  • Avoir des logiciels libres et bénéficier des avantages apportés par la communauté avec java, eclipse, firefox, openoffice, thunderbird, sunbird, pidgin etc..

Avertissement: La suite de cet article concerne la configuration du système d’exploitation. Je ne pourrais être tenu pour responsable de la perte de vos données si vous essayer de suivre ces descriptions. Si vous voulez quand même essayer, je vous conseille fortement de le faire sur un ordinateur de test, ou alors de sauvegarder l’ensemble de vos données avant de le faire.

Partitionner son disque

Je dois garder le système Microsoft Windows XP tel quel pour des raisons professionnelles. J’ai fait une partition primaire supplémentaire pour le /boot de 100Mo et une partition étendue sur laquelle j’ai mis une sous partition pour le swap de 1Go, une sous partition de 4Go pour le système et une dernière sous partition (le reste du disque dur ~27Go) pour les DATA.

La partition /boot contient le noyau Linux qui sera utilisé pour démarrer la machine. J’ai décidé de crypter les partitions swap et DATA.

La sécurité

APT simplifie l’installation, la mise à jour et la désinstallation de logiciels en automatisant la récupération de paquets à partir de sources APT (sur Internet, le réseau local, des cédéroms, etc.), la gestion des dépendances et parfois la compilation. Lorsque des paquets sont installés, mis à jour ou enlevés, les programmes de gestion de paquets peuvent afficher les dépendances des paquets, demander à l’administrateur si des paquets recommandés ou suggérés par des paquets nouvellement installés devraient aussi être installés, et résoudre les dépendances automatiquement. Avoir un système mis à jour est la base de la sécurité.

CrypterChiffrer sa partition de swap et de DATA donne un bon niveau de sécurité. J’ai fait le choix d’utiliser l’algorithme de chiffrement twofish et la clé de hashage sha256 pour les raisons qui sont indiquées dans ce document. J’ai adapté l’article disponible dans la documentation Ubuntu sur cryptsetup afin de pouvoir déchiffrer et rechiffrer mes partitions avec une simple commande que j’ai créée avec des scripts et des alias. Je mettrai ces scripts sur ce blog dans un prochain billet.

L’environnement

A commencer par Linux qui est ouvert et qui a donc l’avantage de nous permettre de savoir ce qui se passe dans notre machine.

Gnome est l’environnement graphique installé par défaut avec Ubuntu, mais il est facile d’en choisir un autre comme KDE, XFCE, E17…

En alliant son environnement graphique à Compiz-fusion on se retrouve avec un environnement qui utilise toutes les ressources de son PC de manière optimale. En effet la partie affichage est entièrement assumée par la carte graphique et c’est OpenGL qui est utilisée pour rendre des effets graphiques dignes des meilleurs jeux vidéos 3D.

Les logiciels libres

La grande force de Linux est d’avoir une quantité de logiciels de qualité incroyable. Ils sont disponibles en un clic, grâce à APT, et le souci d’intégration au système les rend particulièrement agréables à utiliser.

Les logiciels disponibles sur linux permettent de tout faire librement, que ce soit des activités personnelles ou professionnelles. Il n’y a aucune limite et l’accès est simple et efficace.

L’accès au Wifi s’est fait sans problème, j’ai utilisé une clé WEP de 128 bits pour le protéger, il faut encore que je me penche sur une protection de type WPA afin de ne plus me faire de souci. Firefox me permet de naviguer sur Internet, Thunderbird me permet de recevoir mes e-mails, pidgin me permet de chatter en sécurité en utilisant le réseau Jabber et des tunnels cryptés.. et pour le travail j’ai tout ce qu’il faut pour concevoir et programmer des logiciels multi-plateforme.

Conclusion

Pour toutes ces raisons, mon choix c’est donc orienté vers la distribution linux Ubuntu, qui est basée sur Debian. Le gros avantage de cette distribution est la communauté française qui est énorme, ce qui apporte une documentation très claire et précise et le forum est très actif.