Crypter sa partition home avec Ubuntu Gutsy

Voilà un petit tutoriel en complément de celui du numéro de Gnu Linux Magazine France de ce mois-ci pour savoir comment crypter votre partition home et votre swap.

Ce tuto n’a pas vocation a créer un bunker sur votre PC, mais juste de rendre vos données inaccessibles en cas de vol.

entree_interdite_yves_gu_01.png

ATTENTION: Ce tuto est risqué pour vos données. En cas d’erreur dans le choix de la partition ou d’oubli du mot de passe, vous perdrez vos données. cela dit, il faut bien s’amuser non ? 🙂

La première étape est d’installer les packages nécessaires.

sudo apt-get install cryptsetup
sudo apt-get install libpam-mount

Ensuite, par simplicité, créer un mot de passe pour le compte root afin de pouvoir vous connecter lorsque votre partition home sera indisponible.

 sudo su - passwd

Quittez X puis tapez ALT + CTRL + F1 pour aller sur une console. logguez vous en root, nous allons nous occuper du swap.

 swapon -s

relevez le nom de votre partition de swap (ici /dev/xxxx)

 swapoff /dev/xxxx
cryptsetup -c aes -d /dev/random -s 256 create c_swap /dev/xxxx
mkswap /dev/mapper/c_swap
swapon /dev/mapper/c_swap

Dans le fichier /etc/cryptab

ajoutez:

 c_swap         /dev/sda3 /dev/urandom size=256,swap

Dans le fichier /etc/fstab remplacez la ligne montant votre ancien swap par celle-ci:

 /dev/mapper/c_swap none            swap    sw              0       0

Voilà, votre swap est crypté avec une clef périmant à chaque redémarrage. Attention, ce système vous empêche d’utiliser l’hibernation (la clef étant perdue au redémarrage, le swap est formaté à chaque boot). Cependant une petite recherche sur internet vous permettra de trouver des solutions pour contourner ce problème.

Pour ce qui est de la partition home, le problème est le formatage de la partition. Vous êtes obligés de copier le contenu de /home vers un autre support (partion, DVD, disque usb…) puis de tout restaurer à la fin de la manip. Évidemment, le /home doit être sur une partition indépendante. Toujours en dehors de X,

Notez le nom de votre partition home

 mount

Ensuite démontez /home (ici /dev/sda4)

 umount /home
cryptsetup luksFormat /dev/sda4

Choisissez un mot de passe (compatible avec pam)

cryptsetup luksOpen /dev/sda4 c_home
mkfs.ext3 /dev/mapper/c_home

vi /etc/fstab, remplacez la ligne concernant votre /home par celle-ci:

 /dev/mapper/c_home /home           ext3    defaults,noauto        0       0

Maintenant, nous allons utiliser un module pam, pam_mount, qui va automatiquement décrypter votre partition home au moment du login (ca prend ~ 2sec)

vi /etc/security/pam_mount.conf Ajoutez la ligne suivante:

 volume * crypt - /dev/sda4 /home - - -

Ajoutez la ligne suivante @include common-pammount à tous les modules pam que vous êtes susceptibles d’utiliser pour vous connecter. Gdm et login doivent suffire pour une utilisation normale.

 vi /etc/pam.d/gdm
 ajoutez
@include common-pammount
vi /etc/pam.d/login
ajoutez
@include common-pammount

Rebootez votre PC. Lorsque vous taperez votre mot de passe, la partition sera décryptée à la volée. Dès que vous vous déconnectez, celle-ci est verrouillée. Certes, ce système est moins sur qu’une clef stockée par exemple sur un support externe, mais elle a le mérite d’être peu contraignante. Il suffit juste d’utiliser un mot de passe fort.

Si j’ai oublié des choses, n’hésitez pas à me le signaler.

Grisbi et un compte de la BanquePostale

Etant utilisateur de grisbi et titulaire d’un compte à la BanquePostale, je souhaitais contrôler facilement mes comptes au travers du service Videoposte.

Comme d’habitude, mon fidèle ami Perl est là pour m’aider 🙂

Grisbi est un excellent logiciel de comptabilité personnelle. Seulement voilà, il permet d’importer des fichier pour faire des pointages, mais pas de les récupérer directement sur les sites internet des banques. Voilà un petit script perl pour combler cette lacune.

Tout d’abord, il faut récupérer le module Perl permettant d’accéder au site web de votre banque, ici la BanquePostale.
[code lang= »bash »]
wget http://search.cpan.org/CPAN/authors/id/P/PI/PIXEL/Finance-Bank-LaPoste-4.00.tar.gz
tar xvf Finance-Bank-LaPoste-4.00.tar.gz
cd Finance-Bank-LaPoste-4.00
perl Makefile.PL
make sudo make install
[/code]
Ensuite, il fait créer le script videoposte.pl suivant:

