apocryph.org Notes to my future self

30Nov/0812

Setting up Deluge on a headless Ubuntu seedbox with a Windows client

Recently I had to rebuild aenea, my dedicated seedbox, due to a botched upgrade to Ubuntu Hardy. The install went fine, being as it is Ubuntu, but when I installed the latest version of Azureus, my preferred BitTorrent client for the last five years or so, I ran into trouble. It would download fine, 1.5MB/s, for between one to thirty minutes, then all download and upload traffic would cease. No meaningful errors on the console, and the NAT test showed green consistently, but no traffic.

I poked around on the Azureus support forums and found this guy having the same problem. No one could offer any meaningful suggestions beyond the usual “is it plugged in?” and “is it turned on?” type stuff, so as a diagnostic measure I decided to run a different BitTorrent client. I rummaged around and quickly found Deluge, which is a cross-platform client written in Python.

I did a quick aptitude install deluge, which installed (what I later learned is an ancient) version 0.5.something. I fired it up, configured it for my ports and download location, and pointed it to the same torrents Azureus was choking on. Not surprisingly, Deluge downloaded them fine, with no eventual slowdown. Clearly, not a NAT problem.

Since I already had a working Deluge install, I started to consider dumping Azureus entirely. I’ve hated Azureus since it became Vuze and started bolting all sorts of crap on top of what should be a pretty simple piece of software, but I never had any motivation to switch since Azureus just worked. Now that it didn’t, and I had another client that did, I figured it would be a great opportunity to see if my needs could be met elsewhere.

Once I realized the package I was running was an ancient version, I went to the Deluge site to download the latest (1.0.5 at the time of this writing) in the form of a .deb package. Install was painless, and the new version was much nicer looking. Then, I set about to duplicate my Azureus config.

Download locations

I keep in-progress downloads in /usr/local/p2p/downloading, and completed downloads go in /usr/local/p2p/downloaded. This makes it easier to keep them straight, and avoid accidentally copying over a partially-downloaded torrent.

Blocklist

I used to use the bluetack level1 blocklist, but it’s MIA again so I downloaded a copy of the PeerGuardian P2P blocklist intead. I had to enable Deluge’s BLocklist plugin to enable blocklist functionality, then pointed it at the text file blocklist and it loaded it into memory.

Bandwidth

I let torrents use unlimited download bandwidth, and 400 KiB/s upload. My OpenBSD packet shaping rules take care of preventing bandwidth starvation.

Headless

I don’t initiate downloads from aenea, I do it from my laptop, so it won’t do to have to VNC into aenea and launch the UI. Fortunately, Deluge supports this. Unfortunately, the docs consist of a hard-to-follow thread on the forums. To get the Deluge daemon and the WebUI to run on system startup, I created an init.d script based on a forum thread.

The final script came from this post. The /etc/default/deluge-daemon file looks like:

# Configuration for /etc/init.d/deluge-daemon

# The init.d script will only run if this variable non-empty.
DELUGED_USER="anelson"

# Should we run at startup?
RUN_AT_STARTUP="YES"

and the /etc/init.d/deluge-daemon looks like:

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          deluge-daemon
    # Required-Start:    $local_fs $remote_fs
    # Required-Stop:     $local_fs $remote_fs
    # Should-Start:      $network
    # Should-Stop:       $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Daemonized version of deluge and webui.
    # Description:       Starts the deluge daemon with the user specified in
    #                    /etc/default/deluge-daemon.
    ### END INIT INFO

    # Author: Adolfo R. Brandes 

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DESC="Deluge Daemon"
    NAME1="deluged"
    NAME2="deluge"
    DAEMON1=/usr/bin/deluged
    DAEMON1_ARGS="-d"
    DAEMON2=/usr/bin/deluge
    DAEMON2_ARGS="-u web"
    PIDFILE1=/var/run/$NAME1.pid
    PIDFILE2=/var/run/$NAME2.pid
    PKGNAME=deluge-daemon
    SCRIPTNAME=/etc/init.d/$PKGNAME

    # Exit if the package is not installed
    [ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0

    # Read configuration variable file if it is present
    [ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME

    # Load the VERBOSE setting and other rcS variables
    [ -f /etc/default/rcS ] && . /etc/default/rcS

    # Define LSB log_* functions.
    # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
    . /lib/lsb/init-functions

    if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]
    then
       log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
       exit 0
    fi

    if [ -z "$DELUGED_USER" ]
    then
        log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."
        exit 0
    fi

    #
    # Function that starts the daemon/service
    #
    do_start()
    {
       # Return
       #   0 if daemon has been started
       #   1 if daemon was already running
       #   2 if daemon could not be started
       start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \
          --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
       RETVAL1="$?"
       start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \
          --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
       RETVAL2="$?"
       [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1

       start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \
          --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON1_ARGS
       RETVAL1="$?"
            sleep 2
       start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \
          --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS
       RETVAL2="$?"
       [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2
    }

    #
    # Function that stops the daemon/service
    #
    do_stop()
    {
       # Return
       #   0 if daemon has been stopped
       #   1 if daemon was already stopped
       #   2 if daemon could not be stopped
       #   other if a failure occurred

       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2
       RETVAL2="$?"
       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1
       RETVAL1="$?"
       [ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2

       rm -f $PIDFILE1 $PIDFILE2

       [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1
    }

    case "$1" in
      start)
       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"
       do_start
       case "$?" in
          0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
          2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
       esac
       ;;
      stop)
       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"
       do_stop
       case "$?" in
          0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
          2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
       esac
       ;;
      restart|force-reload)
       log_daemon_msg "Restarting $DESC" "$NAME1"
       do_stop
       case "$?" in
         0|1)
          do_start
          case "$?" in
             0) log_end_msg 0 ;;
             1) log_end_msg 1 ;; # Old process is still running
             *) log_end_msg 1 ;; # Failed to start
          esac
          ;;
         *)
            # Failed to stop
          log_end_msg 1
          ;;
       esac
       ;;
      *)
       echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
       exit 3
       ;;
    esac

    :

Obviously you must make /etc/init.d/deluge-daemon executable by root, then make it load on startup:

sudo update-rc.d deluge-daemon defaults

You can either reboot, or do

sudo /etc/init.d/deluge-daemon start

to start things up. Now the daemon should be listening on port 58846, and the Web UI on port 8112 (by default protected by password deluge).

Client

In a pinch I can use the WebUI at http://aenea:8112/, but as rich as the UI is it’s really a pain in the ass to use with private trackers, since I have to download the torrent file from my logged-in browser session, then upload that torrent file to the web UI. Fortunately, Deluge offers another option.

The Deluge GUI is actually just a client, that talks to a daemon. By default it talks to the local daemon, but it can be made to talk to one elsewhere on the network as well. Unfortunately, the docs suck to the point of non-existence, so you have to rummage around the forums or read this post to find out how to do it.

First, I downloaded the 64-bit windows installer, and ran it on my Vista laptop. I then started up Deluge, and (here’s the non-obvious bit) went into Preferences, Interface, unchecked ‘Enable’ under ‘Classic Mode’, and restarted Deluge. When it came back up, it came up with the connection manager dialog. I removed the connection to the localhost daemon, added aenea, and configured it to always connect to this host. That way, whenever I launch Deluge on my laptop, it comes up connected to aenea.

You might think that’s it, but there’s a bit more yet to do.

File associations

My normal torrent workflow is to use Firefox on my Vista laptop to find torrents I want, then download them and let Firefox launch my torrent client automatically. With Deluge this is a bit tricky, because it is launched with a batch file, deluge.cmd, in the Program Files\Deluge folder. This batch file sets up some Python environment variables before invoking the scripts\deluge.exe file. However, if you tell Firefox to launch deluge.cmd, you’ll find that you get a rather obtuse error message popup:

