Gcolpart.com by reg

Le meilleur comme le peer

Le partage de fichier, alias P2P, peut être à la fois un formidable grenier pour un particulier mais aussi un cauchemard pour un réseau. Nous verrons ici les techniques de base du P2P afin de le contrôler à votre guise.

Le réseau edonkey

Un vaste réseau existe en Europe (surtout France, Espagne, Allemagne) basé sur des serveurs edonkey et des clients edonkey.
Les serveurs edonkey acceptent les connections de clients désireux d'échanger des fichiers.
Les serveurs sont créés par des Internautes volontaires.
Et de nombreux logiciels clients existent :
Les clients officiels eDonkeyHybrid : http://www.edonkey2000-france.com/index.php?pagetype=downloads qui peuvent être mis en oeuvre sous Windows, Linux ou Mac OS.
Un client libre est également sorti : emule, voir http://www.emule-france.com/
Ce client écrit en C++ permet à chacun de l'améliorer à sa guise, comme emulePLUS par exemple.
Une version d'emule est disponible sous Linux, elle est appelé lmule
xmule est un autre projet assez ambitieux prenant la suite de lmule. Vois le site: http://unthesis.web.aplus.net/index.php ou la page de téléchargement:http://sourceforge.net/projects/xmule
. Il faut noter que xmule fait actuellement l'objet d'une tentative de procès.
Sous Linux ou BSD, si aucun paquet n'est disponible, il faudra recompiler les sources en ayant préalablement installé toutes les dépendances. Par exemple, sous Debian GNU/Linux Unstable, il suffit de faire:
apt-get install xmule
D'autres clients comme Mldonkey ou amule (voir http://amule.sourceforge.net) existent aussi.

Comment faire avec son firewall Linux?

Bref, passons concrètement à la configuration d'un firewall Linux qui autorise une machine du réseau à se connecter au réseau edonkey.
On obtiendra ainsi un High ID, chiffre donné par les serveurs edonkey.
Sous Windows comme sous Linux, un client edonkey a besoin d'avoir certains ports "translatés" pour marcher correctement.
Donc avec un firewall Linux fonctionnant avec iptables, il faut configurer un script permettant d'utiliser emule sans problème.
Ici la machine utilisant emule a l'IP 192.168.1.53
Voilà le script que vous devez créer, ou ajouter (intelligemment) à celui existant:
#!/bin/sh
IPT=/sbin/iptables
EXTIF='ppp0'
EXTIP='votre_IP'
#si vous n'avez pas d'IP fixe, faire un script
IPDONKEY='192.168.1.53'

	edonkey)
	echo "Demarrage service edonkey..."


#accepter le trafic edonkey
$IPT -A INPUT -p tcp --dport 4662 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p udp --dport 4665 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p udp --dport 4672 -m state --state ESTABLISHED,RELATED -j ACCEPT
#${IPTABLES} -A INPUT -p tcp --dport 4711 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPT -A PREROUTING -t nat -p tcp -d ${EXTIP} --dport 4661:4662 -j DNAT --to-dest ${IPDONKEY}:4661-4662
$IPT -A FORWARD -p tcp -i ${EXTIF} -o ${INTIF} -s 0.0.0.0/0 -d ${IPDONKEY} --dport 4661:4662 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A PREROUTING -t nat -p udp -d ${EXTIP} --sport 4665 -j DNAT --to-dest ${IPDONKEY}:4665
$IPT -A FORWARD -p udp -i ${EXTIF} -o ${INTIF} -s 0.0.0.0/0 -d ${IPDONKEY} --dport 4665 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A PREROUTING -t nat -p udp -d ${EXTIP} --dport 4672 -j DNAT --to-dest ${IPDONKEY}:4672
$IPT -A FORWARD -p udp -i ${EXTIF} -o ${INTIF} -s 0.0.0.0/0 -d ${IPDONKEY} --dport 4672 -m state --state ESTABLISHED,RELATED -j ACCEPT

	echo "service demarre"
	;;

	stop)
        echo "Extinction complete du firewall.."

$IPT -F INPUT
$IPT -F FORWARD
$IPT -P INPUT ACCEPT
$IPT -t nat -F POSTROUTING
$IPT -t nat -F PREROUTING

	echo "extension terminee"
	;;	

	restartdonkey)
	echo "redemarrage du service edonkey"
	$0 stop
        $0 edonkey
        ;;

  	*)
        echo "Usage: $0 {edonkey|stop|restartdonkey}"
        exit 1
esac

exit 0

Il suffit de sauver ce script sous le nom nom_script_firewall là où vous voulez, ensuite:
# chmod uga+x nom_script_firewall
Puis l'on démarrera ce script grâce à:
# ./nom_script_firewall edonkey
Et on le stoppera (attention, cela stopppera tous les services firewall de la machine!!):
# ./nom_script_firewall stop


Il faut préciser qu'avec le client edonkey, il faut cocher la case 'activer le port UDP 4672'
Sous Linux, où tourne le client edonkey, netstat donnera
# netstat -npl | grep mule
tcp        0      0 0.0.0.0:4662            0.0.0.0:*               LISTEN     31716/lmule
udp        0      0 0.0.0.0:4665            0.0.0.0:*                          31716/lmule
udp        0      0 0.0.0.0:4672            0.0.0.0:*                          31716/lmule
unix  2      [ ACC ]     STREAM     LISTENING     904069   31716/lmule         /home/reg/.lmule/muleconn
Vous devez avoir ce résultat que vous utilisiez lmule ou xmule.


Ces techniques permettent ainsi de configurer un firewall/routeur (notamment sous Linux) pour laisser une machine se connecter au reseau edonkey. Notez, que l'on peut utiliser ces principes pour interdire l'accès à edonkey.




powered by Apache     powered by Debian     Valid XHTML 1.1     Valid CSS     ecrit avec Vim    
Copyright (c) 2002-2014 Gregory Colpart. Infogerance serveur