Tensin

Aller au contenu Aller au menu Aller à la recherche

Mot-clé - pense-bête

Fil des billets - Fil des commentaires

dimanche, juillet 4 2010

Prendre la main sur la session courante avec VNC

VNCPar défaut, la connexion par VNC sur un serveur distant sous Linux démarre une nouvelle session. Ce n’est pas forcément ce que l’on souhaite toujours, personnellement, ne démarrant une session X que pour de rares applications qui ne sont pas lançables en ligne de commande, je préfère retomber sur la session de connexion courante.

Pour ce faire rien de plus simple, il suffit d’installer et de démarrer x11vnc dans la session sur laquelle on veut prendre la main.

Installation classique sous Ubuntu via :

sudo apt-get install x11vnc

Mise en place du password (qui sera demandé lors de la connexion depuis le PC client) :

x11vnc -storepasswd

Le fichier password sera par défaut stocké dans le répertoire home de l’utilisateur, sous ~/.vnc/passwd. Il est tout à fait possible d’utiliser une autre localisation (voir l’aide en ligne de x11vnc).

Ensuite un petit script pour démarrer x11vnc sur le serveur Linux, dans la session que l’on veut retrouver ensuite via VNC sur un poste client.

#!/bin/zsh
x11vnc -noxdamage -ncache 10 -display :0 -forever -usepw

A lancer en nohup ou à automatiser au démarrage.

Ensuite sur le PC client, j’utilise TightVNC, mais çà marche bien sûr avec toute autre implémentation VNC, y compris UltraVNC sous Windows ou WiNE :

vncviewer 192.168.0.2

Après saisie du mot de passe, on se retrouve en mode fenêtré sur la session démarrée sur le serveur distant.

Liens :

mercredi, janvier 20 2010

Effacer intégralement le contenu d'un disque dur

HDD

Le simple fait :

  • d’effacer des fichiers ;
  • de formatter une partition ;
  • de détruire la partition (avec GParted ou autre) ;

ne suffit aucunement à retirer les fichiers physiquement du disque : les données des fichiers sont toujours présentes sur le disque et il est (relativement) facilement facile de les récupérer (par exemple avec l’outil en ligne de commande foremost).

Pour les effacer de manière plus sécurisée, par exemple avant de revendre un PC ou de donner un disque dur, il est nécessaire de passer des commandes qui vont non pas se contenter d’effacer les fichiers du disque ou d’altérer la partition, mais qui vont écrire des données sur l’intégralité du disque.

Solution 1 - dd

Utiliser la commande dd pour copier des blocs nuls sur tout le disque.

dd if=/dev/zero of=/dev/sdg1 bs=1024 count=732572001

  • of : le device de destination (un disque complet ou une partition) ;
  • bs : le nombre d’octets à écrire à chaque fois ;
  • count : le nombre de blocks à écrire.

Pour trouver le nombre de blocs il est possible de passer par fdisk :

ubuntu:/var/log> sudo fdisk /dev/sdg

Le nombre de cylindres pour ce disque est fixé à 91201.
Il n'y a rien d''incorrect avec cela, mais c'est plus grand que 1024,
et cela pourrait causer des problèmes pour certaines installations:
1) logiciels qui sont exécutés à l'amorçage (i.e., vieilles versions de LILO)
2) logiciels d'amorçage et de partitionnement pour d'autres OS
   (i.e., DOS FDISK, OS/2 FDISK)

Commande (m pour l'aide): p

Disque /dev/sdg: 750.1 Go, 750156374016 octets
255 têtes, 63 secteurs/piste, 91201 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Identifiant de disque : 0x000077ba

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdg1               1       91201   732572001   83  Linux

Le nombre de blocs est donné ici pour la partition sdg1 qui couvre tout le disque.

Solution 2 - shred

La solution avec dd se contente de remplir le disque avec des zéros. Les données ne sont plus accessibles directement mais une récupération brute sur le disque peut toujours ramener des fichiers. Pour aller plus loin il est possible de passer par un outil qui fera la même chose que dd, mais avec plusieurs passes, par exemple shred.

shred -vfz -n 64 /dev/sdg

Cette commande va écrite des zéros (option -z), en faisant 64 passes (-n 64), en mode verbose (-v) et en forçant au besoin les permissions (-f).

shred est par défaut installé sur la plupart des systèmes Linux (ex. Ubuntu), au besoin l’installer avec la commande d’installation habituelle, genre :

sudo apt-get install shred

A noter que cette opération est généralement très longue (environ 15h sur mon PC pour faire une seule passe sur un disque dur de 200GO Western Digital branché en SATA).

Remarques.

Il est théoriquement toujours possible de récupérer ensuite des données sur un disque effacé de la sorte, en passant par un laboratoire spécialisé. Ces manipulations, pour des données sensibles, peuvent donc ne pas être suffisantes.

Annexe - Retirer un flag GPT (GUID Partition Table).

Le nouveau format Intel de gestion des partitions est GPT (GUID Partition Table).

Ce format est par exemple utilisé pour les disques montés en RAID avec dmraid. Il fonctionne sans problèmes sous Linux. Toutefois, j’ai galéré cinq bonnes minutes pour trouver comment retirer proprement et facilement cette information d’un disque que l’on souhaite partitionner normalement.

Sans çà, un appel à cfdisk produit le warning suivant :

“Attention!! Identifiant GPT (GUID) de table de partitions non supporté détecté. Utilisez GNU Parted.”

La seule solution simple que j’ai trouvée est d’installer le petit outil gdisk (similaire à fdisk mais pour les partitions GPT) : http://sourceforge.net/projects/gptfdisk

Il suffit ensuite d’aller dans les options “Expert” puis “zap”.

ubuntu:/home/sergio/Bureau> sudo gdisk /dev/sdg
GPT fdisk (gdisk) version 0.6.0

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: damaged

Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
 1 - GPT
 2 - Create blank GPT

Your answer: 1

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): i
No partitions

Command (? for help): x

Expert command (? for help): ?
a	set attributes
c	change partition GUID
d	display the sector alignment value
e	relocate backup data structures to the end of the disk
g	change disk GUID
i	show detailed information on a partition
l	set the sector alignment value
m	return to main menu
n	create a new protective MBR
o	print protective MBR data
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	resize partition table
v	verify disk
w	write table to disk and exit
z	zap (destroy) GPT data structures and exit
?	print this menu

Expert command (? for help): z
About to wipe out GPT on /dev/sdg. Proceed? (Y/N): Y
Blank out MBR? (Y/N): Y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities. Program will now terminate.
ubuntu:/home/sergio/Bureau>