Failed to run the program, Error:267, The directory name is invalid.

This is due to Firefox running as a 32-bit process, and thus thinking the Program Files directory is Program Files (x86). The solution is to create another batch file, which I call deluge32.cmd, with the following contents:

@echo off
rem Wrapper around deluge.cmd which will ensure the 64-bit command processor is used even if this batch file is invoked with the 32-bit
rem command processor
rem
rem Use with 32-bit firefox on 64-bit windows with 64-bit deluge.  Any other use is completely untested
set DELUGEDIR=C:\Program Files\Deluge

%windir%\sysnative\cmd.exe /c "%DELUGEDIR%\deluge.cmd" %*

Point Firefox to this batch file, and it works fine. I posted a bit more about this in the Deluge forums here

VNC

This isn’t really related to torrents at all, but I always configure my seedbox with resumable VNC sessions per this forum post. There’s a built-in desktop sharing thing in Gnome but you have to be logged in already and it shares the console session over VNC; this way VNC sees a separate session from the console, must like RDP on Windows.

Note that this tutorial is a bit old. I can’t get it working with Ubuntu 8.04, and apparently neither can anyone else. There’s a bug with the GNOME Settings Daemon crashing, and performance is shoot-me-in-the-head-I-cant-take-it-anymore slow. Dammit, sometimes I really hate computers.

13Oct/071

Update on Ubuntu Fiesty BitTorrent Machine

Previously, I’ve bitched about getting Azureus running on Ubuntu Feisty. A commenter pointed out the new version of Azureus, 3.0.3.4, which I wasn’t able to install through automatic updates but had no trouble installing from the Linux x64 tarball. I’m pleased to report there was no fiddling with SWT files or deletion of archives to get it going.

I also found an alternative to the Windows-only PeerGuardian I was running on my old P2P machine. Azureus has an IP filter option that can download a blocklist from a URL, unzip it, and monitor for changes, just like PeerGuardian. I heartily recommend the Level 1 blocklist from BlueTack, which incidentally is the same list that PeerGuardian uses for P2P blocking. Azureus is smart enough to recognize the URL, download the list, unzip it, load it into its IP filters, and check for a new list every seven days. Sweet. I would point out that this blocklist (and the Azureus IP filter feature) is intended to protect torrent traffic only; if the only thing between your box and the internets is the Azureus blocklist and not a firewall, well, you’re an idiot.

I’ve also configured Azureus to allocate and zero new files on creation, so I don’t get the nasty fragmentation problem I had under Windows. And since I usually have a ton of torrents seeding or downloading, I’m boosting the Java memory limit since this box has 1GB of physical RAM and is dedicated to Azureus. The MemoryUsage page on the Azureus wiki is either out of date or not written for Linux, because the -Xmx switch is interpreted as the name of the torrent file to open. Instead I modified the /opt/azureus/azureus launch script to change the JAVA_ARGS= line to

JAVA_ARGS="-Xmx256m"

This will set the max heap size to 256MB (the Azureus default is 128MB iirc), and by extension the direct memory pool will be set to the max heap size as well, for another 256MB. That’s 512MB of memory allocated to Azureus, which (I hope) will let it more fully utilize the hardware it’s been given. Obviously up/download speed is going to be bounded by my FiOS connection speed more than the amount of RAM assigned, but more memory should make Azureus more responsive, as it will reduce the frequency of Java garbage collection.

While I was tweaking memory settings, I also doubled the disk cache to 8MB from 4MB. I doubt this will improve performance that much, but it can’t hurt.

Since I use my ReadyNAS NV+ for long-term storage of downloads, I used NFS to map the media and warez shares to my Azureus machine. I could configure Azureus to move my completed downloads automatically, but I don’t want to do that for a couple of reasons: first, I want Azureus to seed from the local filesystem rather than over NFS, and second alot of downloads require some post-processing like extracting RAR files or whatever, that I want to do before copying over.

I also installed the AzSMRC plugin, which provides a complete remove control interface using a Java client. This way I don’t have to VNC into the Azureus box to control it. I’m also installing the HTML UI plugin which I used before on my Windows Azureus machine, since it’s handy to run through an SSH tunnel for quick at-work downloads.

27Jan/070

My Friend's Ad-Free Guide To Piracy

Introduction

In the past I’ve noted how my pirate friend gets software/movies/music using various file sharing techniques. Since then my friend has been asked by co-workers, siblings, and random passers-by how he/she comes to possess high-quality screeners, TV rips, and music before anyone else. To wit, I’ve put together this guide of my friend’s techniques for those interested in such things and willing to risk civil and (unlikely) criminal penalties in return for a Borat DVD rip and season 2 of Scrubs.

Though guides to using BitTorrent abound, this is the only one that I know of that isn’t flooded with sleazy ads from AdBrite or Google. I’ve no financial stake in this guide, nor am I cheap enough to try to eke out $20 of ad revenue after a couple million people view my site.

Disclaimer

If one accepts the definition of ‘piracy’ as the willful violation of copyrights by copying, distributing, or obtaining copyrighted material without the authorization of the copyright holder, then piracy is illegal, and subject to civil and criminal penalties on most countries. However, much like recreational drug use, ‘piracy’ is practiced by a large minority of the first world, and as such one is hard-pressed to place it in the same immorality basket as robbery, assault, or speeding.

Further easing the conscience of a would-be pirate is the at once disturbing and pathetic tactics of the world’s major copyright holders, represented in the US by the RIAA and MPAA. From PSAs equating downloading the latest Metallica cruft to jacking a car or stealing a purse, to shotgun civil suits of dubious legality, to relentless defense of a dying business model through the crippling and banning of new technology and coopting of government officials, the owners of the worlds major entertainment brands clearly regard their customers as criminals but for their own draconian controls, and have no regard for the doctrine of fair use. To the extent the law exists to protect such organizations, the law does not command my respect.

That said, prisons are full of nonviolent drug offenders who likely embraced the same rational; if you’re busted it won’t help you. If you’re not willing to risk a little prison and financial ruin in return for the best the American entertainment industry has to offer..well..I’ve got nothing more to say to you.

Educational Purposes Only

I myself neither engage in nor condone piracy of any kind. Whenever my friend comes over with a Jackass 2 DVD rip or the screener for Idiocracy, I chastise him/her for his/her disobedience, and make him/her promise to buy the DVD if we like it.

Similarly, this information should not be construed as encouragement or approval of piracy of any kind. The instructions below are for educational purposes only, and if followed will likely lead to loss of freedom, ruinous financial sanctions, premature hair loss, and eventual death. Seriously, stop reading this crap. Now.

History

Ever since the US Supreme Court decided Sony vs Universal, we’ve had the affirmative right to technology which enables duplication of video content. From the early days of broadband, pirates have taken advantage of this right to create digital copies of video content for redistribution. Though the techniques have changed over time, the objective has not.

At this point, the dominant piracy tool is BitTorrent technology, which makes it possible to exchange large data files in an ad-hoc peer-to-peer topology, without any copyright violations on any central server which can be shut down. This guide will focus solely on BitTorrent, though other piracy channels do exist.

Hurry Up! I want filez!

This guide is reasonably straightforward, and doesn’t presume too much technical saavy. That said, the technology behind BitTorrent is complicated, and there is some background (covered below) that you’ll need to grok if you’re to be successful. If you’re one of the roughly 99% of Internet users born without the part of the brain the distinguishes asses from holes in the ground, this guide will be of little use to you, using as it does multisyllabic words and correct spelling. For you, I suggest you try a somewhat simpler approach: Google ‘goatse’ and click furiously on all the resulting hits.

