Guide de Pombo
-
\ / @ )
\ _/_ |~ \) ____ _
\ ( ( ( \ \ | _ \ ___ _ __ ___ | |__ ___
( ( ( ( ( | \ | |_) / _ \| '_ ` _ \| '_ \ / _ \
_ _=(_(_(_(_(_(_(_ _ _ / ) | __/ (_) | | | | | | |_) | (_) |
- _ _ _ / |_| \___/|_| |_| |_|_.__/ \___/
_\___ guide version 2012-01-20.1
` "'
Guide
Qu'est-ce que c'est ?
Pombo peut vous aider à récupérer votre ordinateur en cas de vol.
Pensez à noter le numéro de série de l'ordinateur, sans ce dernier - et sous réserve de posséder les documents générés par Pombo - la police risquerait de ne pas pouvoir faire grand chose.
Comment ça marche ?
Pombo travaille en tâche de fond, caché, et envoie des informations de traçage à un serveur web de votre choix.
Si votre ordinateur est volé, il vous suffit de vous connecter sur votre serveur web pour récupérer le dernier fichier envoyé par Pombo, le déchiffrer et le fournir à la police. Il contient tout le nécessaire pour permettre à la police de retrouver le voleur : Adresse IP, date/heure, routeurs proches, capture d'écran et même une photo du voleur si vous avez une webcam !
Pombo protège votre vie privée : Les informations de traçage sont chiffrées avec GnuPG et vous - et seulement vous - pouvez les déchiffrer.
Mon ordinateur a été volé !
Depuis la version 0.0.9, il vous est possible de créer un fichier sur un des serveurs distants afin de faire comprendre à Pombo que l'ordinateur est bien volé.
Pour ce faire, il vous suffit d'appeler un lien tel que : http://myserver.com/pombo.php?check=CHECKFILE
CHECKFILE est une option à définir.
Ceci aura comme effet de faire des captures du système plus fréquemment (toutes les 5 minutes).
Fonctionnement :
- toutes les 15 minutes, le script regarde si le fichier CHECKFILE est présent sur un des serveurs
- si oui, Pombo envverra un rapport toutes les 5 minutes
- si non, alors on regarde l'option ONLYIPCHANGE
- si à True, alors Pombo enverra un rapport toutes les 15 minutes
- si à False, on ne fait rien
Caractéristiques
- Respecte votre vie privée : Les informations de traçage sont chiffrées avec une clé publique avant d'être envoyées, et seulement vous pouvez les déchiffrer avec la clé privée correspondante.
- Sûre : Aucun port à ouvrir, et ne permet pas le contrôle à distance.
- Ne dépend pas de sites ou services tiers : Vous avez le contrôle sur le serveur et le client. Vous pouvez changer de serveur à tout moment.
- Totalement gratuit : Pas de logiciel à acheter, pas de service à souscrire et renouveller.
- Opensource: Vous pouvez le modifier, l'adapter à vos besoin.
- Fondations fiables : Pombo n'essaie pas de ré-inventer la roue et se base sur des logiciels solides (par exemple, pas de chiffrement bricolé maison : utilise GnuPG).
- Prend des informations de traçage uniquement si une connexion internet est disponible.
- Discret : Utilise zéro CPU, zéro mémoire et n'apparaît pas dans la liste des processus quand il n'est pas en activité (ce n'est pas un démon).
- Informations collectées :
- Nom du système
- Adresse IP publique
- Date/heure
- Information sur toutes les interfaces réseau (filaires et wifi), y compris l'adresse matérielle (MAC) du point d'accès WiFi auquel l'ordinateur est connecté.
- Connexions réseau en cours
- Informations sur les routeurs proches
- La liste de tous les points d'accès WiFi proches, avec leur adresse matérielle (MAC), leur SSID et leur puissance.
- Capture d'écran
- Photo par la webcam (si vous en avez une)
Exemple de rapport
Pombo n'envoie que des fichiers zip chiffrés avec GnuPG (par exemple ubuntu_20090824_155501.zip.gpg) mais pour des raisons pratique, voici un exemple de ce qu'ils contiennent :
Pombo 0.0.9 report
------------------------------
Computer: Linux Debian 3.1.0-1
------------------------------
Public IP: 64.202.189.170
------------------------------
Date/time: 2012-02-22 09:35:30
------------------------------
Network config:
eth0 Link encap:Ethernet
|
 |
 |
| Rapport technique |
Capture d'écran |
Photo par webcam |
Téléchargement
La dernière version (0.0.9) se trouve ici.
Variantes
Avant toute chose : un grand merci aux contributeurs :)
Voici donc les différentes variantes disponibles :
- Si vous préférez transférer les rapports par FTP, vous pouvez utiliser la version de tuxmouraille.
- Pour ceux qui n'ont pas de serveur, sachez que grâce à l'App Engine de Google, vous bénéficiez d'un espace de stockage de 1Go. Vous trouverez les fichiers sur le github de solsTiCe d'Hiver.
Installation
C'est parti !
-
Windows
Exécutez simplement pombo-0.0.9_setup.exe et suivez les instructions.
Ne vous préoccupez pas de python, ni de ses dépendances, tout y est inclus.
-
GNU/Linux (et les autres)
Exécutez simplement le script install.sh.
-
Serveur
Pombo supporte les version 4 et 5 de PHP.
- Modifiez la variable
$PASSWORD du fichier pombo.php, mettez un bon mot de passe
- Modifiez la variable
$CHECKFILE du fichier pombo.php
- Envoyez pombo.php sur le ou les serveurs distants
Voilà c'est fait ! Il ne vous reste plus qu'à installer les dépendances et de préciser les options. Le tour est joué !
N'oubliez pas de tester le bon fonctionnement de Pombo une fois l'installation et la configurations terminées.
Python
/!\ Pombo n'est pas compatible Python 3.*
/!\
-
GNU/Linux (et les autres)
Il devrait être installer de base, sinon voir avec le gestionnaire de paquets :
- Debian GNU/Linux et dérivés :
aptitude install python
- Fedora :
yum install python
- Mandriva et dérivé :
urpmi python
- openSUSE :
zypper install python
- Gentoo et dérivés :
emerge python
- FreeBSD :
pkg_add python
Il est installé de base sur Mac OS X.
GnuPG
GnuPG nous permettra de chiffrer l'archive finale, ainsi seul celui qui possède la clef pourra la déchiffrer.
-
Windows
Il existe une version spécialement conçue pour les plateformes de Microsoft : Gpg4win.
Vous pouvez télécharger la version de base ou une plus légère (sans quelques fioritures et manuels).
Quelque soit la version, lors de la sélection des composants, rien n'est nécessaire en plus de GnuPG.
-
GNU/Linux (et les autres)
À l'aide du gestionnaire de paquets :gnupg
Pour Mac OS X, voir du côté de GPGTools.
-
Le certificat
Si vous avez déjà une clef publique, importez-là :
- Windows :
gpg --import votreclepublique.asc
- GNU/Linux (et les autres) :
sudo gpg --import votreclepublique.asc
Sinon, voici la procédure pour la création d'une paire de clefs (plus d'infos) :
- Ouvrez une console
- Tapez
gpg --gen-key
- Renseignez le type de clef, si vous ne savez que choisir, le choix par défaut ira très bien
- Renseignez la longueur, si vous ne savez que choisir, le choix par défaut ira très bien
- Renseigez la durée de vie de la clef, si vous ne savez que choisir, le choix par défaut fera l'affaire
- Confirmez
- Entrez votre nom
- Entrez votre adresse courriel
- Entrez un commentaire
- Confirmez
-
Phase importante : entrez une phrase clef
- la phrase clef doit être longue,
- la phrase clef doit contenir des caractères non alphabétiques, ponctuation, chiffres, caractères spéciaux,
- la phrase clef ne doit EN AUCUN CAS être une date de naissance, un prénom, un numéro de sécurité sociale, un nom ou quoi que ce soit d'aussi facile à deviner, ni même une concaténation de données de ce type.
Le choix d'une bonne phrase clef est difficile, mais n'oubliez pas qu'une chaine n'est jamais plus solide que son maillon le plus faible. VoUs pOUvEz AmélIOReR lA SécUrité dE vOtRe pHRaSE CLEF en utiLISaNT DEs mAjUsCUles eT dEs MInUscUlEs (mais pas uniquement !) dE FAçOn IRrégUlièRE.
- Une fois toutes les informations entrées, le calcul de votre paire de clef commence. Le générateur de nombres pseudo-aléatoires a besoin d'un très grand nombre de données aléatoires, ce qui est difficile sur un ordinateur. Vous pouvez améliorer la qualité des résultats du générateur de nombres pseudo-aléatoires en générant vous même un peu de hasard, par exemple en bougeant votre souris, en tapant sur votre clavier, en exécutant des applications, etc. L'utilisation de pseudo-hasard est nécessaire pour s'assurer qu'il n'est pas possible d'obtenir votre clef privée en effectuant le même calcul que vous. En fait, les chances de succès d'une telle attaque sont directement liées à la qualité du pseudo-hasard généré par le générateur de nombres pseudo-aléatoires.
-
Une fois la génération terminée, vous devriez voir une ligne du genre :
gpg: clé 3D51F36F marquée comme ayant une confiance ultime.
Notez 3D51F36F qui sera le KeyID à inscrire dans le fichier de configuration pombo.conf.
- Exportez votre clef publique :
gpg --export 3D51F36F >clefpublique.asc
Pour plus de détails : AbulÉdu.
Dépendances
/!\ Il s'agit là de logiciels recommandés, vous pouvez très bien ne pas les installer ou en choisir d'autres.
Récapitulatif des outils utilisés :
| Action |
Windows |
GNU/Linux et * |
| Configuration des interfaces réseau |
ipconfig |
ifconfig |
| Points d'accès Wifi |
netsh |
iw |
| Traceroute |
tracert |
traceroute |
| Connexions actives |
netstat |
netstat |
| Capture d'écran |
bibliothèque PIL |
imagemagick |
| Capture webcam |
bibliothèque VideoCapture |
streamer |
| Réducteur de poids des images |
pngnq |
pngnq |
-
GNU/Linux (et les autres)
Paquets à installer : net-tools iw traceroute imagemagick streamer pngnq
Explication des options de Pombo
Récapitulatif des options :
| Paramètre |
Valeur pour Windows |
Valeur pour GNU/Linux et * |
| gpgkeyid |
KeyID |
| password |
$mot_de_passe |
| serverurl |
URL[,URL,...] |
| onlyonipchange |
True ou False |
| checkfile |
$nom_de_fichier |
| network_config |
ipconfig /all |
/sbin/ifconfig -a |
| wifi_access_points |
netsh wlan show all |
/sbin/iwlist scanning |
| traceroute |
tracert -d www.example.org |
/usr/bin/traceroute -q1 -n www.example.com |
| network_trafic |
netstat -n |
/bin/netstat -putn |
| screenshot |
True ou False |
/usr/bin/import -windows root %%s |
| camshot |
True ou False |
/usr/bin/streamer -q -o %%s |
| camshot_filetype |
inexsitante |
png |
| recompression |
C:\pombo\pngnq\pngnq.exe %%s |
/usr/bin/pngnq %%s |
| %%s sera remplacé par un nom de fichier |
Explications
- gpgkeyid : le KeyID de la clef publique qui servira à chiffrer l'archive finale
- password : le mot de passe doit concorder avec celui défini dans pombo.php (sur le serveur)
- serverurl : liste du ou des serveurs distants vers lesquels envoyer le fichier chiffré. Si plusieurs URL sont données, utilisez la virgule comme séparateur (sans espace)
-
onlyonipchange : si cette option est mise à True, alors Pombo ne tracera et n'enverra le fichier chiffré que lorsque l'adresse IP sera différente de celle contenue dans C:\pombo\pombo (Windows) ou /var/local/pombo (GNU/Linux et *)
L'adresse IP contenue dans ce fichier est hashée à l'aide de l'algorithme SHA256.
-
checkfile : nom du fichier à vérifier sur l'un des serveurs distants pour savoir si l'ordinateur à été volé ; doit concorder avec celui défini dans pombo.php (sur le serveur)
Bon à savoir : pour désactiver une commande, mettez-la à
False.
- network_config : commande qui affiche la configuration des interfaces réseau
- wifi_access_points : commande qui affiche les réseaux wifi alentours
- traceroute : commande qui affiche le chemin parcouru par les paquets pour arriver à une adresse donnée (en l'occurrence www.example.org)
- network_trafic : commande qui affiche les connexions actives
-
screenshot
- Windows : mettre cette option à False afin de désactiver la capture d'écran
- GNU/Linux et * : commande qui prendra une capture d'écran
-
camshot
- Windows : mettre cette option à False afin de désactiver la capture d'image par la webcam
- GNU/Linux et * : commande qui prendra une capture d'image par la webcam
-
camshot_filetype
- Windows : cette option n'existe pas
- GNU/Linux et * : spécifier l'extension de l'image capturée par la webcam
- recompression : commande utilisée pour compresser les images
Effectuer un test
Ouvrez une console et...
-
Windows
... Exécutez le script test-pombo.bat.
-
GNU/Linux (et les autres)
... Exécutez la commande sudo /usr/local/bin/pombo.py check.
Puis vérifiez que le fichier gpg est bien envoyé au serveur web (si vous voyez "Server responded: File stored." c'est que tout a fonctionné.).
Conseils
- Activez la fonction d'auto-login : Le voleur ne sera pas bloqué par l'écran de login et donc moins tenté d'effacer tout le disque dur.
- Copiez votre clé privée dans un endroit sûr. Si vous la laissez uniquement sur l'ordinateur et que cet ordinateur est volé, vous perdez votre clé privée et donc votre capacité à déchiffrer les fichiers de traçage.
- Ne laissez pas votre clé privée sur l'ordinateur à protéger. Bien que la clé privée soit elle-même chiffrée et protégée par mot de passe, il ne vaut mieux pas la laisser dans les mains du voleur.
- Pour protéger vos fichiers personnels des regards indiscrets, utilisez TrueCrypt, sûre et fiable.
Résolution des problèmes
Erreurs possibles :
- Il se pourrait qu'il y ait des soucis côté serveur avec l'espace de stockage SFR : essayez la version utilisant l'App Engine.
- L'erreur Capture Graph could not be created avec VideoCapture (Windows) vient du fait que le pilote de la webcam n'est pas le bon ou deffectueux.
/!\ Si vous rencontrez un de ces problèmes, veuillez mettre à jour votre version de
Pombo [0.0.9].
- Les rapports créés sont vides
- Pombo ne fonctionne pas sous le compte Invité (GNU/Linux)
- Erreur d'encodage de la console (unicode() argument 2 must be string, not None)
- Si vous rencontrez l'erreur neither audio nor video format specified/found avec streamer, essayez de modifier l'option camshot_filetype. Essayez la commande dans une console pour trouver la bonne extension.
/!\ Si vous rencontrez un de ces problèmes, veuillez mettre à jour votre version de
Pombo [0.0.8].
- La photo prise par la webcam est toute blanche/grise.
- Le serveur retourne Wrong password.
- Erreur neither audio nor video format specified/found avec streamer.
Licence
Ce programme est distribué sous la licence zlib/libpng (certifiée OSI).
http://www.opensource.org/licenses/zlib-license.php
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Liens et contact
Le site de Sebastien SAUVAGE, père de Pombo.
Par ici pour la FAQ.
Vous pouvez me contactez à moc.liamg@gitobob.
Historique
-
0.0.8 à 0.0.9
- Ajout d'un installeur pour Windows
- Ajout du script install.sh pour GNU/Linux
- Ajout de la gestion de plusieurs adresses IP de confiance (merci à Guillaume Millet)
- Ajout de l'argument check pour afficher les messages (aucun affichage par défaut)
- Ajout des arguments add, ip et list pour la gestion des adresses IP
- Ajout de l'argument help pour afficher l'aide
- Ajout d'une option camshot_filetype pour spécifier le format de l'image capturée par webcam
- Ajout d'une option checkfile (voir ici) [merci à Laurent C.]
- Ajout d'un test pour être sûr de pouvoir lire le fichier de configuration
- Ajout des explication des options directement dans le fichier de configuration
- Ajout des chemins complets des outils pour GNU/Linux afin de régler les soucis de path
- Correction de plusieurs erreurs et optimisations grâce au travail de solsTiCe d'Hiver
- Correction des erreurs liées au compte Invité
- Correction d'une erreur lors de l'enregistrement de l'image créée par la webcam
- Correction de l'erreur d'encodage de la console (merci à Guillaume Millet et Vincent Ardiet)
- Corrections diverses
-
0.0.7 à 0.0.8
- Correction de quelques erreurs (voir ici)
- Meilleure gestions des webcams
- L'option pngnq a été renommée en recompression
-
0.0.6 (sebsauvage) à 0.0.7 (BoboTiG)
- Support de Windows
- Support de plusieurs serveurs distants
- Possibilité de désactiver ou modifier les commandes dans le fichier de configuration
Lien vers l'ancien historique (en anglais).
*** Une grosse partie du contenu a été pompée depuis
sebsauvage.net avec l'accord de l'auteur ***