Rootconf 2019

Rootconf 2019

On infrastructure security, DevOps and distributed systems.

Kushal Das


Onion Services for devops

Submitted Jun 8, 2019

The Tor network is a group of volunteer-operated servers that allows people to improve their privacy and security on the Internet. Tor’s users employ this network by connecting through a series of virtual tunnels rather than making a direct connection, thus allowing both organizations and individuals to share information over public networks without compromising their privacy. Along the same line, Tor is an effective censorship circumvention tool, allowing its users to reach otherwise blocked destinations or content. Tor can also be used as a building block for software developers to create new communication tools with built-in privacy features.

Any organization or person can take advantage of these, and deploy any network service in the Tor network without exposing it to the rest of the Internet. The communication between clients and servers will stay inside of the Tor network, and will get all default Tor security and privacy features on their existing systems.

This workshop will teach how to deloy web services and other network services (say ssh) over Tor network.


  • Introduction to Tor project
  • Onion services 101
  • Deploying a website as an onion service
  • Deploying ssh access as an onion service
  • QA


  • Any modern Linux distribution in the Laptop (or in a VM in the laptop). Say latest Debian or Ubuntu or Fedora 30.

Speaker bio

Kushal Das is a public interest technologist at the Freedom of the Press Foundation, who is a maintainer of the SecureDrop project, and part of Tor Project core team. He is a CPython core developer, and also a director in Python Software Foundation. He has given talks in various conferences including previous PyCons (and once in a previous version of rootconf), a list of such talks can be found here



{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}