BitTorrent Background

BitTorrent is two things: a protocol that is used to share files among computers on the internet, and a software program that uses the BitTorrent protocol for that purpose. Though BitTorrent the software was the first implementation of BitTorrent the protocol, there are now additional implementations of BitTorrent the protocol which are far superior. For the remainder of this document, when I say ‘BitTorrent’ I mean BitTorrent the protocol, not the software.

BitTorrent is a fairly straightforward system. To share a file or files on the Internet, the sharer uses his BitTorrent software to create a .torrent file (called simply a ‘torrent file‘), which is a small (less than 100KB, typically) file that other BitTorrent software uses to identify the files being shared. .torrent files don’t contain the files being shared, but instead contain very small fingerprints of the files, which is why it’s not a violation of copyright to publish a .torrent file, even if that .torrent file identifies copyrighted works.

The sharer then publishes the .torrent file to another component of the BitTorrent system, a tracker. The most popular tracker today is Pirate Bay, though there are thousands of trackers, public and private, and it’s easy to run your own if you want to.

Other users then download the .torrent file, and load it into their BitTorrent programs. The .torrent file points them to the tracker, which helps each downloader find other users who have already downloaded parts of the file. In this way, everyone who downloads a file from a torrent is at the same time uploading the parts they’ve already downloaded, to other users. This is what makes BitTorrent such a powerful protocol: the more people download a torrent, the more bandwidth is available to share it.

After a user has downloaded all the files in a torrent, that user is called a seeder, which means they have all the parts of all the files, so any user downloading the torrent can get any parts they’re missing from a seeder. Users that are downloading files in the torrent but are not done are called leachers. If a torrent doesn’t have very many seeders, it will be difficult and slow to download, which is why you should try to find torrents that are well-seeded (meaning have lots of seeders). How many seeders you need depends on alot of factors, but if there aren’t at least 10, you can expect performance to suffer.

This guide is not intended to cover using BitTorrent to upload your own files; for that you should go elsewhere. This overview of the workings of BitTorrent exists only to familiarize you with the important terms, like tracker, torrent, seeder, and leacher.

Setting up your environment

Security

Piracy is a dangerous activity. Malware abounds in the pirate community, moreso than on the Internet as a whole. You must assume that everything you download and every pirate site you visit is hostile. My friend has a VMware virtual machine set up just for piracy, which isolate piracy activities from his/her main system. This is an advanced topic; if you understood the last sentence, go for it, but if you didn’t, I haven’t the time nor patience to walk you through setting up a VM.

Whether or not you’re able to muster a dedicated piracy VM, at the very least you MUST NOT run your pirate programs as an Administrator. If you installed Windows yourself, you’re almost certainly running as admin. If you can install software, you’re an admin. Before you forget, create a new user on your computer, call it ‘pirate’, uncheck the ‘Administrator’ checkbox, and use that user for all your piracy activities. If you fail to follow this advice, you will fall victim to malware, and I will laugh at you.

For the same reason you shouldn’t run as admin, you shouldn’t run IE. In the course of looking for torrents, you’ll be visiting some very skanky sites, which will not hesitate to take advantage of browser bugs to 0wn your system with malware. That’s why you should run Firefox, and keep it up to date. Note that you’ll have to use your admin account to actually install Firefox; that doesn’t mean you should use your admin account to run it.

Alot of people disable or fuck with cookies in the name of security. I don’t, and my friend doesn’t either, but that’s a matter of preference. Privacy and security and different subjects.

Privacy

Even if you have a firewall already, you must download and install PeerGuardian2. PeerGuardian blocks access to your computer from lists of known-bad networks. It includes lists for P2P enforcers, adware, etc; you only need to enable the P2P list. PG2 will update its lists every day or so; make sure that happens. It usually stays a step ahead of the IP enforcer services. If you don’t run PG, the companies the MPAA/RIAA pay to enforce their IP will eventually catch you hosting pirate torrents, and will send a C&D to your ISP. Your ISP will either warn you or shutdown your account; if you’re caught again you’ll likely be sued, and that would be bad.

Software

There are alot of BitTorrent clients floating around, and most of them suck. My friend swears by Azureus, so that’s what I recommend. Go to the Azureus site and follow the links to download the latest stable version.

Azureus is a Java program, which means it runs on Windows, OS X, Linux, BSD, etc. However, you’ll need the Java Runtime Environment (JRE) to use it. The Azureus download page links to the Sun Java download page, from which you can download the JRE for your environment. NOTE: YOU DO NOT want to download the Java Development Kit (JDK). You only need the Java Runtime Environment (JRE). It doesn’t matter if you get the offline or online installer. Attention to detail is key to successful piracy; consider downloading and installing Java your first test.

Once you have installed JRE and Azureus, run Azureus to make sure it’s working. If it won’t start up, you probably downloaded the wrong version of Azureus or JRE or both. It was a very simple task; if you screwed it up, you’re not meant to be a pirate.

Did you remember to run Azureus with your non-admin account? No? You’re asking for trouble; I won’t tell you again.

Just this once, start Azureus as an admin user. If you’re running a firewall (like the Windows XP SP2 firewall), this should cause your firewall to ask you if you want to let Azureus use the network. Obviously, the correct answer is ‘yes’. This is the only time you get to run as admin.

Network Setup

Without getting into too much detail, BitTorrent requires that other people can connect to your computer in order to get pieces of files from you. I know, you don’t want people to be able to do that, you only want to download, but BitTorrent has no tolerance for selfish asshole leeches; if you do that, you won’t get allocated much download bandwidth either, and you’ll be a very shitty pirate. Suck it up. If you’re worried about security, run in a VM. If you can’t figure that out, don’t be a pirate.

In order to let other users connect to your computer, you need to configure your computer’s router to make that happen. This guide makes some assumptions about your network situation:

  • You have a dedicated router between you and the Internet. If your cable modem plugs directly into your computer, this assumption doesn’t hold, which doesn’t really matter because it means your computer is connected directly to the Internet, virtually guaranteeing it will be 0wned. Don’t say I didn’t warn you.
  • You control the router between you and the Internet. If you’re on a school or corporate network, where the local cable monkeys control the telecom gear, you’re screwed. There’s no way they’ll poke a hole in the network so you can leech warez.

Typically, your router is a small box, made by Linksys, D-Link, NetGear, or one of roughly a billion no-name Chinese brands. I can’t tell you how to configure it, since each one is different. I can tell you that it’s very likely that your router has a web interface, and that it’s at http://192.168.1.1. If it’s not there, and you’re running on Windows, go to a Command Prompt and type ipconfig. You should see something like Default Gateway . . . followed by an IP address; your router is probably at that address, which you can type into your browser to access its admin interface. There’s (hopefully) a password protecting it; you probably set that at one time. If you forgot it, you’ll have to reset your router to factory defaults.

Once in your router’s configuration, you need do what’s called ‘mapping a port’. I don’t know how you do that on your router; it’s a common operation, so the docs probably cover it. You want to map TCP port 6881 to TCP port 6881 on your piracy computer’s IP address. If your piracy computer is running Windows, go to a command prompt and type ‘ipconfig’ to get your IP address.

Once you’ve set up the port mapping, fire up Azureus (as a non-admin user!!), and go to the Tools menu, and choose NAT/Firewall Test. The TCP port should default to 6881; click Test. It should say OK. If it doesn’t, you’ve screwed something up. Getting your network configured right is the trickiest part of the process, you might check the Azureus support forums for hints, or just go back to paying for your movies like the rest of the sheep.