[code]

#!/usr/bin/perl -w

use Finance::Bank::LaPoste;
use POSIX;

my @accounts = Finance::Bank::LaPoste->check_balance(username => « XXXXXX »,
password => « NNNNNN »);

foreach my $account (@accounts)
{
my $date=strftime(« %Y%m%d », localtime);
my $qifdate=strftime(« %d/%m/%Y », localtime);
my $filename=$account->;account_no. »_ ».$date. ».qif »;
open(FD, »> $filename » );
print FD « !Type:Bank\n »;
print FD « D ».$qifdate. »\n »;
print FD « T ».$account->balance. »\n »;
print FD « CX\n »;
print FD « PSolde\n »;
print FD « L[« .$account->name. »]\n »;
print FD « ^\n »;
foreach ($account->statements)
{
my ($y,$m,$d)=($_->date =~ m/(\d+)\/(\d+)\/(\d+)/);
print FD « D ».$d. »/ ».$m. »/ ».$y. »\n »;
print FD « P ».$_->description. »\n »;
print FD « M ».$_->description. »\n »;
print FD « T ».$_->amount. »\n »;
print FD « L[Import AUTO]\n^\n »;
}
close(FD);
}

[/code]

Pensez à remplacer les XXXX et NNNN par vos numéros de compte et votre mot de passe. Ensuite, le script va vous créer autant de fichier QIF que vous n’avez de comptes. Chaque fichier contient votre relevé de compte des 30 derniers jours. Vous pouvez par exemple placer ce script dans la crontab pour qu’il vous récupère vos relevés de comptes toutes les semaines.

Vous n’avez plus qu’à importer ces fichiers dans grisbi pour pointer automatiquement vos opérations.

Je n’ai pas testé, mais le script doit fonctionner pour les autres banques, il suffit juste d’utiliser le bon module Perl.

Comme il est précisé sur le site de l’auteur, celui-ci vous invite à relire son code pour s’assurer de son intégrité (On ne sait jamais, quand il s’agit d’argent…).

Amusez vous bien 😉

[EDIT 5/04]: Module perl mis à jour en version 4.00 pour supporter la nouvelle authentification mise en place par la Banque Postale.

Le nombre d’utilisateurs linux est « assez mince (voire très mince) »… ah bon ?

J’ai acheté un CD audio (oui, ca peut arriver encore en 2008), et voilà que je vois le logo opendisc. Je me dis chouette ca doit être un nouveau truc vachement bien, ouvert qui va marcher sous linux. Euuuu, et bien non. Alors je me dis, on va envoyer un petit mot à l’éditeur de cette chose. Voilà la réponse…

tux_clemente_01.png

Mon email:


Bonjour,

Je viens d’acquérir un CD avec une partie « OpenDisc ». Etant sous linux, il m’est impossible de la lire. Après quelques recherches sur Internet, je m’aperçois que je suis loin d’être le seul dans ce cas. Prévoyez vous une version Linux de votre outil ? Il n’est d’ailleurs nullement mentionné sur la pochette du CD que Windows est nécessaire.

C’est très décevant qu’un système portant le nom « Open » soit si fermé et inaccessible aux utilisateurs ayant acheté le produit… Ce qui a mon avis n’est pas fait pour lutter contre le piratage (Comme les DRM qui ne font finalement que pénaliser les gens honnêtes).

Merci pour votre aide.

Cordialement,


Et la réponse:


Monsieur,

le nombre d’utilisateurs concernés par l’utilisation de Linux comme seul système d’exploitation étant assez mince (voire très mince), il n’est pas dans les priorités absolues de rendre compatible l’application Opendisc® (« open » n’ayant aucun rapport avec « open source » comme vous l’entendez mais plutôt avec d’ouvrir une relation privilégiée entre un artiste qui met à disposition du contenu exclusif et un utilisateur qui profite de ces contenus) avec les systèmes Linux / Unix du fait du coût de développement pour cela et des diverses autres priorités.

Quant aux indications en place sur le CD, elles sont du ressort de la maison de disques, du label ou de l’éditeur qui décide de ce qu’il met sur son CD.

Quoiqu’il en soit, vous pouvez vous abonner à notre newsletter qui vous informera de toute évolution sur le sujet : http://www.opendisc.net/fr/newsletter.asp.

De plus, il est normalement faisable d’extraire ou même d’écouter le CD même sur un système Linux, mais pas d’utiliser le contenu Opendisc®.

Cordialement.

