mercredi 4 août 2010

Blocklists avec Transmission

Transmission est le client Bittorrent installé par défaut sur Ubuntu.
C'est un client Bittorrent très léger et fonctionnel . Il dispose de nombreuses fonctionnalités comme le cryptage des données, l'échange de pairs, la limitation des débits en émission et en réception… 
Mais dans ce billet, nous alllons nous pencher sur sa capacité à gérer des listes de blocage d'IP "indésirables"

Transmision intègre de base la gestion de la blocklist level1 issue de Bluetack. Quand vous cliquez sur le bouton mettre à jour,ou lors de la mise à jour automatique, Transmission va télécharger une copie du level1 sur un site miroir qui est actualisé deux fois par jour.


Mais en réalité, Transmission est capable d'utiliser tout type de blocklist au format Bluetrack !


Pour ajouter une blocklist, il suffit d'ajouter la blocklist décompressée dans le répertoire /blocklists  (/home/$USER/.config/transmission/blocklists).
Quand Transmission démarre, il va scruter ce répertoire et transformer les fichiers trouvés en binaire .bin (vitesse de lecture accrue).


Rien de très compliqué, le hic c'est qu'il n'y a pas de mise à jour automatique de ces listes "rapportées".


Le script suivant permet de rapatrier ces fameuses blocklists et de les concaténer en un seul fichier en vérifiant qu'il n'y a pas de redondance des données dans le fichier final.
Il suffira de le lancer avec votre gestionnaire de tache préféré pour effectué une mise à jour régulière de ces blocklists. 
Petit rappel: les blocklists ne sont pas une sécurité absolue ! Mais ce n'est pas une raison non plus pour faciliter la tâche à tous les malfaisants du web..du web et au-delà ...


Installation:
Ouvrir un terminal, taper la ligne suivante:
gedit blocklist_transmission.sh


puis recopier les lignes de codes ci-dessous et enregistrer le fichier dans /home/$USER/.gnome2/nautilus-scripts


Rendez ce script executable par:
cd  /home/$USER/.gnome2/nautilus-scripts
chmod +x blocklist_transmission.sh

Pour le lancer :
./blocklist_transmission.sh




Pour personnaliser ce script en intégrant d'autres blocklists, il vous suffit d'aller sur le site iblocklist : ICI
Copier l'adresse de la blocklist : http://..../.....


Dans la partie du script:
********* Téléchargements des listes de blocage *******************
Ajouter une ligne:
wget -P /home/$USER/tempo/blocklists http://adresse_de_la_blocklist


Le script:


#!/bin/bash
#télécharger des blockslist à partir de http://iblocklist.com/lists.php
# et les intégrer dans le répertoire de Transmission
#
# répertoire de travail
echo " "
echo "******** Compilation d'une Bloclist pour Transmissionbt ***********"
echo " "
if [ -e /home/$USER/tempo/blocklists ]; then
    echo "Répertoire de travail /home/$USER/tempo/blocklists "
else
    mkdir /home/$USER/tempo/blocklists
   
fi
cd /home/$USER/tempo/blocklists
ls
rm *
ls
#
#récupération des fichiers http://iblocklist.com/lists.php
#exemple avec level1, level2, Business ISP et Primary Threats
echo " "
echo "********* Téléchargements des listes de blocage *******************"
#wget -P /home/$USER/tempo/blocklists http://list.iblocklist.com/?list=bt_level1
wget -P /home/$USER/tempo/blocklists http://list.iblocklist.com/?list=bt_level2
wget -P /home/$USER/tempo/blocklists http://list.iblocklist.com/?list=ijfqtofzixtwayqovmxn
wget -P /home/$USER/tempo/blocklists http://list.iblocklist.com/?list=jcjfaxgyyshvdbceroxf
#
#décompression
echo "********* Décompression des listes téléchargées *******************"
gunzip -tv *.gz
gunzip -v *.gz
#
#concaténer les fichiers
echo " "
echo "********* Création d'une seule liste sans redondance des données **"
echo "traitement en cours ...Patientez SVP..."
list1=$(ls) && sort -u $list1 >> blocklist &&
#
#Déplacement du fichier blocklist dans le répertoire de Transmission
echo " "
echo "********* Déplacement de la Blocklist *****************************"
if [ -d /home/$USER/.config/transmission/blocklists/blocklist ] ;then
    cd /home/$USER/.config/transmission/blocklists/
    mv -f /home/$USER/.config/transmission/blocklists/blocklist /home/$USER/tempo/blocklists/blocklist.bak
    echo " " & echo "Backup de l'ancienne liste"