Disk Setup

If you’re a good pirate, you’ll burn through disk space like there’s no tomorrow. Configure Azureus to store downloaded file on whatever disk has the most free space. Azureus is an easy to use tool; I’ll leave it to you to figure out how to set that up.

However much disk space you have, it won’t be enough. My friend has a 1TB RAID array, and it’s barely enough. (1TB = more bytes than you can possibly imagine).

Testing

You think you’ve got Azureus working? There’s no way to know for sure without downloading a torrent. Since no one likes torrents as much as Linux weanies, go to this site and download an ISO image of a Linux CD. Pick the one with the highest number of seeds.

When you click the torrent file, your browser will ask you to save or open; choose Open. Very quickly the download should finish, and Azureus will pick it up, starting a download. Depending on the speed of your link it will take more or less time to download, but after just a few minutes it should consume all your available download bandwidth, indicating you’re good to go.

Things You’ll be Downloading

There are torrents for all sorts of stuff, including legal downloads of free software and video content, and of course a range of pirate content. Depending on what you’re looking for, there are a few things you should be familiar with. Most of the information you’ll need about a particular torrent will be present in its name. In the text below, when I refer to a torrent being ‘tagged’ or ‘named’ with something, I mean the torrent’s name includes that text. This is why attention to detail is so vital to pirates; you must pay close attention to the entire contents of each torrent name to ensure you don’t get any surprises, like the Japanese version of House or Casino Royale in German.

General

No matter what you’re downloading, chances are you’ll run into a .rar or .zip file at some point. These are compressed files that contain one or more files inside them. Download and install 7-Zip to handle all of these.

Groups

The pirate scene is fed by pirate groups, which obtain and distribute pirated content. Groups specialize in different types of content, like games, software, TV shows, DVDs, etc. Think of piracy groups as a combination professional sports team and junior high school clique, and you have some sense of the sociopolitical lay of the land.

For the most part you won’t care about groups, except that as you download pirate content you’ll notice consistent quality from some groups, and shit from others. Just one example is DVDrips fro aXXo, which are always of the utmost quality; my friend automatically downloads anything from aXXo; his stuff is that good.

Software

Software is typically divided into two categories: ‘Appz’ and ‘Gamez’. ‘Gamez’ are, obviously, games. ‘Appz’ are everything else.

Most software is for Windows, but you will occasionally run across Mac OS X stuff. Usually you can tell from the description, but sometimes a fuckwit will upload a torrent like ‘Adobe Photoshop CS2 with keygen’, and it will turn out after downloading that fuckwit forgot to mention it was the OS X version. It’s a risk you take.

Most commercial software comes with some sort of copy protection scheme, like a serial number or an activation regime. Thus, most pirate copies of software include a serial number, a key generator (to generate your own serial number), or a crack. A serial number is best, as there’s no shady keygen program to run. A keygen is second, and a crack is worst, since cracks can easily destabilize the software, are a great place for malware to hide, and usually only work on a specific version of the software so you can’t upgrade to the latest build later.

Software torrents usually indicate what kind of copy protection bypass technique they employ, but sometimes they don’t. In general, if my friend gives me software that relies on a crack, I won’t use it unless I’m desperate, since it’s just too risky.

Speaking of risks, software is the most dangerous of things to pirate, because you have to install and run it. You should be very wary of software you download. At the very last, scan it for malware before running it. Also check the site where you found the torrent, to see if any users have posted comments about the torrent. Malware is usually detected and reported fairly quickly; if you get 0wned by malware you downloaded, it means you’re a very lame pirate.

Nowadays most software is distributed on CD or DVD. Pirates take advantage of this by taking a snapshot of the CD or DVD, and posting that snapshot. Snapshots have a .iso extension, and are called ‘ISO images’. You can burn these to a CD with any decent CD burning program (like Nero), or you can download and install DaemonTools (Careful that you don’t install their search bar; it’s spyware), which lets you ‘mount’ ISO images in a virtual CD-ROM drive.

Music

Music is the simplest content type to pirate. Music is characterized by the artist and title of the work, and the format it’s in. It’s best to download entire albums at a time; finding specific tracks will be more difficult, unless it’s a very popular single.

Often pirates will post discographies for popular artists, which contain every album published by the artist, often including live albums or boolegs.

Most music is in MP3 format, which you can assume if the torrent doesn’t say otherwise. Most MP3s are encoded at a specific bitrate, which reflects its quality. 192kbps is common, 320kbps is the highest, and 128kbps is the lowest you can go without losing alot of the music quality. ‘VBR’ means variable bitrate, which is a little smaller and (imho) slightly lower quality.

Other music formats include Windows Media (‘WMA’), Ogg Vorbis (or just ‘Ogg’; an open-source codec like MP3 but free), and FLAC (like MP3, but totally lossless, meaning literally CD quality; FLAC files are much bigger than MP3s, which is why they’re not as common). Any decent player can play all these formats; if yours doesn’t, you can use dBPowerAmp to convert to a format that you can use (or get a player that doesn’t suck).

Occasionally, you’ll download an album only to find it contains one big MP3 file and one .cue file. This is an annoying way of ripping an entire album in a single audio file. Download mp3slit and learn to use it.

Video

The video scene is the most complicated, as there are many ways to package and share video.

Format

Most video files are in the AVI format, and thus are .avi files. Sometimes you’ll find a Video CD (VCD), which is meant to be burnt to a CD and played in a DVD player; internally these are MPEG-2 video files. Video optimized for iPod viewing are MPEG-4 (.mp4). Variable bitrate Real Media files, sometimes used to encode a large collection of TV shows, are .rmvb.

Codec

Within the AVI format, there are dozens of ways to encode video; the so-called ‘codec’. The leading codecs are DivX and XviD (yes, one is the reverse of the other). DivX is a commercial codec and XviD is an open source alternative. XviD is ascendant, but there’s still plenty of DivX floating about.

To save the trouble of fucking with codecs, my friend and I both recommend the K-Lite Mega Codec Pack. When you install it, there alot of knobs and dials with which you can fuck; do not fuck with them. The defaults work fine. If when playing back your videos you see reversed color, the signal upside down and backwards, or other weirdness, you probably fucked with the options.

Note also that new DVD players often support DivX and/or XviD, in which case you can burn the .avi files to a CD-R and watch it in your DVD player.

Source

Movies can come from one of a few sources: a camcorder in the theater (almost always shitty, unwatchable quality), a DivX or XviD rip of the DVD, a rip of a screener DVD distributed to reviewers and awards judges, or a (decrypted) copy of the DVD itself.

Movies from a camcorder are tagged with CAM or TeleSync or TS. CAM means a fuckwit with a HandiCam, while TeleSync and TS is a fuckwit with a HandiCam plugged directly into the audio source, so while you can see the fat bastard walking in front of the screen, you can’t hear his corpulent wife chomping down on a metric ton of popcorn. Of the two, TS is better, but they’re both a mixed bag; my friend’s brought over a few TS‘s, and they’ve all sucked. Think blurry focus, shifting camera angle, people walking in front of the screen, etc.

A rip of a DVD is usually tagged with DVDRip or DVD. These are typically high-quality rips, and often include 5.1 audio.

A rip of a screener is tagged with Screener or DVD screener. Screeners tend to be as good as DVD rips, with one caveat: they have various nag elements introduced by the studios to make screeners less appealing to pirates (as you may have guessed from this guide, they were not particularly successful). For example, I’ve seen a Crank screener that went to black and white for a minute or so every once in a while, with a ‘Property Of’ message at the bottom of the screen. These artifacts tend not to be too annoying (after all, these are review copies), but the more fastidious viewer may find them unacceptable.

