Some ways I can think of is to use a VPN, disable DHT, PEX and local discovery of peers options in the BitTorrent client and to route torrent traffic through the Tor network (people say that it's not a good idea). If I want to use my home network, is it possible to make it almost completely anonymous? What other ways are there to improve anonymity?
If I want to use my home network, is it possible to make it almost completely anonymous?
Unfortunately, you cannot be completely anonymous if you use your own home network. Actions like disabling DHT and Peer Exchange do not improve anonymity, since you still need to send your real IP to the tracker in order to actually interface with the swarm. This is not something you can avoid, because the trackers are required to track your IP and distribute it out to anyone who asks in order to actually maintain the swarm. After all, how else does the torrent program know the IP addresses of other seeders so that they can connect to them and begin the download?
If you use a VPN, you will route your system's traffic through another server. The traffic is typically encrypted so that your ISP is unable to view the contents of the data. When you do this, you simply shift the trust from your ISP to the VPN's ISP. This is intended to make it a bit harder for law enforcement or anti-piracy groups to obtain your original IP. However, many, many VPNs are highly insecure or provide very poor anonymity. Good ones are usually enough to protect against the MPAA as an adversary, but are far from capable of providing "close to complete anonymity".
If you use a seedbox, you will be using a remote server to run the BitTorrent application for you, doing the downloading and seeding on its own without involving your ISP. When you wish to access the downloaded material, you are able to download it directly from the seedbox. This provides anonymity that a VPN does not provide in addition to allowing for faster speeds, since all your downloads are direct downloads, and the remote server is what becomes the BitTorrent peer.
As long as you accept a VPN tunnell as anonymous it's trivial.
Configure the following firewall rules:
- Deny all on LAN.
- Allow outgoing to VPN server on relevant port on LAN (VPN connection)
- Allow outgoing UDP/53 to a relevant port (DNS)
- (Optional) Allow incoming ssh/rdp/whatever on local network (Remote control)
- Allow all outgoing on VPN interface from VPN subnet (e.g. 10.12.1.0/24)
- Allow incoming on a port the torrent client is listening on, on the VPN interface.
All traffic not going over VPN will be dropped by the firewall rules. Bind the torrent client to the VPN interface, so it doesn't accidentally broadcast your LAN address.
You don't have to care if the client uses DHT, PEX or other broadcast protocols, as the firewall will drop such traffic trying to exit on the LAN interface. It'll be allowed to exit on the VPN interface.
If you're really paranoid you drop DNS also, and connect to VPN server by IP, without ever resolving DNS name. I don't see a big point in doing this, as anti piracy agents discover file sharers by looking at who announces for a particular torrent; they do not have capability to eavesdrop on traffic. Also, NS lookups doesn't really prove anything about what kind of traffic you have.
If you want you can also split the firewalling into a separate unit, by terminating the VPN on your router (for instance a pfsense machine), provide a separate VLAN for your torrent machine, and enforce rules in the router.