legaal downloaden op het donkey netwerk met perl

In Nederland mag iedereen voor eigen gebruik kopieën maken van muziek, films of teksten, zelfs als de bron daarvan illegaal is. Dus als iemand het aanbied op het Internet, mag je daar als individu gebruik van maken door een kopie te downloaden naar je computer. Het uploaden of aanbieden van auteursrechtelijk beschermde werken is echter wel verboden. Hoe het allemaal precies zit kan je terug vinden op de website van Bits of Freedom.

Als je nu dus muziek download van een newsserver, dan is er niets aan de hand. Het nadeel van een newsserver is alleen dat je moet wachten tot iemand het erop zet (dit heet posten) en omdat het honderden gigabytes per dag gepost worden blijft het meestal maar een paar dagen beschikbaar. Als je wilt zoeken op wat er allemaal in de newsgroepen beschikbaar is kan je ‘ns kijken op binaries4all.nl.

Een andere mogelijkheid is het gebruik van zogenaamde “Peer to Peer” netwerken, ook wel aangeduid met P2P. Je moet hierbij denken aan programma’s als Shareazaa, eDonkey, Gnutella, enzovoorts. Ik zoom even in op het zogenaamde donkey netwerk. Hierop is ontzettend veel muziek te vinden omdat honderduizenden mensen over de hele wereld met hun computer zijn verbonden via dit donkey netwerk. Je kan dus bijna alle muziek wel vinden hierop. Nadeel is dat het downloaden wel lang duurt, het is geen uitzondering dat je je computer een dag aan moet laten staan om het gewenste te kunnen overhalen.
Ook is het zo dat de meeste (alle?) programma’s voor het donkey netwerk tegelijkertijd weer de bestanden die je aan het downloaden bent ook weer aanbieden voor anderen om vanaf jou computer te downloaden. Dit gebeurt al terwijl je iets aan het overhalen bent en nog voordat het helemaal binnen is. Volgens de Nederlandse wet ben je dus illegaal bezig (als je auteursrechtelijk beschermde muziek aan het overhalen bent) want je bied het (ongemerkt) aan voor anderen om het vanaf jou computer te downloaden.

Je kan dit in een programma soms uitzetten, maar als je dat aanvinkt krijg je een “LowID” en lukt het downloaden eigenlijk ook iet meer. Zo’n LowID krijg je ook als je firewall op de computer te dicht staat.
Als ik zelf eens iets wil downloaden gebruik ik op mijn Linux systeem het programma aMule. Het voordeel hiervan is dat het “Open Source” is en dat je in principe de manier waarop het programma werkt zou kunnen aanpassen. Nu is het wel erg veel programmacoden en ben ik niet meer zo thuis in de programmeertaal C++, dus dat is niet echt een optie. Bovendien ben ik lui en zoek ik dus altijd naar de makkelijkste oplossing. Als je het programma draait en je bent aan het downloaden, dan zie je dat er ook mensen zijn die met jou verbinden en de data van jou computer weer overhalen. Onder Linux kan je met het commando netstat -tupan heel mooi zien welke netwerkverbindingen er op dat moment actief zijn en tot welk programma ze horen. De output van dat commando kan er dan b.v. zo uit zien:

# Proto Recv-Q Send-Q Local Address    Foreign Address       State       PID/Program name
# tcp        0   9877 10.10.1.2:4662     10.0.0.3:1250          ESTABLISHED 1234/amule 

Je ziet hier je eigen ip-adres “10.10.1.2” en het adres van de andere partij “10.0.0.3”, de status van de verbinding (ESTABLISHED betekent dat de verbinding tot stand is gebracht) en de programmanaam waarbij deze gegevens horen “amule”. Andere interessante gegeven zijn de poortnummers die horen bij de verbinding. Onze computer “luistert” op poort 4662 naar binnenkomende verbindingen en de computer waarmee we verbonden zijn heeft poort 1250 gebruikt om de verbinding tot stand te brengen. We zien ook dat onze “Send Queue” niet 0 is maar 9877 bytes. Dit houdt in dat we informatie aan het verzenden zijn, dus met deze informatie weten we dat we die verbinding in kwestie zouden willen termineren.

Voor het verbreken van de verbinding maak ik gebruik van de dsniff toolkit van Dug Song, hierin zit ook het programma tcpkill waarmee je een bestaande verbinding kan uitschakelen. Als tcpkill nog niet op je computer staat kan je hem waarschijnlijk wel installeren met apt-get (debian), yum (fedora), of emerge (gentoo) of hoe het ook mag heten op jou distributie. Er zitten ook erg veel andere interessante tools in die dsniff toolkit, b.v. dsniff zelf om wachtwoorden op de Internet verbinding af te vangen en zichtbaar te maken!

Het perl programma om upload verbindingen te verbreken is hier te downloaden. Je moet eerst je amule opstarten (het is eenvoudig aan te passen voor xmule, emule of wat dan ook) en dan kijken op welke server je geconnect bent. Die kan je daarna met kill_donkey.pl als argument meegeven zodat de server verbinding nooit door tcpkill neergeschoten wordt. Alle tcpkill acties die uitgevoerd worden blijven actief zolang kill_donkey.pl draait, als je kill_donkey afsluit door CTRL-C dan worden ook meteen alle
tcpkill processen weer gestopt. Voordat je kill_donkey.pl voor de eerste keer gebruikt moet je nog wel je eigen ip-adres invullen in het programma (in de variabele $MYIP).

Have fun!