A copy of the DVD itself is tagged with DVDR, reflecting that you’re meant to burn it to a DVD and watch in your DVD player. A DVD has 4.5GB of capacity, thus DVDRs tend to be about this big. You have to really care about quality to download a DVDR.

Sometimes you’ll see VCD or SVCD, which indicates a Video CD or Super Video CD as noted in the Formats section above. VCDs and SVCDs tend to be of lower quality, and are kind of tricky to watch without burning to a CD, so favor DVDrips if you have a choice.

Language

Just because everyone on your high school golf team speaks English doesn’t mean the rest of the world does. American cultural imperialism has created a strong demand for our vacuous low-brow swill the world over. Imagine your disappointment when you download the latest episode of _24_, only to find it’s been blasphemed by Italian dubbing.

If the title of the video is in English, you can assume it’s in English unless tagged with another language. Common tags are Ita for Italian, Esp for Spanish (that’s ‘Espanol’, gringo), ‘Deu’ for German, ‘Pol’ for Polish (no, I’m not kidding), etc. Also check for wording in the torrent name that suggests subtitles in another language; generally the word ‘subtitles’ should clue you in. That said, subtitles aren’t that annoying; I spent months in Iraq watching re-runs of ‘Desperate Housewives’ and ‘House MD’ with Arabic subtitles; it’s not a big deal.

Note also that Borat is supposed to be partly in Kazakh. ‘My mustache still tastes like your testes’ is the same in any language.

Episode (For TV shows)

TV shows are much like movies in terms of language, format, and codec. However, a TV show has multiple episodes, so additional naming conventions have evolved. Generally, an episode of a TV show is identified by the name of the show, the season in which it aired, and the number of the episode. The first episode of the first season is Season 1, Episode 1, the second episode of the third season is Season 3, Episode 2, etc.

First, you can find entire seasons in torrents named with the season number, like ‘Season 1′, ‘Season 2′, etc. So, the first season of 24_ is probably called something like ’24 Season 1′. You can also find collections of episodes within a season, like ‘24_ Season 1 Episodes 1-4′. Finally, you can find individual episodes. Typically they are tagged with SnEm, where n is the season number and m is the episode number. So the first episode of the fifth season of _Star Trek: Deep Space Nine’ would be called something like ‘DS9 S05E01′. Note that leading zeros are typically used for single-digit numbers.

It’s increasingly common nowadays for TV shows to be broadcast in HDTV; if the rip came from an HDTV source, it will usually have ‘HDTV’ in its name.

Misc

