-
\ / @ )
\ _/_ |~ \) ____ _
\ ( ( ( \ \ | _ \ ___ _ __ ___ | |__ ___
( ( ( ( ( | \ | |_) / _ \| '_ ` _ \| '_ \ / _ \
_ _=(_(_(_(_(_(_(_ _ _ / ) | __/ (_) | | | | | | |_) | (_) |
- _ _ _ / |_| \___/|_| |_| |_|_.__/ \___/
_\___ guide version 2013-05-01.1
` "'
Guide de Pombo
Sommaire
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.
Note : depuis la version 0.0.11, le numéro de série est automatiquement ajouté aux rapports.
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é.
Procédure
- Vous avez spécifié au préalable un nom de fichier FICHIERAVERIF pour la variable $CHECKFILE dans pombo.php
- Entrer l'URL suivante dans votre
navigateur web (à adapter à votre cas) : http://monserveur.fr/chemin_vers_pombo/pombo.php?check=FICHIERAVERIF
- Le fichier FICHIERAVERIF est créé automatiquement sur le serveur.
- Pombo sait que votre ordinateur est volé.
Ceci aura comme effet de faire des captures du système plus fréquemment (toutes les 5 minutes).
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
- Informations matérielles : N/S, modèle et marque
- 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
Téléchargements
Vous pouvez suivre le développement sur GitHub.
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
-
Windows
Exécutez simplement pombo-x.y.z_setup.exe et suivez les instructions.
Ne vous préoccupez pas de python, ni de ses dépendances, tout y est inclus.
-
GNU/Linux
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 compatible Python 3 que depuis la version 0.0.10
/!\
-
GNU/Linux
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 : GnuPT.
Une autre version, plus lourde, qui s'appelle 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
à 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 :
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
Outils utilisés
Action |
Windows |
GNU/Linux |
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 |
scrot |
Capture webcam |
bibliothèque VideoCapture |
streamer |
-
GNU/Linux
Paquets à installer : python-ipy python-requests net-tools iw traceroute scrot streamer
Explication des options de Pombo
Récapitulatif des options
%%s sera remplacé par un nom de fichier
Paramètre |
Valeur pour Windows |
Valeur pour GNU/Linux |
gpgkeyid |
KeyID |
password |
$mot_de_passe |
serverurl |
URL[|URL|...] |
time_limit |
15 |
email_id |
vide |
useproxy |
True ou False |
proxyurl |
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/scrot -z -m -q 50 %%s |
camshot |
True ou False |
/usr/bin/streamer -q -w 3 -o %%s |
camshot_filetype |
inexistante |
jpeg |
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 "|" comme séparateur (sans espace)
- useproxy : si cette option est mise à True, alors prise en compte du proxy spécifié à proxyurl
- proxyurl : serveur proxy à utiliser, du type http://proxyurl:proxyport ou http://username:password@proxyurl:proxyport
-
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)
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 : 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 : commande qui prendra une capture d'image par la webcam
-
camshot_filetype
- Windows : cette option n'existe pas
- GNU/Linux : spécifier l'extension de l'image capturée par la webcam
Effectuer un test
Ouvrez une console et...
-
Windows
... Exécutez le script Pombo - Test
.
-
GNU/Linux
... Exécutez la commande sudo /usr/local/bin/pombo 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.10].
- Impossibilité d'utiliser des serveurs sécurisées (HTTPS)
- Erreur lors de la validation de l'accès à Internet depuis une adresse IPv6
- Lors d'un vol, les rapports n'arrivent pas
- Lors d'un vol, seulement 2 rapports sont envoyés au lieu de 3 comme prévu
- Les rapports sont écrasés car ils portent le même nom
- Le délai entre chaque rapport ne coincide pas avec les 5 (ou 15) minutes
- Vous êtes derrière un proxy, cette option n'est valable qu'à partir de cette version
Anciennes erreurs
/!\ 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.
Assurer le suivi de plusieurs machines
La méthode que nous utilisons est relativement simple, voici l'arborescence du serveur :
|---pombo/
|---albert/
|---index.php
|---gilbert/
|---index.php
|---marine/
|---index.php
|---bidule/
|---index.php
|---pombo.php
Dont voici le contenu des fichiers index.php :
1 2 3 | <?php
require '../pombo.php' ;
?>
|
De ce fait,
Pombo peut être mis à jour facilement.
Si Albert se fait voler son PC, alors il n'y a qu'à créer le fichier $CHECKFILE dans le dossier albert/ (voir
§ Mon ordi a été volé !).
Licence
Ce programme est distribué sous la licence zlib/libpng (certifiée OSI).
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 Sébastien SAUVAGE, père de Pombo.
Par ici pour la FAQ.
Vous pouvez me contactez à moc.liamg@gitobob.
Historique
*** Une grosse partie du contenu a été pompée depuis sebsauvage.net avec l'accord de l'auteur ***
Contenu modifié le 01/10/2013.
moc.liamg@gitobob -
Philosophie.