Main menu:

Site search

Categories

septembre 2025
L M M J V S D
1234567
891011121314
15161718192021
22232425262728
2930  

Archive

Une applet pour gérer vos dossiers encryptés

Je vous ai déjà expliqué comment encrypter un dossier avec encfs en ligne de commande. Sachez qu’il existe aussi une petite applet, nommée cryptkeeper, qui s’installe dans la zone de notification et qui vous permet de gérer vos dossiers encryptés de manière graphique. Cette applet se trouve dans les dépôts et donc s’installe facilement avec Synaptic ou en ligne de commande:

$ sudo aptitude install cryptkeeper

Une fois installée, lancez l’application en vous rendant dans le menu Applications/Outils système/Cryptkeeper. Une icône apparaît alors dans le zone de notification. Cliquez dessus pour créer ou importer un dossier crypté et suivez les indications du programme.

Qu’est-ce qu’un VLAN?

Pour pouvoir répondre à cette question, il faut d’abord savoir ce qu’est un LAN (acronyme pour Local Area Network). D’après Wikipedia, c’est un réseau qui couvre une faible zone géographique. Cette définition vaut ce qu’elle vaut.
Les informaticiens donnent ceci comme définition d’un LAN: ce sont tous les équipements qui partagent le même domaine de diffusion. Normalement, ce sont les routeurs qui définissent les domaines de diffusion.
On en vient à la notion de VLAN. Au sein d’un même domaine de diffusion, on peut subdiviser le LAN en VLAN’s (aconyme pour Virtual LAN) en donnant à des switches la possibilité de définir des domaines de diffusion.

Pratiquement, cela revient à dire au switch que tel port correspond à tel VLAN et tel autre port à tel autre VLAN. Chaque VLAN définissant son propre domaine de diffusion. Les équipements dans un même VLAN communiquent entre eux. Il n’y a rien qui passe entre un VLAN et un autre. Les VLAN’s sont numérotés. Le 1 est le VLAN par défaut. Il est possible de faire communiquer entre eux deux VLAN’s si le switch a des capacités de routage de VLAN ou via un routeur externe.
Autrement dit, les VLAN’s se comportent comme des LAN’s. Chaque VLAN est défini dans son propre sous-réseau. Dans un LAN classique, chaque switch est relié à son propre sous-réseau. Avec la notion de VLAN, chaque port de chaque switch peut être raccordé à un VLAN particulier. Cela veut dire que vous n’avez plus besoin de nombreux switches tous raccordés à leur propre sous-réseau mais d’un seul switch dont chaque port peut être raccordé au VLAN voulu. Et comme les switches communiquent entre eux, un équipement peut être connecté à un switch, un autre équipement raccordé à un autre switch et quand même être dans le même VLAN.

Quels sont alors les avantages des VLAN’s par rapport aux LAN’s et quand doit-on les utiliser?
La réponse à la deuxième partie de la question est simple. On n’est jamais obligé de les utiliser. Mais ils peuvent rendre des services dès qu’un réseau devient un peu compliqué.
Les avantages sont d’ordre pratique. Les VLAN’s peuvent rendre des services si vous avez besoin de niveaux de sécurité différents en fonction des utilisateurs de votre réseau, si vous avez des équipements qui font du broadcast, si vos équipements qui doivent être relié à un même réseau se trouvent à des endroits physiquement éloignés… Cela apporte une économie de moyen, une facilité de câblage et de connexion.

Et Ubuntu là dedans? Et bien, Ubuntu est capable de gérer les VLAN’s. Il suffit d’installer le paquet vlan disponible dans les dépôts. Ensuite, modifiez le fichier /etc/network/interfaces pour définir à quel VLAN appartient le PC.
Que ce soit clair: votre PC peut se raccorder à un VLAN sans devoir faire quoi que ce soit. Il suffit de raccorder le PC à un switch compatible VLAN, de configurer le port du switch où est raccordé le PC pour qu’il soit dans le bon VLAN et de donner à votre PC une adresse appartenant au sous-réseau défini par le VLAN. Dans ce cas, pas besoin d’installer quoique ce soit.
L’installation du paquet vlan n’est nécessaire que si vous voulez raccorder le PC à un trunk (ensemble de plusieurs VLAN’s) et pouvoir spécifier à quel VLAN il appartient. En général, vous n’en aurez besoin que si vous voulez faire de votre PC un routeur destiné à faire communiquer plusieurs VLAN’s ou si vous avez besoin d’un serveur particulier.

