jeudi 20 mai 2010

Trier des adresses IP en bash avec sort

Il m'arrive parfois d'être obligé de trier des adresses IP par ordre croissants en dans un script bash.

Pour ça on peut utiliser la commande sort comme suit :

soit les adresses IP suivantes dans un fichier addr.txt
192.168.4.5
192.168.1.3
10.2.3.6
10.2.1.7
172.16.4.5
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n addr.txt
me donne le résultat suivant :
10.2.1.7
10.2.3.6
172.16.4.5
192.168.1.3
192.168.4.5

mardi 18 mai 2010

Gérer ses screenshots avec Shutter

Pour gérer mes screenshots sous Linux, j'utilise shutter.
Vous pouvez capturer une partie d'écran ou une fenêtre seule, créer une session d'enregistrement, etc. Un outil idéal pour faire des docs d'installation par exemple.

guide d’autodéfense numérique / tome 1 : hors connexions

Ce guide vient d'être publié sous licence "Art libre". Il est très complet, ce premier tome se concentre essentiellement sur les problèmes (et les solutions) hors connexions (fuite mémoire, méta-données, swap, watermarking, cryptographie, malware, etc.)

jeudi 13 mai 2010

highlight : application pour convertir du code en HTML avec coloration syntaxique

Je viens de découvrir cette application fort sympatique qui permet de convertir du code source (plusieurs dizaines de langages supportés) en HTML (mais aussi dans d'autres formats). Voici un petit exemple de résultat :
#!/bin/bash
# sample.sh
for i in a b c d
do
  echo -n $i | tr '[a-z]' '[A-Z]'
  echo " was $i"
done


pour l'installer sur ubuntu

Installation d'une Ubuntu avec LUKS+LVM

1. Introduction

Pour des raisons évidentes de sécurité je chiffre les disques de mes machines. Certaines de ces machines sont utilisées par plusieurs personnes, et le partage des passphrases n'est pas toujours aisé. Pour éviter de les partager j'utilise LUKS qui va stocker plusieurs passphrases possibles pour déchiffrer le disque.
Voici comment j'ai procédé pour une Ubuntu Lucid Lynx 10.04.

2. Première phase : préparation et initialisation des partitions à chiffrer.

Il faut tout d'abord booter en mode "LiveCD" et ne pas lancer une installation directement.

Une fois le "LiveCD/USB" booté, lancez un terminal et passez en root

sudo su -


2.1 Partitionnement des disques

Il faut dans un premier temps partionner le disque, dans mon cas je fais 3 partitions :

  1. sda1 : une partition en NTFS pour Windows 7 (nul n'est parfait ;)
  2. sda2 : la partition pour /boot (seule partition de mon système qui ne sera pas chiffrée et on comprend pourquoi : cela constitue le principal talon d'Achile de ce système, il possible de mettre le /boot sur une clé USB par exemple)
  3. sda3 : la partition qui va contenir mon volume LVM chiffré.
Pour ça vous pouvez utiliser l'utilitaire cfdisk :


2.2 Mise en place du chiffrement

Il faut initialiser la partition qui va recevoir le LVM chiffré avec des données aléatoires. Cela prend pas mal de temps, mais si vous avez une machine multi-core, on peut réduire le temps d'initialisation.

Pour initialiser (ici on a deux cores) :

PROC=2; (for((i=0;i<$PROC;i++)); do echo "process $i" >&2 ; cat /dev/urandom & done; cat /dev/random & ) |dd  of=/dev/sda3 bs=1024

Quelques heures plus tard, on peut lancer l'installation ...

On commence par charger les modules kernel relatifs au chiffrement des disques :

modprobe aes
modprobe dm-crypt

Après on formate la partition chiffrée au format LUKS, il faut taper YES (en majuscule) et entrer votre passphrase (deux fois) :

cryptsetup luksFormat --cipher=aes --key-size=256 --hash=sha256 /dev/sda3

résultat de la commande :

WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

Il faut maintenant créer un "device" qui va faire le lien entre LVM et le système chiffré.

cryptsetup luksOpen /dev/sda3 diskcrypt

Entrez la passphrase cela donne :

Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.



2.3 Mise en place de LVM

Le CD d'installation de la Lucid (l'officiel) ne contient pas LVM, il faut donc installer lvm2.

apt-get install lvm2

Nous allons créer respectivement un "physical volume" (PV), un "volume group" (VG) dans ce dernier et 3 "logical volumes" (LV) dans ce volume group.

Les trois LV sont nommés root pour "/" (taille 10 Go), swap pour le "swap" (2 Go) et home pour "/home" (la taille restante)

pvcreate /dev/mapper/diskcrypt
vgcreate vg-pc /dev/mapper/diskcrypt
lvcreate -n root -L 10000 vg-pc
lvcreate -n swap -L 2000 vg-pc
lvcreate -n home -l 100%FREE vg-pc

pour voir les tailles de chaque LV :

lvdisplay -C

résultat de la commande :

  LV   VG    Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  home vg-pc -wi-a- 28.69g                                      
  root vg-pc -wi-a-  9.77g                                      
  swap vg-pc -wi-a-  1.95g

On va initialiser les partitions pour présenter correctement à l'installer d'Ubuntu chaque LV.

Voici les 3 commandes à taper (à noter que j'utilise de l'EXT4) :

mkswap /dev/mapper/vg--pc-swap
mkfs.ext4 /dev/mapper/vg--pc-home
mkfs.ext4 /dev/mapper/vg--pc-root

Tout est prêt pour l'installation de la distribution.

3. Installation de la distribution

Lancez l'installation en cliquant sur l'icône située sur le bureau.

voici les 3 premières étapes :


Lorsque vous arrivez à l'étape 4 il faut sélectionner l'option qui permet de spécifier les partition manuellement  :


et ensuite il faut pour la partition de boot et les LV choisir le point de montage,  le type de partition (ici EXT4) et cocher le formatage.

Vous devez obtenir quelque chose comme ça :



Et vous pouvez terminer l'installation, mais surtout à la fin ne pas redémarrer la machine, car il faudra effectuer une dernière opération pour finaliser l'installation et permettre au système de démarrer avec le disque chiffré.

Fin de l'installation :




/!\ Attention bien choisir de continuer et non pas redémarrer /!\ :


4. Finir l'installation

Pour commencer on va se "chrooter" dans la distribution fraichement installée

Pour ça il faut taper dans le terminal sous l'utilisateur root :

cd /mnt
mkdir root
mount -t ext4 /dev/mapper/vg--pc-root /mnt/root
mount -t ext3 /dev/sda2 /mnt/root/boot
mount -t ext4 /dev/mapper/vg--pc-home /mnt/root/home
chroot /mnt/root
mount -t proc proc /proc
mount -t sysfs sys /sys

Ensuite il faut installer les packages cryptsetup et lvms :

apt-get update
apt-get install cryptsetup lvm2


Après on éditer le fichier /etc/crypttab comme suit :
# <target name> <source device>  <key file> <options>
diskcrypt         /dev/sda3       none            luks,retry=1,lvm=vg-pc

Il faut ajouter les modules pour l'initrd, on edite le fichier /etc/initramfs-tools/modules et on ajoute les 3 modules essentiels pour le déchiffrement du disque.


aes
dm-crypt
sha256

Ensuite on régénère le fichier d'initrd :

update-initramfs -k all -c


Enfin on vérifie que les données sont bien prises en compte :

cd /tmp
mkdir verif
cd verif
zcat /boot/initrd.img-$(uname -r)|cpio -iv
cat /tmp/verif/conf/conf.d/cryptroot

le résultat est le suivant :

target=diskcrypt,source=/dev/sda3,key=none,rootdev,lvm=vg--pc-root,lvm=vg-pc

On peut désormais terminer :

umount /proc
umount /sys
sync
exit
umount /mnt/root/boot
umount /mnt/root/home
umount /mnt/root

Et vous pouvez redémarrer ...

Au boot le système vous demande la passphrase :

Et le système démarre pour avoir enfin la mire de login :

Flash Player sous Ubuntu Lucid 10.04 64 bits

La version du package sous Lucid qui installe le flash utilise le plugin en 32 bits et NDISWrapper. Et bien sûr cela ne fonctionne pas très bien (par exemple il est impossible de cliquer sur le bouton Play sur les vidéos Youtube).

Voici une procédure pour installer la version 64 bits.

Désinstallation du package

sudo apt-get remove flashplugin-installer

Il faut télécharger l'archive du plugin à cette adresse puis la décompresser/détarer.

tar zxvf libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz

Copier le plugin dans le bon répertoire :

cp libflashplayer.so /usr/lib/firefox-addons/plugins/

Et redémarrer votre Firefox.

dimanche 2 mai 2010

Convertir ses Vidéos sous Ubuntu pour Android (HTC Hero) [update # 1]

Lorsque vous voulez visionner des vidéos sur votre androphone il faut les convertir dans un format et une taille lisible par votre mobile. Vous trouverez sur ce lien (inspiré d'une aide Ubuntu) un tuto (ainsi qu'un petit scrip bash) qui explique comment convertir vos vidéos pour un HTC Hero.

Ne fonctionne plus sous Lucid, je cherche une autre solution ...