fi
cd /home/$USER/tempo/blocklists
ls
mv -t /home/$USER/.config/transmission/blocklists/ blocklist
cd /home/$USER/.config/transmission/blocklists/
echo " "
echo "Liste des fichiers dans /home/$USER/.config/transmission/blocklists/ "
ls
verif=$(ls blocklist)
if [ -s $verif ]; then
    echo " "
    echo "*********** Opération terminée ************************************"
    echo " "
    echo "Au prochain démarrage de Transmission, "
    echo " un nouveau fichier .bin sera généré par celui-ci "
else
    echo " "
    echo " -NOK-NOK- !! Le fichier bloklist est vide !! -NOK-NOK- "
fi
echo " "
echo "Taper une touche pour quitter"
read mot
exit

8 commentaires:

  1. Merci pour l'astuce !

    RépondreSupprimer
  2. Peux-t-on visualiser dans les logs, le nombre de fois ou une ip a été blockée car elle se trouvait dans la liste ?

    RépondreSupprimer
  3. @Timothée Gros
    Pas trouvé ces infos dans les logs de transmission. Peut-être que Moblock répondrait mieux à ton besoin: http://papillon-butineur.blogspot.com/2009/07/bloqueur-dip-moblock.html
    $cat /var/log/MoBlock.stats qui donne toutes les IP bloquées depuis la dernière remise à zéro du fichier.

    RépondreSupprimer
  4. C'est cool, c'est la première fois que j'ai un mac et je n'ai rien compris à ce tuto: je voulais juste savoir comment faire pour ajouter plusieurs blocklists à Transmission. C'est peut-être tout con à faire mais je n'y connais pas grand-chose...
    Quelqu'un pourrait-il m'expliquer comment est-ce que je peux m'y prendre svp ? (de préférence en ne sautant pas les étapes)

    RépondreSupprimer
  5. Pour enregistrer plusieurs listes dans transmission tu dois aller dans le dossier user/***/Bibliothèque/Application Support/Transmission/ Blocklists.
    Tu copie/colle les listes au format.txt dedans et au prochain démarrage de Transmission, il va les convertir en .bin afin de les mettre à jour.
    Et le tour est joué.

    RépondreSupprimer
  6. There, I fixed it.

    #!/bin/bash
    #télécharger des blockslist à partir de http://iblocklist.com/lists.php
    # et les intégrer dans le répertoire de Transmission
    #
    cd /home/$USER/.config/transmission/blocklists/
    #
    #récupération des fichiers http://iblocklist.com/lists.php
    #exemple avec level1, level2, Business ISP et Primary Threats
    echo " "
    echo "********* Téléchargements des listes de blocage *******************"
    #list1 commented out because it is already retrieved automatically by transmission as per my settings
    wget -P /home/$USER/tempo/blocklists "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz" --output-document=bt_level1.gz
    wget -P /home/$USER/tempo/blocklists "http://list.iblocklist.com/?list=bt_level2&fileformat=p2p&archiveformat=gz" --output-document=bt_level2.gz
    wget -P /home/$USER/tempo/blocklists "http://list.iblocklist.com/?list=ijfqtofzixtwayqovmxn&fileformat=p2p&archiveformat=gz" --output-document=primary_threats.gz
    wget -P /home/$USER/tempo/blocklists "http://list.iblocklist.com/?list=jcjfaxgyyshvdbceroxf&fileformat=p2p&archiveformat=gz" --output-document=business_isps.gz

    #décompression
    echo "********* Décompression des listes téléchargées *******************"
    # use the "force" (-f) to overwrite previous files
    gunzip -f *.gz
    rm *.gz
    exit

    RépondreSupprimer
  7. Bonjour,
    Le site I-Blocklist indique que l'auteur d'une liste (colonne author) peut-être "I-Blocklist" ou "TBG"...
    Ces listes fonctionnent-elles dans transmission ?
    Merci pour votre aide. Boris.

    RépondreSupprimer
    Réponses
    1. C'est le format des listes qui est important, i-blocklist et TBG correspondent à des "auteurs" de liste plutôt qu'à des formats.
      "Transmission supports the P2P Plaintext Format, which is used by PeerGuardian, Bluetack, Vuze, ProtoWall, and KTorrent, and the DAT format, which was originally made popular by eMule."
      source : https://trac.transmissionbt.com/wiki/Blocklists

      Supprimer