Le fichier $HOME/.dmrc de l’utilisateur a été ignoré

Si à l’ouverture de votre session, le message suivant apparaît dans une petite fenêtre:

Le fichier $HOME/.dmrc de l’utilisateur à été ignoré. Ceci empêche
de sauver la session et la langue par défaut. Le fichier devrait 
appartenir à l’utilisateur et avoir les permissions 644. Le répertoire
de l’utilisateur doit appartenir à l’utilisateur et ne doit pas être
accessible en écriture par d’autres utilisateurs.

c’est que les droits sur votre répertoire home ont changé.
Pour revenir a une situation normale, il suffit de taper dans une console les commandes suivantes afin de rétablir les droits du répertoire:

$ sudo chmod 755 /home/votre_login
$ sudo chown -R votre_login: /home/votre_login

Attention: dans la deuxième commande, n’oubliez pas le : après votre_login.
Déconnectez-vous puis reconnectez-vous. Le problème devrait être réglé.

Ce problème de droits est récurrent mais je ne suis pas parvenu à en trouver la cause. Si l’un d’entre vous a une explication, je suis preneur.

Crypter une clef USB

Il existe un moyen simple de crypter les données se trouvant sur une clef USB. Un petit paquet à installer, cryptsetup, et deux ou trois commandes à taper dans un terminal.

Le noyau Linux possède une interface Device Mapper qui permet de créer une sur-couche aux dessus des Block Devices. C’est un peu compliqué mais il suffit de retenir que cela permet entre autres choses de crypter une partition. De plus, cryptsetup supporte LUKS (Linux Unified Key Setup) qui est un standard permettant l’utilisation de plusieurs user/password différents et une sécurité accrue pour la protection de vos données contre certains types d’attaque (Low Entropy Attacks).
C’est une description succinte des possibilités de cryptsetup et je vous renvoie bien sûr à la page de manuel.

La première chose à faire est donc d’installer le paquet cryptsetup:

$ sudo aptitude install cryptsetup

Ensuite, il ne reste plus qu’à démonter la clef et à formater la partition au type LUKS. Vous pouvez définir le type de formatage (vfat, ext2/ext3…) ainsi que le type d’encryption et de hachage. Si votre clef USB est en /dev/sdb1, tapez ceci dans un terminal:

$ sudo umount /dev/sdb1
$ sudo luksformat /dev/sdb1
Creating encrypted device on /dev/sdb1...

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase: 
Command successful.
Please enter your passphrase again to verify it
Enter LUKS passphrase: 
key slot 0 unlocked.
Command successful.
mkfs.vfat 2.11 (12 Mar 2005)

Ceci est la commande par défaut. Elle formate en vfat. Si vous désirez un autre type de formatage et d’encryption, tapez:

$ sudo luksformat -t ext3 -c aes -h sha256 /dev/sdb1

en remplaçant dans la commande la valeur des switches par celle que vous voulez.

Attention toutefois au fait que si vous utilisez ext3 comme type de formatage, vous devez tenir compte du fait qu’il supporte la journalisation. Cela implique beaucoup plus d’accès disque que pour ext2 par exemple. Et sachez que les supports de type flash possèdent un nombre plus restreint d’accès lecture/écriture qu’un disque dur.

Lorsque vous introduirez dans votre PC la clef USB, elle sera montée automatiquement par Ubuntu et une petite fenêtre s’ouvrira demandant votre mot de passe. A ce moment, le contenu de la clef USB vous sera accessible.