L’équipe Support Opendisc®.


C’est fou, le open c’est pour ouvrir un lien privilégié avec l’artiste ou avec Microsoft ??? D’ailleurs, est ce que M$ reverse un droit à l’artiste dans cette relation ouverte ?

Je vous invite tout naturellement à leur communiquer le fait que nous existons sur cette planète corrompue par le grand M$.

GNU Linux Magazine N°100 et les articles du CD

Avec la super initiative de GLMF, vous voilà avec quelques 550 articles sur un CDROM. Voilà une petite astuce pour les exploiter au mieux 😉

lmag100.jpg

A l’ouverture du CD, j’ai été un peu déçu de ne pas trouver un sommaire pour exploiter cette mine d’informations. Qu’à cela ne tienne, un petit coup de PERL et nous voilà avec un apercu HTML de la première page des articles. Le script calcule le nombre de pages de l’article grâce à l’information contenue dans le nom du fichier et le compare avec le nombre de pages du PDF afin de déduire s’il s’agit d’un fichier avec un copyright normal ( 1 page au début ) ou avec une licence Creative commons (2 pages au début et 2 à la fin). Le script génère alors un aperçu PNG de la 1° page de l’article qu’il insère dans une page HTML.

voilà les actions à faire pour mettre en oeuvre le script. Les pdf sont copiés sur le disque dur pour plus de confort. (450Mo)

mkdir -p GLMF/PDF
cd GLMF
wget https://www.equinoxefr.org/public/build_index.pl
sudo apt-get install libpdf-api2-perl imagemagick
cd  PDF
find /media/cdrom/ -iname "*.pdf" -exec cp {} ./ \;
cd ..
./build_index.pl
reset

On aurait pu aussi supprimer les pages « gênantes », ce que j’aurais fait sans scrupule s’il s’était agit d’une pub et non d’une licence (Cf GLMF N°97 P82) . On aurait juste aimé que ces pages soient en fin de fichier et non au début afin de ne pas perturber les aperçus de fichiers.

Capture-Index_Linux-Magazine_-_Mozilla_Firefox.png

Voilà le script, fait à la « vas vite » mais qui marche sauf pour quelques PDF qui semblent altérés (un petit bug dans ghostscript entraine un affichage tout pourri dans le terminal d’où est lancé le script. heureusement un coup de reset remet tout en ordre).

#! /usr/bin/perl

use strict;
use PDF::API2;

my $PDF_PATH="./PDF";

mkdir("THUMBNAILS");
open(FD,">index.html");
my $nb=0;
opendir(DIR, "$PDF_PATH") || die "can't opendir ./PDF: $!";
my @files = grep { /\.pdf$/ } readdir(DIR);
closedir DIR;

print FD "<BODY><TITLE>Index Linux-Magazine</TITLE>\n";
print FD "<table border=1>\n";
foreach my $filename (sort(@files))
{
    if ($filename !~ /GLMF_083_014_021/i)
    {
	my $pdf = PDF::API2->open("$PDF_PATH/$filename");
	my $pdf_pages = $pdf->pages;
	$pdf->end();
	my ($mag_num,$page_start,$page_end) = ($filename =~ m/^GLMF_(\d+)_(\d+)_(\d+).pdf$/i);
	my $art_pages = $page_end - $page_start;
	my $copyright_pages = $pdf_pages - $art_pages;
	if (!($nb % 4))
	{
	    if ($nb)
	    {
		print FD "</TR><TR>";
	    }
	    else
	    {
		print FD "<TR>";
	    }

	}
	print "Convert $filename $pdf_pages pages in pdf, $art_pages in article diff:$copyright_pages\n";
	print "Info: Mag n° $mag_num, article page $page_start to $page_end\n";
	my ($base_name) = ( $filename =~ m/(.*?)\.pdf$/i );
	if (! -f "./THUMBNAILS/COVER_${base_name}.png")
	{
	    if ($copyright_pages >= 5)
	    {
	       `convert -scale 400x300 "${PDF_PATH}/${filename}\[2\]" ./THUMBNAILS/COVER_${base_name}.png`;
	    }
	    else
	    {
	       `convert -scale 400x300 "${PDF_PATH}/${filename}\[1\]" ./THUMBNAILS/COVER_${base_name}.png`;
	    }
	}
	print FD "<TD align=center>GLMF Numero $mag_num<br>$pdf_pages pages<br><a href=\"$PDF_PATH/$filename\"> <IMG src=\"./THUMBNAILS/COVER_${base_name}.png\"></a></TD>\n";
	$nb++;
    }
    }
print FD "</table>\n";
print FD "</BODY>\n";
close(FD);