Package: wnpp
Severity: wishlist
Owner: Masayuki Hatta <[email protected]>
X-Debbugs-Cc: [email protected]

* Package name    : tordnsel
  Version         : 0.3.0
  Upstream Contact: Masayuki Hatta <[email protected]>
* URL             : https://github.com/mhatta/tordnsel
* License         : Public Domain
  Programming Lang: Haskell
  Description     : DNS-based list of Tor exit nodes

TorDNSEL answers, over DNS and HTTP, the question "which Tor exit nodes will
 connect to me?". Rather than listing every Tor relay, it lists only the exits
whose exit policy permits connections to a given destination, and it
can test exits
actively to find the addresses they really exit from.

It is an authoritative DNS server for a DNSBL-style zone (over UDP and TCP) that
also answers the Tor Project's form of exit list query, with an optional
HTTP interface compatible with check.torproject.org's /api/ip and
/torbulkexitlist
and optional Prometheus metrics. It needs a local Tor client with a
control port.

----------

TorDNSEL answers the question "which Tor exit nodes would connect to this
destination?" over DNS (a DNSBL-style zone, UDP and TCP) and HTTP. Unlike a
plain list of all Tor relays, it takes each exit's exit policy into account,
and it can actively test exits through Tor to learn the addresses they
really exit from, which often differ from the addresses they advertise.

It is useful to operators of services (web sites, IRC networks, mail
servers, wikis) who want to treat traffic from Tor exits differently,
without overblocking relays that would never connect to them. It also
answers the Tor Project's form of exit list query ({IP}.{zone}) and offers
a check.torproject.org-compatible HTTP API.

The Tor Project provides exit lists too, but I believe services like this
are better run by many independent operators than relied on from a single
provider. Querying a third-party list tells that party the address of
every visitor you look up; a list you run yourself keeps that information
on your own systems. Many independent lists also mean that no single
outage, policy change or decision to shut a service down affects
everyone, and operators can verify Tor exits with their own tests instead
of taking one list on trust. Packaging TorDNSEL in Debian should make
running your own list easy.

TorDNSEL was originally written for the Tor Project and was left
unmaintained for years. I am its upstream maintainer now
(https://github.com/mhatta/tordnsel) and have brought it up to date with
current GHC and current Tor, and added SAFECOOKIE authentication, DNS over
TCP, rate limiting, EDNS client subnet support and Prometheus metrics.
I operate Tor relays and intend to use it myself.

No package in Debian provides this. Generic DNSBL servers such as rbldnsd
can serve a static list of addresses, but they know nothing about Tor's
directory or exit policies and can't test exits.

It is not a dependency of any other package. All its build dependencies
(GHC and the Haskell libraries network, conduit, conduit-extra,
cryptohash-sha256, HUnit, QuickCheck) are already in Debian. It is in the
public domain.

I will maintain it myself in the debian group on Salsa
(https://salsa.debian.org/debian/tordnsel), and may later move it to the
Privacy Maintainers team (pkg-privacy-team). Co-maintainers are welcome.
As a Debian Developer, I don't need a sponsor.

Happy hacking,
MH
-- 
Masayuki Hatta
Professor, Faculty of Economics and Management
Surugadai University, Japan

http://about.me/mhatta

[email protected]  / [email protected] / [email protected] /
[email protected]

Reply via email to