A few other random terms you’ll see in torrent names pertaining to video (shamelessly stolen from the Video Terms Defined thread posted by RichieRags -=sUk=-:

‘Internal’ denotes a movie ripped by a group after another group has already released the same movie. If Group A releases Movie 1, then Group B releases Movie 1 as well, Group B must take care to make clear that they’re not claiming to be the first to release Movie 1, lest Group A and Group B go to war, by which is meant post insults on various boards.

‘Proper’ means someone else has already released a rip of the movie, but the quality was shit and this one is better.

‘STV’ means ‘Straight to Video’. When you’re at the video store looking for movies, you avoid Direct to Video releases like Home Alone 6 and Cinderella 14: Shut You Kid Up For Another Hour; you should do the same when pirating.

‘DSRIP’ means ‘Direct Satellite Rip’. If a television program is recorded directly from a digital satellite broadcast, it’s a DSrip.

‘WS’ means ‘Widescreen’, usually a 16:9 ratio.

Where to Look

Now that you know all about the minutiae of video encodings and nomenclature, you need to start finding torrents. There are three places where you’ll have the most success:

BtJunkie.org

BtJunkie indexes the torrents on other sites and gathers them into one place. It’s got a great selection of stuff. Some of the trackers it indexes are private; these are indicated with a padlock icon in the search results. BtJunkie wants you to pay to access these, but typically that’s not worthwhile.

PirateBay

PirateBay is the largest public tracker in the universe. That said, BtJunkie has a wider selection since it indexes multiple trackers.

TorrentSpy

TorrentSpy is a distant third. It’s ad-heavy and sleazy, but every now and again it’ll come through.

How to look

There are two ways to find torrents; browsing and searching. Browsing involves looking through available torrents and downloading stuff you want, while searching involves seeking out a specific program, album, or video file. Obviously, browsing is more fruitful since you’re sure to find stuff you want, while searching is more hit-or-miss.

All of the sites linked above have searching and browsing modes. Browsing is just a matter of choosing the category you’re interested in and going through the links. It’s oven useful to sort the results so the most-seeded torrents come first; there’s nothing more frustrating than finding that obscure trip-hop album you’ve been looking for, only to discover there are no seeds, which means it’s effectively not available.

Searching is trickier. All the searching tips that apply to Googling apply to torrent searches, like varying the generality of your search, etc. Searching is an art; you just learn to do it.

Etiquette

After you download a torrent, it’s considered good form to post a comment either affirming the quality of the torrent, or excoriating the poster for one of a number of reasons. As entitled as you feel to all the video, music and software content you can stand, those who upload torrents get nothing in return, so don’t be the prick that flames the poster for no reason. (Note that the one exception to this rule is misleading or malware-laden posts. Those who post such content take their life into their hands, and should be hunted down and killed.)

Also note that there are relatively few places on the Internet where it’s ok to ask for help with piracy. Forums are filled with techie dilettantes who always follow the rules, and were placed on this Earth by God to make sure everyone else does too. They will lecture you to no end about the evils of piracy if you so much as hint at downloading copyrighted content, and your only recourse is to go into troll mode and flame the pants off them, which will not make you feel any better. So, save yourself the trouble, and only post those ‘Downloaded AVI file; how do I play??’ questions in forums friendly to pirates, as indicated in their rules.

Examples

Here are a few sample torrent file names with the meaning of the various tags, which should help you become accustomed to the nomenclature of the torrent scene.

Most recent episode of Battlestar Galactica

If you don’t await every episode of Battlestar Galactica with baited breath, you’re far too lame to be a pirate. But who has the time to wait around for it to come on the SciFi channel? Pirates watch stuff on their schedule, not someone else’s.

Let’s search BtJunkie for ‘Battlestar Galactica‘. Here are a sampling of the results (note I sort by Most Seeded, so the most popular results will come first):

  • Battlestar Galactica S03E12 WS DSRip XviD-aAF [eztv] – This a Battlestar Galactica episode, obviously. Season 3, episode 12. It’s in wide-screen format (WS), it was ripped from a digital satellite signal (DSRip, it’s in the XviD format (XviD), it was captured by the aAF group (aAF), it was published by the eztv group (eztv)
  • Battlestar Galactica S03E01 WS DSR XviD-OMiCRON avi – Season 3, episode 1, wide-screen (WS), direct satellite rip (DSR), XviD format (XviD), released by OMiCRON
  • Battlestar Galactica S03E11 WS DSR XviD-ORENJi avi – Season 3, episode 11, wide-scrren (WS), direct satellite rip (DSR), XviD format (XviD), released by ORENJi
  • Battlestar Galactica S03E03-Exodus avi – Season 3, episode 3, released by Exodus. From the .avi extension, you can assume either DivX or XviD, but it’s bad form not to include the format in the name, which reflects the poster’s lameness.
  • Battlestar Galactica [3x12] Rapture (2) HQ (X264 DJS) EnglishV – Season 3, episode 12, titled Rapture part 2, high quality (HQ) (generic term, not a particular format), X.264 codec (X264), released by DJS, in English
  • Battlestar Galactica S02DVD5 PAL MULTi DVDR-S – DVDR (DVDR-S) from the Season 2 DVD, disc 5 (S02DVD5), the PAL version of the DVD (European video standard; NTSC is standard in US), released by MULTi
  • Battlestar Galactica S02E12 Resurrection Ship P2 HRHD AC3 XVID-M – Season 2, episode 12, Ressurection Ship Part 2, high-resolution HDTV rip, audio in AC3 format, video in XVID

Ok, that’s easy enough. Next, I’d really like the entire fourth season of _24_. I’ll search BtJunkie for ’24 season 4′

  • 24 Season 5 Complete HDTV-XVID-LOL – Season 5 (not 4) of _24_, recorded from an HDTV signal, XviD format, released by LOL
  • 24 Season 5 [RMVB] – Season 5 (once again, not 4), in RMVB format
  • American Idol Season 4 HDTV XVID – Um, no
  • 24.Complete Season.4 – Bingo. No information about format or group, so assume AVI and DivX/XviD.

Now I’d like a movie. Children of Men came out recently; I’d like that. So, search BtJunkie for ‘Children of Men’:

  • Children Of Men 2006 FRENCH TS XviD-CiNEFOX ALLTEAM – French language (not helpful), TeleSync (ugh; shit quality), XviD format, released by CiNEFOX and/or ALLTEAM. I don’t want it in French, and I don’t want a TeleSync. How about a DVD rip or a screener?
  • Children Of Men DVDSCR.XViD – Hmm, that’s better. DVD screener, XviD format
  • Children Of Men[2006]DvDrip[Eng]-aXXo – Movie released on 2006, ripped from a DVD, in English, and released by aXXo; perfect!

Conclusion

Hopefully this guide has either scared you off the pirate scene, or equipped you with the knowledge you need to become a successful pirate. If Jack Valenti asks, you didn’t get this stuff from me.

1Jun/061

Headless Azureus on FreeBSD 6.1

I want to run the popular Azureus BitTorrent client on bonzo, which has a ton of bandwidth to burn. Bonzo is a virtual machine on a rackmount server in a data center, so I need to run Azureus in headless mode, using its HTML UI to control it from afar.

I’m starting with a freshly upgraded FreeBSD 6.1-RELEASE box.

First, I’ll need to install Java 1.5. As it happens, Sun and the FreeBSD team have finally come up with an official Java release for FreeBSD. I downloaded the package for FreeBSD 6, and installed it with pkg_add.

Upon doing so, I got:

 bonzo# pkg_add diablo-jdk-freebsd6-1.5.0.06.00.tbz
 pkg_add: could not find package javavmwrapper-2.0_5 !

There’s a port called javavmwrapper in java/; I’m installing that.

After running pkg_add again, it worked with this warning:

 pkg_add: warning: package 'diablo-jdk-1.5.0.06.00' requires 'javavmwrapper-2.0_5', but 'javavmwrapper-2.0_7' is installed

No big deal; this package was for FreeBSD 6.0, and I’m running 6.1; inshallah they’re compatible.

Sure enough:

 bonzo# java -version
 java version "1.5.0"
 Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b00)
 Java HotSpot(TM) Client VM (build diablo-1.5.0_06-b00, mixed mode)

Now I’ll download Azureus. Since I’m not running Windows, I’ll want the jar download.

I also need a couple additional JARs in the classpath to make this work. After downloading them into the same directory as the Azureus jar file, I ran:

  $ java -jar Azureus2.4.0.2.jar --ui=console

as per instructions. Sure enough, Azureus came right up. In fact, right off the bat it reported a few updates available:

 Update available for 'Core Patch Checker', new version =
 Update available for 'azupdater/Azureus Updater Support Patcher', new version = 1.8.3
    Normally installed via auto-update.
    This plugin contains support for restarting azureus when upgrading.
        ...
 Update available for 'Platform-specific support', new version = 1.11
    Normally installed via auto-update.
    This plugin contains platform-specific support for Azureus. For windows this includes file association support and Azureus.exe.
    To manually install this plugin, unzip the files into the Azureus program location, ensuring that the OS-specific path within the ZIP file is removed.
        ...

Unfortunately, neither the Console UI Help nor Google have any insight into how to auto update from the console UI, so I guess I’m screwed for the time being.

Moving on, I need to configure Azureus’ bandwidth limitations. Bonzo is plugged into a Fast Ethernet switch which ultimately links it to multiple redundant fiber backbones, however I’m limited to 5TB/month of transfer, and I don’t want to burn it all on Azureus. So, I’m thinking a 500kb/s up limit is reasonable.

 set Core_iMaxUploadSpeed 500

I also want to override the file system locations where torrents and downloads go:

 set General_sDefaultSave_Directory /home/anelson/downloads
 set General_sDefaultTorrent_Directory /home/anelson/torrents

Next I’ll install the HTML UI plugin. Installing it was easy; I downloaded the JAR from the HTML UI page and copied it to the plugins directory under the directory where I extracted the Azureus JAR.

Configuration of the plugin becomes tricky, as it doesn’t have any visible options when I run set to list available parameters. In fact, I don’t think the plugin is being loaded; when I attempt to access http://localhost:6886/ that port isn’t open. I must be missing something required to get the plugin to actually load.

Doh! I made a n00b mistake. I put the jar into the plugins folder, but the correct way to install a plugin is to create a folder for the plugin within plugins, then put the JAR in that folder. I did that and the azhtmlwebui options are now listed when I do set.

The configuration of the HTML UI is somewhat non-obvious, so I used the Azureus install on hotsoup-p2p to look at the GUI options to translate them into console config settings. I want the HTML UI to be available only via localhost, so I can use an SSH tunnel to access it but otherwise it’s not exposed. Thus, the Plugin.azhtmlwebui.Access parameter is set to 127.0.0.1. I don’t need a username or password, and the other parameters are fine at their default values.

 set Plugin.azhtmlwebui.Access 127.0.0.1

I set up a PuTTY shortcut to run this:

 "C:\Program Files\PuTTY\putty.exe" -A anelson@69.13.38.69 -L 127.0.0.3:6886:localhost:6886

This will tunnel port 6886 on 127.0.0.3 to bonzo’s localhost port 6886. Then, I can access the admin interface with http://127.0.0.3:6886/ from the PuTTY client machine.

Voila! Works like a charm.

Now I’ll download a large, legal torrent to test out my transfer performance. I suspect some meddling by my bargain-basement ISP (CI Host), and would like to explore it with a legal download rather than stir up a ToS violation on my first day. DataGalaxy.net has a decent list of legal torrents; I chose the Fedora Core ‘stentz’ DVD, clocking in at over 2GB.

I got an error ‘uploading’ the torrent (it’s actually downloading, but the HTML web UI doesn’t distinguish between uploading a torrent file or specifying a URL). The error in the HTML UI interface was meaningless:

 Error loading http://www.kanava.org/~bostonarch/btit/download.php?id=87ab90f08a3dacefe69b7e0de15d88e207efdcdc&f=stentz-dvd-i386.torrent

On the console it was more constructive:

 org.gudy.azureus2.plugins.download.DownloadException: DownloadManager::addDownload: default data save directory must be configured

I knew that. The Console UI help list two parameters for that purpose:

 set "Default save path" "/home/anelson/downloads" string
 set "Use default data dir" true boolean

Splash one. Download worked now.

Well, sort of. Xfer rate is nearly nothing, and I suspect a firewall problem.

Sure enough. I ran nc from wintermute, which is on my home LAN, and got this:

 $ nc -v -w 5 bonzo.celatrix.com 6881
 nc: connect to bonzo.celatrix.com port 6881 (tcp) failed: Connection refused

So the bullshit CI Host firewall strikes again. Fortunately, I know of at least one TCP port (3389, Terminal Services) which their firewall passes. I’ll switch Azureus to using that port and try again.

 set TCP.Listen.Port 3389

Ok, how about now:

 nc -v -w 5 bonzo.celatrix.com 3389
 Connection to bonzo.celatrix.com 3389 port [tcp/*] succeeded!

Ok, so it’s no longer a firewall issue. Maybe it’s the torrent itself. I’m trying the ‘bordeaux-dvd’ as well, which has several hundred seeders.

No, it’s still running at nearly 0 kb/s. Hmm.

I thought maybe it was an outgoing firewall rule preventing requests from bonzo to tcp/6881, but then I did this from bonzo:

 nc -v -w 5 actinium.apocryph.org 6881
 Connection to actinium.apocryph.org 6881 port [tcp/*] succeeded!

So that’s obviously not it. I’ll try enabling logging, to see if that helps:

 set Logger_sDir_Directory /home/anelson/azureus/logs
 set Logger.Enabled 1
 set Logger_bEnable 1

Nothing really jumps out, but the log output a flood of messages, and the log filter parameters (like Logger_bLog0-0) are non-obvious.

I tried downloading another torrent which I’m currently fetching on hotsoup-p2p at an average of 70kB/s; on bonzo it’s not getting anything, despite multiple seeder connections. I’m beginning to suspect CI Host blockage, but I’m not giving up yet.

I’m installing BTQueue from the ports collection. BTQueue is (hopefully) a simpler client that’s more easily configured, which will enable me to compare performance meaningfully.

I couldn’t get BTQueue to work; it’s a strange tool with it’s own console and no obvious configuration files, and scarce docs. I’m trying rtorrent instead.

rtorrent is pretty easy to work with. I reconfigured it to use tcp/3389, and it suffers the same agonizing slow download problem exhibited by Azureus on bonzo. This leads me to conclude that CI Host is deliberately obstructing BitTorrent downloads, which would be egregious if true. I’ll email and ask.


After some time, rtorrent started to show decent transfer rates, at least as good as I get on my house DSL line. I know BitTorrent downloads take a while to get up to full speed, but Azureus normally gets cranking pretty quickly, and even after an hour on bonzo was still getting nowhere. For now I’ll continue to use rtorrent, though long term I’d like to get Azureus working.

The next step is to integrate the PeerGuardian P2P blocklist into either the P2P client (less desirable) or the BSD firewall (more desirable).

It looks like net/tableutil is a good candidate for this.

Unfortunately not. The PeerGuardian blocklist thing is all very obfuscated. Once I went through bullshit registration at BlueTack I was able to access their List Info Tool to get a link to their ‘level 1′ blocklist, which according to their blocklist FAQ is the list of anti-p2p addresses. But this list doesn’t seem to be available in the binary P2B format supported by tableutil; instead it’s in the text-only P2P format. I guess I’ll have to write a sed script to convert this into the lists of IP ranges which pf understands. Why is this such a PITA?

11Jan/061

Received DMCA Notice For Teaching Company Copyright Violations

Today I received an email from my ISP, SpeakEasy, forwarding a ‘cease and decist’ letter from BayTSP.com on behalf of The Teaching Company, complaining of violations of Teaching Company copyrights originating from my IP address. Of course, I was shocked and appalled, and can only assume that…erm..I have a friend who..erm..used it to exchange copyrighted materials…via BitTorrent…

This is the first such notice I’ve received, which rather surprises me. Given that copyright holders hire companies like BayTSP to trawl that P2P networks for incriminating file names, I would expect to be busted a long time ago.

At any rate, I found and removed the offending materials, and flogged the culprits mercilessly. The letter is reproduced below for amusement:


PLEASE THOROUGHLY REVIEW THIS NOTICE.

We have received a report regarding your computer
or network’s security. It’s imperative that you
review this notice and take the recommended actions
immediately. Should we receive similar reports, we
may need to interrupt your broadband services until
you are able to secure your computer or network.

We appreciate your prompt attention to this matter.


Greetings,

We have recently received a report that there has been activity originating from your circuit that is in violation
of the Speakeasy Acceptable Use Policy. The IP address in question is:

66.93.100.243

The following complaint is concerning copyright infringement from a shared filesystem or server at this IP. We
request that you immediately cease and desist this activity and remove any content that is possibly considered in
violation of copyright laws.

If you are using a wireless network on your Local Area Network, it is possible that it has been compromised. If
you are using a wireless network, we highly recommend you at least take these steps to ensure the security of your
wireless connection:

  • Use Network Segregation- place your access point on a separate subnet, with a firewall separating wireless and
    internal (wired) users
  • Update your access point’s firmware
  • Change the administrator password on the wireless unit
  • Change the default SSID of the wireless unit
  • Disable SSID beacons/broadcasts
  • Enable MAC address filtering
  • Use WPA authentication and encryption
  • If possible, use VPN connectivity

Please contact your vendor for further assistance, specific to your wireless device.

Here are a few good links that provide information and best practices for the security of a wireless network:

http://www.lawtechguru.com/archives/2004/08/01wirelessnetworkingbestpracticesversion20.html

http://www.giac.org/practical/GSEC/ThomasStriplingGSEC.pdf

http://wifinetnews.com/archives/002452.html

For your reference, please also visit the Speakeasy Security Zone at:

https://www.speakeasy.net/security

Note: You will need to login to MySpeakeasy in order to view this page.

PLEASE NOTE: Speakeasy, Inc. is legally obligated to forward this notification to you, regardless of the scan
results appearing in the original complaint sent to us. Additionally, we believe it is important for you to be
aware that these scans of your machines are taking place.

It is vital for the security of your personal network and the Speakeasy network as a whole that you address this
issue. If we continue to receive similar reports about your circuit, we will be forced to temporarily suspend your
broadband service until this issue is resolved. Please understand that we consider an interruption in your service
only when it is absolutely required to ensure both your security, and the overall security of the entire Speakeasy
network.

PLEASE ALSO NOTE:
If this is your first notification from abuse@speakeasy.net, there will be no Service Ticket created for this
incident. If there have been abuse incidents reported on your circuit in the past however, there will be an open
Service Ticket on your account. To ensure that your service is not interrupted, it’s important that you update us
once you have resolved this issue. Please call Speakeasy Support at 800.556.5829 or login to MySpeakeasy
(http://www.speakeasy.net/myspeak) and update the open Service Ticket referencing this issue.

Please review the relevant portions of our Terms of Service under “Moderations of Use” and “Acceptable Use Policy”
at this link:

Speakeasy AUP/TOS

http://www.speakeasy.net/tos

We thank you for taking the time to address these Internet security concerns,

Network Security Department
Speakeasy, Inc.
abuse@speakeasy.net

Re: Unauthorized Use of The Teaching Company Limited Partnership Property
Notice ID:120-40461
Notice Date:9 Jan 2006 18:34:12 GMT

Dear Sir or Madam:

The Teaching Company Limited Partnership. (The Teaching Company) is the owner of copyrights and other proprietary rights in numerous copyrighted audio-video works, including but not limited to The Teaching Company Title listed below (see ‘File Name:’).

It has come to our attention that Speakeasy Network is the service provider for the IP address listed below, from which unauthorized copying and distribution (downloading, uploading, file serving, file “swapping” or other similar activities) of The Teaching Company’s property is taking place. We believe that the Internet access of the user engaging in this infringement is provided by Speakeasy Network or a downstream service provider who purchases this connectivity from Speakeasy Network.

This unauthorized copying and distribution constitutes copyright infringement under Section 106 of the U.S. Copyright Act. Depending upon the type of service Speakeasy Network is providing to this IP address, it may have legal and/or equitable liability if it does not expeditiously remove or disable access to the property(s) listed below, or if it fails to implement a policy that provides for termination of subscribers who are repeat infringers (see, 17 U.S.C. section: 512).

Despite the above, The Teaching Company believes that the entire Internet community benefits when these matters are resolved cooperatively. We urge you to take immediate action to stop this infringing activity and immediately inform us of the results of your actions.
mailto:teachingcompany@copyright-compliance.com?subject=RE%3A%20Notice%20ID%3A%20120%2D40461%20DMCA%20Notice%20Unauthorized%20Use%20of%20The%20Teaching%20Company%20Limited%20Partnership%20Property

http://webreply.baytsp.com/webreply/webreply.jsp?customerid=120&commhash=fa67ba1050804cf9891284505d0cd8ca

The undersigned has a good faith belief that use of the property(s) in the manner described herein is not authorized by The Teaching Company, its agents or the law. The information contained in this notification is accurate. Under penalty of perjury, the undersigned is authorized to act on behalf of The Teaching Company with respect to this matter.

Please be advised that this letter is not and is not intended to be a complete statement of the facts or law as they may pertain to this matter or of The Teaching Company’s positions, rights or remedies, legal or equitable, all of which are specifically reserved.

Regards,
Sarah Bergman
BayTSP.com Inc. :: Compliance Manager
PO Box 1314 – Los Gatos, CA 95031
Phone:: 408-341-2300 fax:: 408-341-2399
teachingcompany@copyright-compliance.com
v: 408-341-2300 f: 408-341-2399

*pgp public key is available on the key server at ldap://keyserver.pgp.com
Note: The information transmitted in this Notice is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, reproduction, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers.

Evidentiary Information:
Notice ID: 40461
Asset: Teaching Company
Protocol: BitTorrent
IP Address: 66.93.100.243
DNS: dsl093-100-243.wdc2.dsl.speakeasy.net
File Name: TTC – Roots Of Human Behavior by Barbara King
File Size: 128723804
Timestamp: 6 Jan 2006 23:29:10 GMT
Last Seen Date: 6 Jan 2006 23:29:10 GMT
URL: 66.93.100.243:6881\TTC – Roots Of Human Behavior by Barbara King
Username (if available):

Evidentiary Information:
Notice ID: 40461
Asset: Teaching Company
Protocol: BitTorrent
IP Address: 66.93.100.243
DNS: dsl093-100-243.wdc2.dsl.speakeasy.net
File Name: TTC – Biological Anthropology – An Evolutionary Perspective
File Size: 201565636
Timestamp: 6 Jan 2006 23:37:05 GMT
Last Seen Date: 6 Jan 2006 23:37:05 GMT
URL: 66.93.100.243:6881\TTC – Biological Anthropology – An Evolutionary Perspective
Username (if available):

Evidentiary Information:
Notice ID: 40461
Asset: Teaching Company
Protocol: BitTorrent
IP Address: 66.93.100.243
DNS: dsl093-100-243.wdc2.dsl.speakeasy.net
File Name: TTC – The Long 19th Century, European History from 1789 to 1917 – Robert I. Weiner, Lafayette College
File Size: 664143744
Timestamp: 7 Jan 2006 04:02:22 GMT
Last Seen Date: 7 Jan 2006 06:31:51 GMT
URL: 66.93.100.243:6881\TTC – The Long 19th Century, European History from 1789 to 1917 – Robert I. Weiner, Lafayette College
Username (if available):

4Dec/050

How I (Would) Find and Download Music and Software

I have a..erm..friend, who had been leeching warez for more than a decade, and music for at least half that long. The techniques and technologies employed in this pursuit have changed alot over that time. I don’t often run across a concise yet comprehensive account of what exactly is involved in breaking the law in this particular way, so I thought I’d jot them down.

First, there are a wide range of sources for warez and mp3s; a google search for ‘warez’ or ‘brittany spears mp3′ is not among them. Frauds and search spammers have more or less taken over these keywords, and even if they hadn’t, RIAA and SPA spiders would find and shut down any legitimate sources.

Summary

There are three technologies that most reliably yield results:

  • Peer-to-peer networks like eDonkey (best), Gnutella2, Morpheus, WinMX, etc
  • BitTorrent search engines
  • USENET

If you’re going to use a P2P network, be very careful when selecting and downloading a P2P client. Most have spyware, especially the ones that claim to have no spyware. The only P2P client I would trust is Shareaza, and only then because of its solid reputation and freely accessible source code. Shareaza uses the eDonkey network, though it also provides a BitTorrent client.

BitTorrent engines help you find torrents, but you still have to download them with a BitTorrent client, like Shareaza, Azureus, or a handful of others. As with P2P clients, beware spyware in commercial clients.

USENET is (and always has been) the dirty little secret of the scene. The RIAA, MPAA, and SPA seem ignorant of its existence, yet it is on USENET that one can find the widest range of binaries, from MP3s and videos to e-books and appz.

P2P

Download and install Shareaza, then start it up. The docs and support forum are pretty helpful. Make sure Shareaza reports a ‘HighID’ on eDonkey; the docs will provide details, but if you don’t get a ‘HighID’ (and instead get a ‘LowID’), it means your firewall/router isn’t providing incoming access to Shareaza from the Internet, and thus your download performance will suffer greatly.

Searching is pretty straightforward; the same principles one would apply to Google apply to P2P searches. Note that search results will trickle in as the P2P client explores the P2P network looking for your files; the first results should come in after only a few seconds, but the result set should build out over the next minute or two.

BitTorrent

Several BitTorrent search engines have been strong-armed into shutting down by the various copyright oligarchs, but a few good ones remain. Of these, TorrentSpy and PirateBay are the best. When they find torrents you want, download the .torrent file and open it with your BitTorrent client; the client will take care of the rest.

As with Shareaza, you need to make sure incoming connections to your BitTorrent client are working, or your performance will suffer. Azureus has a Network Test utility to verify this; others likely do as well. RTFM.

USENET

There’s a reason USENET is a secret: it’s a pain in the ass to work with. Traditionally, you connected to USENET via an NNTP server provided by your ISP. You had to use a special NNTP client, like Forte Agent. For reasons yet unknown to science, all NNTP clients suck profoundly, sporting either UIs so austere and inscrutable as to be the product of an autistic sadist genius, or so functionally limited they could be targeted your grandmother.

Fortunately, this is changing. For years, DejaNews (now Google Groups have provided a web-based, searchable index of the enourmous expanse of text postings on USENET. Now, services are appearing to do the same with the binaries.

EasyNews is ideal IMHO, though GigaNews is also ok. At some point you’ll likely end up needing an NNTP client, in which case AnchorDudes has a decent list, but don’t say I didn’t warn you.

Handy Tools

Apart from limitless disk space, if you’re downloading MP3s you owe it to yourself to download the MusicBrainz tagger. Whenever you get MP3s from anyone else, you can be certain the ID3 tags (the bits on each MP3 that indicate the track, album, artist, etc) will not be right. MusicBrainz automatically looks up and corrects the tags via a shared database of music fingerprints. The UI is not particularly intuitive, but the effort required to figure it out is well worth it, particularly if you build up an enormous MP3 collection.

Delicious Bookmarks

Recent Posts

Meta

Current Location