Si vous essayez d’utilisez votre clef sous Windows, celui-ci vous répondra qu’elle n’est pas formatée et vous enjoindra à le faire. Et ceci même si vous avez pris soin de choisir le type vfat lors du formatage de la clef sous Ubuntu. Mais tout n’est pas perdu.
Si vous avez formaté votre clef en vfat, il est possible de l’utiliser, même cryptée, avec Windows. Pour cela, il faut installer sous Windows le programme FreeOTFE et veiller évidemment à ce que les paramètres d’encryption et de hachage soient définis de la même façon que lorsque vous avez formaté la clef sous Ubuntu. FreeOTFE est un programme open source qui supporte le standard LUKS et le rend accessible sous Windows.

Update (28/11/2017) :
Freeotfe.org n’existe plus. Je ne sais pas s’il existe une alternative mais je vous enjoins à consulter le site http://ctech.link/free-encryption qui offre une comparaison des différents types d’encryption disponibles actuellement.

Nautilus moitié anglais, moitié français

Hier, une mise à jour de Brasero vers la version 0.9.1 a été effectuée sur mes PC sous Intrepid. Depuis, les menus contextuels, les barres d’outils et les menus de Nautilus sont à moitié en anglais et à moitié en français. Un peu bizarre.
Après avoir vérifié que mes locales étaient bonnes, que les paquets avec les traductions étaient bien installés, je me suis résolu à désinstaller Brasero ce qui a fait que tout est rentré dans l’ordre. C’est donc bien cette mise à jour-là qui est en cause.
Après avoir désinstallé Brasero, vous pouvez le réinstaller mais en veillant à ce que ce soit bien la version qui se trouve dans les dépôts qui s’installe. Pour cela, il faut aller dans Synaptic, menu Configuration/Dépôts, dans l’onglet Mise à jour et décocher Mise à jour non-prise en charge (intrepid-backports). Ensuite, réinstallez Brasero normalement avec Synaptic ou via la ligne de commande.

Update: La mise à jour proposée de Brasero d’hier mardi 9 février résout ce problème. Vous pouvez donc sans problème installer cette nouvelle version de Brasero.

C++ – Alignement des structures

Vous devez toujours garder à l’esprit cette notion d’alignement parce que la taille réelle d’une structure ou d’une classe n’est pas toujours celle que vous imaginez.
Prenons l’exemple de cette structure:

struct A
{
  int i;
  char c;
}a;

Le résultat de sizeof(a) donnera 8 octets alors que seulement 5 octets sont utilisés. Le reste, c’est l’alignement (padding en anglais). Le compilateur essaie toujours de garder l’alignement sur un multiple de quad-word (quatre mots, un mot étant égal à deux octets). Ceci est en tout cas valable pour les PC avec un OS 32 bits et dépend de l’implémentation.

struct A
{
  int i;
  char c1;
  char c2;
  char c3;
  char c4;
}a;

Dans ce cas, la réponse de sizeof(a) est aussi 8 octets et nous avons effectivement 8 octets d’utilisés.

Il est possible, lorsque la structure des données doit impérativement être alignée sur sa valeur réelle ou sur une autre valeur que des multiples de quatre mots, de dire au compilateur de changer ce comportement par défaut. Mais il est important de savoir que si le compilateur utilise ce type d’alignement sur des mots de quatre mots (8 octets), c’est parce que le processeur a plus de facilité à traiter cette taille de données. Le processeur dispose de registres et d’instructions rapides pour traiter les données alignées de cette façon. Si vous modifiez l’alignement, ceci aura un impact non-négligeable sur les performances de votre application. Autrement dit celle-ci sera notablement plus lente si vous traitez un grand nombre de structures de données.

struct A
{
    int i;
    char c1;
}__attribute__((packed));

L’attribut packed donné à la structure donne injonction au compilateur d’aligner la structure sur sa taille réelle. Ici, la réponse de sizeof(a) donnerait 5 octets.

struct A
{
    int i;
    char c1;
}__attribute__((aligned(x)));

Remplacez x par la valeur que vous souhaitez et le compilateur alignera la structure sur la valeur que vous avez spécifiée.