3 ms·
If I were doing this, I would not use a VM for it. Running on bare metal has a significantly smaller (by several orders of magnitude) risk profile and is much
by daeken 12y ago
If I were doing this, I would not use a VM for it. Running on bare metal has a significantly smaller (by several orders of magnitude) risk profile and is much simpler to do right. I'd have three boxes: webserver, Tor server, external exposure box. The webserver would connect solely to the Tor server, and would expose absolutely nothing other than HTTP. The Tor server would run the hidden service pieces and would expose nothing to either side, but would connect to the webserver and tunnel things accordingly, and would send its Tor connections through the external box. The external box would have a simple forwarder to tunnel connections to the Tor server.
There are always going to be bugs, but this would very strongly isolate each of the risky components. Feeling even more paranoid? Put a strong network filter in place between each of the components to make sure that only the specific subset of TCP that's actually in use makes it through; that'll prevent network stack-level issues.