Sécurisez son PC sous Linux avec Pombo

Transcription

Sécurisez son PC sous Linux avec Pombo
[TUTO] Sécurisez son PC sous Linux avec Pombo
Vous avez peut-être déjà entendu parlé de Undercover, ce logiciel mouchard pour Mac qui
permet de recenser les infos relatives à l’IP du voleur de PC, voire de le photographier avec sa
webcam. Et bien il est un logiciel équivalent sous Linux : pombo.
Présentation de Pombo
Pombo repose sur un script Python initialement proposé par Sebsauvage (vous n’avez pas
décemment le droit de ne pas le comprendre) et qui a été repris et mis à jour par BoboTiG. Ce
script est publié sous licence zlib/libpng et nécessite Python 2.7 et PHP 4 (ou 5) pour
fonctionner.
Celui-ci collecte :
• Nom du système
• Adresse IP publique
• Date/heure
• Information sur toutes les interfaces réseau (filaires et wireless), 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)
Le principe de fonctionnement de Pombo est simple :
• Sur l’ordinateur à protéger, un script Python envoi toutes les x minutes un rapports
d’état du poste (contenant un rapport txt, une copie d’écran et une capture photo faite
avec la webcam).
• Sur un (ou plusieurs) serveur(s) PHP dont l’accès est protégé par mot de passe, le
rapport – qui a été chiffré avec une clé gpg – le fichier est enregistré.
Voici un exemple de rapport par Pombo :
Pombo 0.0.6 report
-----------------------------Computer: Linux ubuntu 2.6.28-----------------------------Public IP: 82.124.224.94
-----------------------------Date/time: 2009-08-24 15:55:01
-----------------------------Network config:
eth0 Link encap:Ethernet
Rapport technique
Capture d’écran
Photo par webcam
Teléchargement de Pombo
La dernière version de Pombo (version 0.0.7) est disponible au téléchargement ici. Pour un
poste Linux, la solution pombo contient 3 fichiers à déployer : pombo.py et pombo.conf
(partie client) et pombo.php (partie serveur).
Voici la procédure pour installer Pombo (testé sous Linux Mint 10 et Ubuntu 11.04, éprouvé
par BoboTiG sous Debian) :
Installation des dépendances
Pour fonctionner, le script utilise, en plus de Python, les logiciel scrot (pour la capture décran),
streamer (pour la capture par webcam), iw, netstat, ifconfig , traceroute (pour les
informations relatives au réseau) et pngnq (pour réduire le poids des images png).
Il est donc nécessaire de commencer par installer ces différentes dépendances (même si par
défaut la plupart sont déjà installée sur votre système), via ces commandes :
sudo apt-get install python scrot iw ifconfig streamer pngnq
Préparation de la partie serveur
PHP étant supporté par l’immense majorité des serveurs, Pombo récupère les
rapports des postes via un script php. Ce script se nomme pombo.php. Dans le fichier
pompo.php, il faut modifier la ligne $PASSWORD=’mysecret’; en remplaçant mysecret par
le mot de passe désiré pour l’échange avec le client.
Puis, on upload le fichier pombo.php sur son serveur web gérant le PHP.
Préparation et installation de la partie client
1. Préparation de la clé gpg
Pombo crée des archives chiffrées avec une clé gpg, lesquelles seront copiées
sur le serveur PHP. Nous allons donc commencer par créer une clé via cette commande :
gpg --gen-key
L’assistant de création de clé va nous demander le type de clé voulue, sa taille et sa durée de
vie, les options par défaut sont très suffisantes (RSA, 2048, clé n’expire pas). Puis, l’utilitaire
va nous demander un nom, une adresse mail et un commentaire. Puis, enfin, va nous
demander une phrase de password. Notez cette phrase, elle sera nécessaire au
déchiffrement des rapports.
Remarque : il est préférable de compliquer un maximum sa phrase de mot de passe
en y mêlant majuscules, minuscules et caractères spéciaux. Par exemple : Clé DE
cryPTage PouR PomBo crée en 2011!!
La clé va se générer, pour l’aider, il est conseiller d’utiliser son PC (taper des mots, jouer avec
la souris, etc. etc.). Une fois la création de la clé terminée, la console devrait afficher la phrase
clé 6D69703B marquée comme ayant une confiance ultime où 6D69703B est le KeyID de la
clé. Notez ce KeyID, il sera nécessaire pour la suite.
On va à présent exporter la clé avec la commande gpg –export 6D69703B >clefpublique.asc,
cela va créer un fichier clefpublique.asc dans votre dossier home. Cette clé sera nécessaire au
déchiffrement de ses archives. Il est donc nécessaire de la sauvegarder précieusement (sur
un poste autre que celui à protéger, cela va de soi).
Il faut maintenant installer en root (le script s’exécutant en tant que root) avec les
commandes :
sudo su
gpg --import /chemin/vers/la/clé/publique.asc
(par exemple, dans mon cas : gpg –import clefpublique.asc )
2. Préparation du fichier de configuration
Les options de paramétrage de pombo se font via le fichier pombo.conf. Dans
ce fichier, cherchez et renseignez les lignes suivantes :
[DEFAULT]
gpgkeyid=KeyID de la clé créée plutôt
password=Mot de passe spécifié sur le fichier pombo.php
serverurl=URL du fichier pombo.php - exemple : http://myserver.com/pombo.php
onlyonipchange=True ou False
Si la valeur de onlyonipchange est True, le script ne créera des rapports que si vous
changez d’adresse IP : lors du premier fonctionnement, le script enregistrera l’IP publique
dans /var/local/pombo et ne créera ensuite les rapports que si l’IP publique est différente. Si
vous utilisez un réseau publique (par exemple, accès WIFI MacDo ou d’université), il est
préférable de choisir la valeur False.
Remarque : il est possible de spécifier différents serveurs en les séparant pas une
virgule (sans espaces).
3. Déploiement des fichiers
A présent, nous allons copier le fichier pombo.conf dans le dossier /etc/ :
cp pombo.conf /etc/
Maintenant, on attribue au fichier pombo.py, les droits nécessaires avec la commande :
chmod +x pombo.py
Puis on le copie dans le dossier /usr/local/bin/ :
cp pombo.py /usr/local/bin/
4. Automatisation des scripts
Afin d’automatiser l’exécution des script, on crée une tâche dans la crontab. Pour cela on
exécute la commande sudo crontab -e, on choisit son éditeur de texte et on insère dans la
crontab la ligne suivante :
*/15 * * * * /usr/local/bin/pombo.py 2>/dev/null
5. Test de fonctionnement
Afin de s’assurer du fonctionnement du script pombo, on peut exécuter la commande
suivante :
sudo -H /usr/local/bin/pombo.py
Si la console répond Server responded: File stored c’est que tout a fonctionné. Une archive
zip chiffrée de quelques Ko a été uploadée sur le serveur PHP.
Déchiffrement des rapports
Le déchiffrement des archives zip des rapports se fait avec la commande :
gpg --output nomdefichierdésiree.zip --decrypt nomdelarchivecryptee.gpg
La clé de password utilisée lors de la création de la clé sera nécessaire au déchiffrement. Cela
va créer un fichier zip contenant un rapport au format txt, une copie de l’écran du poste et
une photo capture faite avec la webcam.

Documents pareils